Content Delivery Network(CDN)
Creates cached copies of your website at various edge locations around the world.
Content Delivery Network (CDN)
A CDN is a distributed network of servers which delivers web pages and content to users based on their geographical location, the origin of the webpage, and a content delivery server.
Can be used to deliver an entire website including static, dynamic and streaming.
Requests for content are served from the nearest Edge Location for the best possible performance.
Core Components
-
Origin
The locathion where all of original files are located. For example an S3 Bucket, EC2 instance, ELB, or Route 53. -
Edge Location
The location where web content will be cached. This is different than an AWS Region or AZ.
Distributions
A Distribution is a collection of Edge Locations. You specific the Origin e.g. S3, EC2, ELB, Route53.
It replicates copies based on your Price class.
There are 2 types of Distributions
- Web (for websites)
- RTMP (for streaming media)
-
Behaviors
Redirect to HTTPs, Restrict HTTP Methods, Restrict Viewer Access, Set TTLs -
Invalidations
You can manually invalidate cache on specific files via Invalidations -
Error Pages
You can server up custom error pages. e.g. 404 -
Restrictions
You can use Geo Restriction to blacklist or whitelist specific countries.
Lambda@Edge
We use Lambda@Edge functions to override the behavior of request and responses
The 4 Available Lambda@Edge Functions
- View request
When CloudFront receives a request from a viewer - Origin request
Before CloudFront forwards a request to the Origin - Origin response
When CloudFront receives a response from the origin - Viewer response
Before CloudFront returns the response to the viewer
Protection
By Default a Distribution allows every one to have access.
- Original Identity Access (OAI)
A virtual user identity that will be used to give your CloudFront Distribution permission to fetch a private object.
In order to use Signed URLs or Signed Cookies you need to have an OAI
-
Signed URLs (Not the same thing as S3 Presigned URL)
A url with provided temporary access to cached objects -
Signed Cookies
A cookie which is passed along with the request to CloudFront. The advantage of using a Cookie is you want to provide access to multiple restricted files. e.g. Video Streaming.