CloudFront is an important AWS service providing fast global CDN(Content Delivery Network) i.e. content distribution across the globe so that your website contents are cached and routed in the shortest possible path. Hence website contents are accessible with minimum latency doesn’t matter if the website end-user is in the USA or India or any part of the world.
Without CloudFront, if we deploy and host any dynamic website in India, and a user from the USA tries to hit this website URL. This Http/s request will route all the way from the USA to the Indian server, which will pass through many network components like USA wifi/LAN, routers, switches, AWS network of USA, AWS network of India, Indian server.
Then the request will be served by this server and the response will also travel back to USA user in the same reverse path. It will cause a lot of delays for that user to get the website contents. In this highly competitive world, if any website is slow, users will not use that website, adversely affecting business.
Here comes CloudFront for your survival, it will copy and cache your website contents across aws Edge locations close to end-users. That means using its 210 points of presence (199 Edge locations and 11 Regional Edge Caches), it will significantly increase read performance and high data transfer.
How do CloudFront works?
- End-user hits request to download say a video (It can be any static or dynamic content).
- DNS routes the request to nearest CloudFront Edge Location or Regional Edge Caches
- CloudFront checks cache for the requested video, if found will return the video and it will be downloaded with high network speed.
- Otherwise, it will follow below 3 steps:
- Request the main origin server with video details
- The origin server will forward the video content if found to the requesting CloudFront Edge location.
- CloudFront will forward the video to the end-user as well as store it in its cache.
- Now if any more request comes then it will be returned directly from CloudFront.
- CloudFront will allow the video to be present in cache till TTL(time to live) or retention period expires.
- Once TTL expires, it will delete it from the cache. Or a cache invalidation request in request header can remove the video from the cache before it expires.
- Expert in finding the best route for the requests, making it fast.
- CloudFront integrates with Amazon S3, EC2, ELB and all other aws services.
- Supports in-flight encryption(SSL/TLS/HTTPS)
- Supports HTML, CSS, js, images, RMTP(Real-Time Messaging Protocol) for media, video
- Access restriction as per Blacklist and Whitelist.
- It has console, API and CloudFormation support.
- Follows pay as you go model and so cost-effectively
- Easy to use
Let’s get started:
- Login into AWS Management Console (https://console.aws.amazon.com). Search for CloudFront and click on it.
- Amazon CloudFront Getting Started page will open, click on Create Distribution
- Click on Get Started in Web section. For media/videos, you may use RTMP.
- In Create Distribution, please provide Origin Domain Name as of Amazon S3 bucket.
- Let default values be in Default Cache Behavior Settings.
- Click on Create Distribution
- Wait for few minutes and your CloudFront Distributions will be up and running.
Check if CloudFront working as expected:
- Copy below HTML code into a text file with .html extension.
- Change domain-name as per distribution and object-name to the S3 object name.
- Test this file content from browser. If any issues, check IAM permissions.