AWS CloudFront - Global Content Delivery Network

Amazon CloudFront is a web service that speeds up distribution of your static and dynamic web content, such as .html, .css, .php, and image files, to your users. CloudFront delivers your content through a worldwide network of data centers called edge locations.

AWS CloudFront - Global Content Delivery Network

When a user requests content that you’re serving with CloudFront, the user is routed to the edge location that provides the lowest latency (time delay), so that content is delivered with the best possible performance. If the content is already in the edge location with the lowest latency, CloudFront delivers it immediately. If the content is not in that edge location, CloudFront retrieves it from an Amazon S3 bucket or an HTTP server (for example, a web server) that you have identified as the source for the definitive version of your content.

  • A CDN is a system of distributed servers (network) that deliver webpages and other web content to a user based on the geographic location of the user, the origin of the webpage and a content delivery server.
  • CloudFront can be used to deliver your your entire website, including dynamic, static, streaming, and interactive content using a global network of edge locations.
  • Requests for your content are automatically routed to the nearest edge location, so content is delivered with the best possible performance.
  • Objects are cached for the life of the TTL(time to live).
  • You can clear cached objects, but you will be charged.

AWS Cloudfront: Basic

There are three core concepts that you need to understand in order to start using CloudFront:

Distributions

To use Amazon CloudFront, you start by creating a distribution, which is identified by a DNS domain name such as d111111abcdef8.cloudfront.net. To serve files from Amazon CloudFront, you simply use the distribution domain name in place of your website’s domain name; the rest of the file paths stay unchanged. You can use the Amazon CloudFront distribution domain name as-is, or you can create a user-friendly DNS name in your own domain by creating a CNAME record in Amazon Route 53 or another DNS service. The CNAME is automatically redirected to your Amazon CloudFront distribution domain name.

Origins

When you create a distribution, you must specify the DNS domain name of the origin—the Amazon S3 bucket or HTTP server—from which you want Amazon CloudFront to get the definitive version of your objects (web files). For example:

  • Amazon S3 bucket: myawsbucket.s3.amazonaws.com
  • Amazon EC2 instance: ec2–203–0–113–25.compute-1.amazonaws.com
  • Elastic Load Balancing load balancer: my-load-balancer-1234567890.us-west-2.elb.amazonaws.com
  • Website URL: mywebserver.mycompanydomain.com

Cache Control

  • Once requested and served from an edge location, objects stay in the cache until they expire or are evicted to make room for more frequently requested content.
  • By default, objects expire from the cache after 24 hours.
  • Once an object expires, the next request results in Amazon CloudFront forwarding the request to the origin to verify that the object is unchanged or to fetch a new version if it has changed.
  • you can control how long objects stay in an Amazon CloudFront cache before expiring. To do this, you can choose to use Cache-Control headers set by your origin server or you can set the minimum, maximum, and default Time to Live (TTL) for objects in your Amazon CloudFront distribution.
  • You can also remove copies of an object from all Amazon CloudFront edge locations at any time by calling the invalidation Application Program Interface (API).
  • Instead of invalidating objects manually or programmatically, it is a best practice to use a version identifier as part of the object (file) path name. For example:
    • Old file: assets/v1/css/narrow.css
    • New file: assets/v2/css/narrow.css

Terminologies

  • Edge Location: The location where the content will be cached, this is different from AWS Region/ AZ. Currently, 50 edge locations in the world. Edge location are not for READ only, you can write them too.
  • Origin: This is the origin of all the files that the CDN will distribute. This can be either an S3 bucket, an EC2 instance, or an ELB or Route53. This may not be registered with AWS you can have your own custom origin servers.
  • Distribution: Name given to the CDN which consists of a collection of Edge Locations
  • Web distribution: Used for websites, RTMP: used for media streaming

CloudFront Pricing

CloudFront pricing is depends on region to region and also it depends on data transfer out to the internet or data transfer out to the origin. Please find latest pricing list.

CloudFront CDN Overview

Create a CloudFront CDN (Lab)

CloudFront FAQ

Latest FAQ’s find on this link.