Amazon CloudFront
Tags: aws, devops, cloud
Published: 2023-01-19 14:27:51

### What is Amazon CloudFront?
Amazon CloudFront is a content delivery network (CDN) service provided by Amazon Web Services (AWS). It is designed to deliver content, such as videos, images, and other static files, to users with low latency and high transfer speeds.

### Latency
Latency is the delay between the user's request for content and the delivery of that content from the nearest edge location.
Latency is measured in milliseconds.


![CDN](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g0d45bsh1cmt405o1a45.png)

It is worth noting that CDN services are continuously growing among organizations such as Netflix, Facebook, and Amazon as their major web traffic is served through CDN

### Benefits of Amazon CloudFront

- One of the key benefits of using CloudFront is its global network of edge locations. This network includes more than 200 points of presence (PoPs) around the world, which allows for content to be delivered quickly and efficiently to users, regardless of their location. This is particularly useful for delivering large files, such as videos, as it ensures that users can access the content with minimal buffering or waiting times.

- Another benefit of CloudFront is its integration with other AWS services. For example, it can be used in conjunction with Amazon S3 to deliver content stored in S3 buckets, or with Amazon Elastic Compute Cloud (EC2) to deliver content from your own web servers. This allows for a seamless and efficient workflow for delivering content to users.

## Features of Amazon CloudFront
CloudFront provides a range of features that help to ensure the security and performance of your content delivery. 

1. It supports HTTPS, which encrypts data in transit, and it also allows you to configure custom SSL certificates. Additionally, it allows you to control access to your content by using signed URLs or signed cookies, which can be used to restrict access to specific users or groups.

### Difference between signed URLs and signed cookies.

- A signed URL is a special URL that includes a unique signature, which is used to authenticate the user and grant access to private content. The signature is generated using the user's security credentials and the URL's parameters. When a user requests the signed URL, CloudFront checks the signature to make sure it is valid and, if so, grants access to the private content.

- Signed cookies, on the other hand, are a way to grant access to private content by including authentication information in a cookie. The authentication information is a signature that is generated using the user's security credentials and the cookie's parameters. When a user requests private content, CloudFront checks the signature in the cookie to make sure it is valid and, if so, grants access to the content.

- signed URLs are more suitable for content that is available for a limited time, like access to a live event 
- signed cookies are more suitable for content that is intended for a specific user or group of users, like a personal dashboard.



2. Another important feature of CloudFront is availability and its ability to handle high-traffic loads. With CloudFront, you can scale your content delivery to handle millions of requests per second, which is particularly useful for handling traffic spikes during peak times.

### How CloudFront Works

- A user requests a piece of content (such as an image, video, or web page) from a website that is using CloudFront.

- The request is sent to the nearest CloudFront edge location, which is determined by the global network of AWS edge locations.

- The edge location checks to see if it has a copy of the requested content in its cache.

- If the edge location has a cached copy of the content, it is delivered to the user.

![Illustration](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hr8bj44pr3rsy0rl07a.png)

- If the edge location does not have a cached copy of the content, it sends a request to the origin server (such as an S3 bucket or EC2 instance) to retrieve the content.

The origin server sends the content back to the edge location.

The edge location caches the content and delivers it to the user.

- Subsequent requests for the same content from users in the same geographical area are served from the edge location's cache, reducing the load on the origin server and improving the delivery time for the users.

It's worth mentioning that CloudFront also supports various features such as:

Customizable SSL certificate
Live streaming
Geo-restriction
DDoS protection
Customized error pages
, which allows you to customize the behavior of the content delivery network to better suit your needs.


In conclusion, Amazon CloudFront is a powerful and flexible content delivery network that allows you to deliver content to users quickly and efficiently. Its global network of edge locations, integration with other AWS services, and range of security and performance features make it an ideal solution for delivering content to users around the world. Whether you are delivering videos, images, or other types of files, CloudFront can help you to ensure that your content is delivered quickly and securely.