AWS CloudFront is a Content Delivery Network (CDN). That means that it can provide better performance by combating latency. It achieves this by caching data at Edge Locations, which are closer to the user than the origin may be.
CloudFront follows the popular pay-as-you-go pricing. Although, it's pricing model is closer to serverless than to EC2 as you won't pay for idle time. Additionally, you can drastically reduce origin costs because the data is cached and not fetched everytime.
- Access Control
- Edge Computing
- Fast Change Propagation
- Geo Restriction
- Global Edge Network
- Invalidation Control (Cache Purging)
- Logging including Real Time
- ACM for SSL/TLS Certificates
- CloudWatch for Monitoring and Logging
- Lambda for Edge Compute
- Route53 for Routing
- Shield for DDoS Protection
- WAF for Custom Firewall Controls
Most commonly S3 is used as the origin to set up a simple static website with ease. Actually CloudFront supports custom origins as an HTTP server, which leads to options like: API Gateway, EC2, and even on-prem.
Still you're not limited to a single origin. In a machine learning movie recommendation website, wheelerrecommends, I created I am using CloudFront with multiple origins.
I wrote another blog on that website if you'd like to learn more.