CloudFront (Content Delivery Network) in AWS
CloudFront is like Content Delivery Network. It delivery the web-pages and other web material to the user based on geographical location of user.
Amazon Cloudfront is used to delivery website including static, dynamic, streaming content using the edge location network. Request from user for the content is automatically routed to nearest edge location, so that content delivery to user with best performance.
Example:
Suppose our server is in USA, we access the webpage from India then it check from India edge location if its not present then it cached from USA.
On next time if any user access same webpage from India then it simple access from India Edge location.
Terms used
Edge Location: Location where content will be cached. This is separate location from AWS Region or Availability zone. AWS has edge location all over the world.
Origin: Origin of all files that CDN distributed. This can be S3 bucket, EC2 instance, Elastic Load Balancer and Route53.
Distribution: This is the name give to CDN which consists of a collection of Edge locations.
AWS Support Two type of Distribution:
Web distribution: Typically used for web sites
RTMP: its used for media streaming.
Notes
–Edge location: are not just readonly , you can write on it.
–Object are cached for the life of the TTL(Time to Live)
–You can clear cached object but you will charged.
–After creating Distribution, you can go in property of Distribution and choose invalidation tab and create invalidation if you want to skip directory or specific files in S3 bucket. Example: /* skip everything
Example of CloudFront in AWS
1. Login with AWS Console.
2. CloudFront Service is present in Networking & Content Delivery.
3. Create Distribution button on CloudFront window.
3. You have option to choose the WEB Based or RTMP Distribution.
Web Based is used for Web sites.
RTMP is used for media Streaming.
4. I choose to create the Web Based for my one of bucket created in S3. See how the web based create distribution pages seems.
In Origin Domain Name: Choose the S3 bucket for which you want to create the distribution to access the page with better performance.
Origin Path: if you have directory inside your bucket you can specify that.
5. On scroll down, we see TTL (time to live) setting and we can also restrict user access with Signed URLS like NETFLEX
6. Keep all setting same and create distribution:
7. You web distribution will be take around 15-30 minute to create.
8. After created you can access your S3 bucket files with help of this cloudfront domain as you created with forward slash of your file present in S3 bucket.
Domain name in cloudfront: Domain.cloudfron.net
1.html file present in S3 bucket.
You can access this very quickly with Cloudfront URL:
URL: Domain.cloudfront.net\1.html