Copyright (c) 2025 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.

5.1.4. Amazon CloudFront (Content Delivery Network - CDN)

Amazon CloudFront accelerates content delivery globally by caching data at Edge Locations closer to users, reducing latency, and offloading origin servers.

Scenario: You need to optimize the delivery of static website assets (images, CSS, JavaScript) for a global e-commerce website. Users from around the world are experiencing slow load times for these assets.

Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency and high transfer speeds. It works by caching copies of your content at Edge Locations (data centers) worldwide.

Key Features of Amazon CloudFront:
Practical Implementation: Creating a CloudFront Distribution for S3 Origin
# Assuming S3_BUCKET_NAME is defined and is configured for static website hosting
# 1. Create a CloudFront distribution
aws cloudfront create-distribution \
  --distribution-config '{"CallerReference":"my-static-website-$(date +%s)","Comment":"My Static Website CDN","Enabled":true,"Origins":{"Quantity":1,"Items":[{"Id":"MyS3Origin","DomainName":"my-static-website-bucket.s3-website-us-east-1.amazonaws.com","CustomHeaders":{"Quantity":0},"OriginPath":""}]},"DefaultCacheBehavior":{"TargetOriginId":"MyS3Origin","ViewerProtocolPolicy":"redirect-to-https","AllowedMethods":{"Quantity":2,"Items":["GET","HEAD"]},"CachedMethods":{"Quantity":2,"Items":["GET","HEAD"]},"SmoothStreaming":false,"Compress":true,"ForwardedValues":{"QueryString":false,"Cookies":{"Forward":"none"},"Headers":{"Quantity":0},"QueryStringCacheKeys":{"Quantity":0}},"MinTTL":0,"DefaultTTL":86400,"MaxTTL":31536000,"LambdaFunctionAssociations":{"Quantity":0},"FunctionAssociations":{"Quantity":0}},"CacheBehaviors":{"Quantity":0},"CustomErrorResponses":{"Quantity":0},"HttpVersion":"http2","IsIPV6Enabled":true,"PriceClass":"PriceClass_All","Restrictions":{"GeoRestriction":{"RestrictionType":"none","Quantity":0}},"ViewerCertificate":{"CloudFrontDefaultCertificate":true}}' \
  --query Distribution.DomainName --output text

⚠️ Common Pitfall: Not configuring proper cache invalidation. If content on the origin changes but the cache is not invalidated, users will continue to see stale content.

Key Trade-Offs:
  • Performance vs. Cost: CloudFront improves performance and can reduce egress costs from your origin, but it has its own pricing based on data transfer out from edge locations and requests.

Reflection Question: How does Amazon CloudFront, by caching content at Edge Locations closer to users and leveraging its global network, fundamentally accelerate content delivery, reduce latency, and offload origin servers, improving user experience?