Amazon CloudFront
There
are companies who
would like to deliver
their information such as web
pages, video, documents, audio,
etc to the greatest number of user as possible into a
high resilience architecture thus
content delivery networks are increasingly important for these
companies. Today,
thanks to cloud service providers and content delivery networks,
users can watch streaming videos or listen
live music easily and
without disruptions from anywhere and,
meanwhile, companies
can pay as they go to the cloud where cloud
providers charge based on usage.
A
Content Delivery Network or CDN is a
network of computers hosted in different regions around the world
which store a copy of data that can be
delivered to users based mainly on proximity. For
instance, if we were a spanish company who deliver video in EMEA and
LATAM, we could upload our video to the CDN to be delivered quickly
to end users based on geography. We
shouldn’t confuse CDN with Global
Server Load Balancing (GSLB)
because GSLB provides load balancing
between data centers thus load balancing our services, while CDN is
based on GSLB architecture.
AWS Regions |
There
are many companies who offer CDN services like Amazon, Akamai or
Cloudflare. All of them have data centers
available on five continents to
deliver content quickly. For instance,
Amazon has more than 11 data centers
where we can create
our virtual Data Center with
AWS
Elastic Load Balancing for high
availability, we can protect our services
with AWS
Shield & AWS WAF, and we can
also accelerate our web applications with Amazon
CloudFront.
On the other hand, Cloudflare is well known
by his powerful network which is able to reach
high throughputs and protect our services against DDoS
attacks. However, Akamai has always
been, from my point of view, a content delivery provider.
High Availability and Scalability Architecture |
Amazon
CloudFront is a global content delivery network integrated with AWS
services which help
us to deliver highly available and scalable applications
with high performance and it’s also able
to secure content at the edge. In
addition, it’s cost effective because we
pay only for the data transfer and requests used to deliver content
to our customers. Amazon CloudFront is
easy to use and deploy from AWS Management
Console, where we
have to choose the viewer protocol policy and allowed HTTP methods as
well as caching and encryption configuration.
What’s more, distribution settings like
price class, security protection and HTTP/2
support can be chosen
as well as logging and IPv6 compatibility.
Amazon CloudFront Distribution Settings |
As
IT engineers, when we have to design high available, scalable and
reliable architectures, we have to take into account many things.
First, we have to design our
services thinking about failures thus we
should design avoiding single point of failures. Multiple servers
with a load balancer help us to meet this requirement. Second, one
data center may
not be enough
thus we’ll need multiple data centers balanced
with GSLB in different regions and
databases should
also be replicated and synchronized.
Finally,
monitoring is a must for dynamic scalability. Many requests, more
servers. Few requests, less servers. On
the other hand, we can use content delivery network services like
Amazon CloudFront, Akamai or Cloudflare to deliver our web pages,
video or audio easily without thinking about networking or
load balancing.
What
are you thinking about? Are
your services highly scalable and available?
Commentaires
Enregistrer un commentaire