CloudFront BEST PRACTICES & ANTI-PATTERNS
-
Upload
abhishek-tiwari -
Category
Technology
-
view
4.571 -
download
1
description
Transcript of CloudFront BEST PRACTICES & ANTI-PATTERNS
![Page 1: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/1.jpg)
CloudFront BEST PRACTICES & ANTI-PATTERNS
Abhishek Tiwari@abhishektiwari
http://abhishek-tiwari.com
Wednesday, 7 August 13
![Page 2: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/2.jpg)
About me
Wednesday, 7 August 13
![Page 3: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/3.jpg)
About me
Solutions Architect
Wednesday, 7 August 13
![Page 4: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/4.jpg)
About me
Solutions Architect Early AWS adopter (2007)
Wednesday, 7 August 13
![Page 5: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/5.jpg)
About me
Solutions Architect Early AWS adopter (2007)Built Cotton On Group’s AWS Infrastructure (2012)
Wednesday, 7 August 13
![Page 6: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/6.jpg)
Agenda
CloudFront in a nutshellCloudFront Best Practices/Anti-Patterns
Wednesday, 7 August 13
![Page 7: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/7.jpg)
CloudFront (CF)
Wednesday, 7 August 13
![Page 8: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/8.jpg)
CloudFront (CF)Content Delivery Network
Wednesday, 7 August 13
![Page 9: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/9.jpg)
CloudFront (CF)Content Delivery NetworkServes Static and Dynamic Content
Wednesday, 7 August 13
![Page 10: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/10.jpg)
CloudFront (CF)Content Delivery NetworkServes Static and Dynamic ContentGlobal, Redundant, Scalable
Wednesday, 7 August 13
![Page 11: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/11.jpg)
CloudFront (CF)Content Delivery NetworkServes Static and Dynamic ContentGlobal, Redundant, ScalableLow Latency, High Bandwidth
Wednesday, 7 August 13
![Page 12: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/12.jpg)
CloudFront (CF)Content Delivery NetworkServes Static and Dynamic ContentGlobal, Redundant, ScalableLow Latency, High BandwidthCost Effective: Transparent, PAYG, Price Classes
Wednesday, 7 August 13
![Page 13: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/13.jpg)
CloudFront (CF)Content Delivery NetworkServes Static and Dynamic ContentGlobal, Redundant, ScalableLow Latency, High BandwidthCost Effective: Transparent, PAYG, Price ClassesNO Edge Side Includes (ESI)
Wednesday, 7 August 13
![Page 14: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/14.jpg)
CF Concepts
Wednesday, 7 August 13
![Page 15: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/15.jpg)
CF ConceptsDistribution
Wednesday, 7 August 13
![Page 16: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/16.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
Wednesday, 7 August 13
![Page 17: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/17.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Wednesday, 7 August 13
![Page 18: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/18.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Wednesday, 7 August 13
![Page 19: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/19.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Wednesday, 7 August 13
![Page 20: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/20.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Object/s (Object Path/Cache Key)
Wednesday, 7 August 13
![Page 21: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/21.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Object/s (Object Path/Cache Key)
Cache Behavior/s (1-10, 1:1, Ordered)
Wednesday, 7 August 13
![Page 22: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/22.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Object/s (Object Path/Cache Key)
Cache Behavior/s (1-10, 1:1, Ordered)
Path Patterns, Origin ID, Viewer Protocol, Minimum TTL, Cookies/Query String Forwarding
Wednesday, 7 August 13
![Page 23: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/23.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Object/s (Object Path/Cache Key)
Cache Behavior/s (1-10, 1:1, Ordered)
Path Patterns, Origin ID, Viewer Protocol, Minimum TTL, Cookies/Query String Forwarding
Edge Location (42+)
Wednesday, 7 August 13
![Page 24: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/24.jpg)
CF ConceptsDistribution
Delivery Method (Download or Streaming)
CNAME Aliases (1-10)
Origin Server/s (M:M)
Domain Name, Origin ID, Origin Protocol
Object/s (Object Path/Cache Key)
Cache Behavior/s (1-10, 1:1, Ordered)
Path Patterns, Origin ID, Viewer Protocol, Minimum TTL, Cookies/Query String Forwarding
Edge Location (42+)
Viewer (GET, Range GET, HEAD Requests)Wednesday, 7 August 13
![Page 25: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/25.jpg)
CF Concepts
http://mycontent.cloudfront.net/photos/profile.pngCache Key: photos/profile.png (Same for HTTP/HTTPS)
Cache Key: object path relative to origin + forwarded query string/cookies
Wednesday, 7 August 13
![Page 26: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/26.jpg)
CF Concepts
Dynamic Content
http://mycontent.cloudfront.net/photos/profile.pngCache Key: photos/profile.png (Same for HTTP/HTTPS)
Cache Key: object path relative to origin + forwarded query string/cookies
Wednesday, 7 August 13
![Page 27: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/27.jpg)
CF Concepts
Dynamic Content
Static Content
http://mycontent.cloudfront.net/photos/profile.pngCache Key: photos/profile.png (Same for HTTP/HTTPS)
Cache Key: object path relative to origin + forwarded query string/cookies
Wednesday, 7 August 13
![Page 28: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/28.jpg)
How it works1. Client request file
2. If file in cache CF return fileNearest Edge
Location
a. If file not in cache, CF request to origin
b. Origin returns file, status 200, cached in CF
1. Client request file
2. If file in cache CF return fileNearest Edge
Location
a. If file in cache but expired, CF request to origin
b. Origin returns 304, CF keeps file in cache
Routing based on low latency/price class
Routing based on low latency/price class
Condition GET
Wednesday, 7 August 13
![Page 29: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/29.jpg)
Distribution
Wednesday, 7 August 13
![Page 30: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/30.jpg)
DistributionDownload Distribution
Wednesday, 7 August 13
![Page 31: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/31.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPS
Wednesday, 7 August 13
![Page 32: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/32.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or Custom
Wednesday, 7 August 13
![Page 33: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/33.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or CustomCookies/Query String Forwarding
Wednesday, 7 August 13
![Page 34: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/34.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or CustomCookies/Query String Forwarding
Streaming Distribution
Wednesday, 7 August 13
![Page 35: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/35.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or CustomCookies/Query String Forwarding
Streaming DistributionViewer Protocol: Adobe RTMP
Wednesday, 7 August 13
![Page 36: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/36.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or CustomCookies/Query String Forwarding
Streaming DistributionViewer Protocol: Adobe RTMPOrigin: S3 only (No Custom)
Wednesday, 7 August 13
![Page 37: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/37.jpg)
DistributionDownload Distribution
Viewer Protocol HTTP/HTTPSOrigin: S3 or CustomCookies/Query String Forwarding
Streaming DistributionViewer Protocol: Adobe RTMPOrigin: S3 only (No Custom)Dynamic/Adoptive Streaming (Adjust bit rate during playback)
Wednesday, 7 August 13
![Page 38: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/38.jpg)
Query String Forwarding
Wednesday, 7 August 13
![Page 39: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/39.jpg)
Query String ForwardingForward query string to origin
Wednesday, 7 August 13
![Page 40: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/40.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitive
Wednesday, 7 August 13
![Page 41: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/41.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
Wednesday, 7 August 13
![Page 42: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/42.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
Wednesday, 7 August 13
![Page 43: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/43.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Wednesday, 7 August 13
![Page 44: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/44.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CF
Wednesday, 7 August 13
![Page 45: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/45.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CFhttp://d111111abcdef8.cloudfront.net/images/image.jpg?type=png
Wednesday, 7 August 13
![Page 46: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/46.jpg)
Query String ForwardingForward query string to originMultiple parameters, order/case sensitiveOrder sensitive: Two objects in CF
http://d111111abcdef8.cloudfront.net/images/image.jpg?height=a&width=b
http://d111111abcdef8.cloudfront.net/images/image.jpg?width=b&height=a
Case sensitive: Two objects in CFhttp://d111111abcdef8.cloudfront.net/images/image.jpg?type=png
http://d111111abcdef8.cloudfront.net/images/image.jpg?type=PNG
Wednesday, 7 August 13
![Page 47: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/47.jpg)
Cookies Forwarding
Wednesday, 7 August 13
![Page 48: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/48.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributes
Wednesday, 7 August 13
![Page 49: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/49.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributesIf choose to forward cookies to origin,
Wednesday, 7 August 13
![Page 50: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/50.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributesIf choose to forward cookies to origin,
Can forward all cookies, OR
Wednesday, 7 August 13
![Page 51: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/51.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributesIf choose to forward cookies to origin,
Can forward all cookies, OROnly specified cookies
Wednesday, 7 August 13
![Page 52: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/52.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributesIf choose to forward cookies to origin,
Can forward all cookies, OROnly specified cookies
Object path+FC uniquely identify in CF
Wednesday, 7 August 13
![Page 53: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/53.jpg)
Cookies ForwardingForwarded cookies (FC): NV pairs, not attributesIf choose to forward cookies to origin,
Can forward all cookies, OROnly specified cookies
Object path+FC uniquely identify in CFNV pair/Case sensitive
Wednesday, 7 August 13
![Page 54: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/54.jpg)
Origin
Wednesday, 7 August 13
![Page 55: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/55.jpg)
OriginS3 Origin: Best for Static media content (Image, Video, Audio)
Wednesday, 7 August 13
![Page 56: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/56.jpg)
OriginS3 Origin: Best for Static media content (Image, Video, Audio)Custom Origin: Best for Static application content (JS, CSS, Fonts)
Wednesday, 7 August 13
![Page 57: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/57.jpg)
OriginS3 Origin: Best for Static media content (Image, Video, Audio)Custom Origin: Best for Static application content (JS, CSS, Fonts)Custom Origin: Best for Dynamic media content (HTML, Thumbnails)
Wednesday, 7 August 13
![Page 58: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/58.jpg)
Make a note
Wednesday, 7 August 13
![Page 59: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/59.jpg)
Make a note
Eventual Consistency
Wednesday, 7 August 13
![Page 60: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/60.jpg)
Make a note
Eventual Consistency10 Origin Servers per CF Distribution
Wednesday, 7 August 13
![Page 61: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/61.jpg)
Make a note
Eventual Consistency10 Origin Servers per CF Distribution10 Cache Behavior per CF Distribution
Wednesday, 7 August 13
![Page 62: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/62.jpg)
Make a note
Eventual Consistency10 Origin Servers per CF Distribution10 Cache Behavior per CF Distribution10 CNAME per CF Distribution
Wednesday, 7 August 13
![Page 63: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/63.jpg)
Make a note
Eventual Consistency10 Origin Servers per CF Distribution10 Cache Behavior per CF Distribution10 CNAME per CF Distribution10 Cookies forwarded per Cache Behavior
Wednesday, 7 August 13
![Page 64: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/64.jpg)
Best Practices
Wednesday, 7 August 13
![Page 65: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/65.jpg)
Best PracticesVersioning
Wednesday, 7 August 13
![Page 66: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/66.jpg)
Best PracticesVersioningCompression
Wednesday, 7 August 13
![Page 67: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/67.jpg)
Best PracticesVersioningCompressionDomain Sharding
Wednesday, 7 August 13
![Page 68: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/68.jpg)
Best PracticesVersioningCompressionDomain ShardingExpiration
Wednesday, 7 August 13
![Page 69: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/69.jpg)
Best PracticesVersioningCompressionDomain ShardingExpirationBucket Organization
Wednesday, 7 August 13
![Page 70: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/70.jpg)
Best PracticesVersioningCompressionDomain ShardingExpirationBucket OrganizationLogging
Wednesday, 7 August 13
![Page 71: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/71.jpg)
Best PracticesVersioningCompressionDomain ShardingExpirationBucket OrganizationLoggingPerformance Testing
Wednesday, 7 August 13
![Page 72: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/72.jpg)
Anti-Patterns
Cache Invalidation
Wednesday, 7 August 13
![Page 73: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/73.jpg)
Cache Invalidation
Wednesday, 7 August 13
![Page 74: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/74.jpg)
Cache Invalidation
Programmatic Cache Invalidation
Wednesday, 7 August 13
![Page 75: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/75.jpg)
Cache Invalidation
Programmatic Cache InvalidationCache Invalidation is expensive
Wednesday, 7 August 13
![Page 76: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/76.jpg)
Cache Invalidation
Programmatic Cache InvalidationCache Invalidation is expensive Unmanageable if you have object dependencies
Wednesday, 7 August 13
![Page 77: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/77.jpg)
Cache Invalidation
Programmatic Cache InvalidationCache Invalidation is expensive Unmanageable if you have object dependencies3 invalidation requests at any given time
Wednesday, 7 August 13
![Page 78: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/78.jpg)
Cache Invalidation
Programmatic Cache InvalidationCache Invalidation is expensive Unmanageable if you have object dependencies3 invalidation requests at any given timeEach invalidation request can included maximum of 1000 files
Wednesday, 7 August 13
![Page 79: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/79.jpg)
Cache Invalidation
Wednesday, 7 August 13
![Page 80: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/80.jpg)
Cache Invalidation
Invalidation takes time to propagate across all edge locations (5-15 minutes)
Wednesday, 7 August 13
![Page 81: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/81.jpg)
Cache Invalidation
Invalidation takes time to propagate across all edge locations (5-15 minutes)Deal breaker: browser cache
Wednesday, 7 August 13
![Page 82: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/82.jpg)
Cache Invalidation
Invalidation takes time to propagate across all edge locations (5-15 minutes)Deal breaker: browser cacheVersioning is best way to avoid the invalidation related issues
Wednesday, 7 August 13
![Page 83: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/83.jpg)
Versioning
Wednesday, 7 August 13
![Page 84: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/84.jpg)
Versioning
CF relies on Origin Servers for versioning
Wednesday, 7 August 13
![Page 85: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/85.jpg)
Versioning
CF relies on Origin Servers for versioningS3 supports versioning
Wednesday, 7 August 13
![Page 86: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/86.jpg)
Versioning
CF relies on Origin Servers for versioningS3 supports versioningVersion enabled Custom Origin
Wednesday, 7 August 13
![Page 87: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/87.jpg)
Versioning
Wednesday, 7 August 13
![Page 88: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/88.jpg)
VersioningVersioning using query strings
Wednesday, 7 August 13
![Page 89: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/89.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Wednesday, 7 August 13
![Page 90: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/90.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash key
Wednesday, 7 August 13
![Page 91: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/91.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash keyFile name as unique key based on file content /static/712vds57tr18929812312enb.png
Wednesday, 7 August 13
![Page 92: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/92.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash keyFile name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffix
Wednesday, 7 August 13
![Page 93: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/93.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash keyFile name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffixFile name with version prefix/suffix /static/profile_123.png
Wednesday, 7 August 13
![Page 94: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/94.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash keyFile name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffixFile name with version prefix/suffix /static/profile_123.png
File name with version prefix/suffix /static/profile_ 712vds57tr18929812312enb.png
Wednesday, 7 August 13
![Page 95: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/95.jpg)
VersioningVersioning using query strings
File name plus query string with version /static/profile.png?versionID=123
Versioning using content based hash keyFile name as unique key based on file content /static/712vds57tr18929812312enb.png
Versioning using prefix/suffixFile name with version prefix/suffix /static/profile_123.png
File name with version prefix/suffix /static/profile_ 712vds57tr18929812312enb.png
You can use a mixed versioning approachWednesday, 7 August 13
![Page 96: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/96.jpg)
Versioning using query strings
Wednesday, 7 August 13
![Page 97: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/97.jpg)
Versioning using query strings
CF supports versioning using query strings forwarding
Wednesday, 7 August 13
![Page 98: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/98.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)
Wednesday, 7 August 13
![Page 99: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/99.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
Wednesday, 7 August 13
![Page 100: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/100.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
Wednesday, 7 August 13
![Page 101: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/101.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
profile.png
Wednesday, 7 August 13
![Page 102: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/102.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
profile.png Upload to S3
Wednesday, 7 August 13
![Page 103: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/103.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png
Wednesday, 7 August 13
![Page 104: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/104.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png Return x-amz-version-id
Wednesday, 7 August 13
![Page 105: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/105.jpg)
Versioning using query strings
CF supports versioning using query strings forwardingVersioning enabled Origin (Custom/S3)For S3 Content
On object upload version enabled S3 bucket will return x-amz-version-id
profile.png Upload to S3 static/images/profile.png Return x-amz-version-id static/images/profile.png?versionId=644c69e148
Wednesday, 7 August 13
![Page 106: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/106.jpg)
Versioning using query strings
Wednesday, 7 August 13
![Page 107: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/107.jpg)
Versioning using query strings
Versionify Application content
Wednesday, 7 August 13
![Page 108: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/108.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
Wednesday, 7 August 13
![Page 109: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/109.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.cssphoto.js, app.js, profile.js
Wednesday, 7 August 13
![Page 110: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/110.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine
Wednesday, 7 August 13
![Page 111: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/111.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js
Wednesday, 7 August 13
![Page 112: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/112.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js Versionify
Wednesday, 7 August 13
![Page 113: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/113.jpg)
Versioning using query strings
Versionify Application contentUse Build Number or Hash of GIT/HG Head
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js Versionify main.css?v=468df6bmain.js?v=468df6b
Wednesday, 7 August 13
![Page 114: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/114.jpg)
Versioning using query strings
Wednesday, 7 August 13
![Page 115: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/115.jpg)
Versioning using content based hash key
Wednesday, 7 August 13
![Page 116: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/116.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)
Wednesday, 7 August 13
![Page 117: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/117.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Wednesday, 7 August 13
![Page 118: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/118.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for file
Wednesday, 7 August 13
![Page 119: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/119.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3
Wednesday, 7 August 13
![Page 120: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/120.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
Wednesday, 7 August 13
![Page 121: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/121.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
profile.jpg
Wednesday, 7 August 13
![Page 122: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/122.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
profile.jpg MD5 Hash File Name
Wednesday, 7 August 13
![Page 123: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/123.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png
Wednesday, 7 August 13
![Page 124: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/124.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png Upload to S3
Wednesday, 7 August 13
![Page 125: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/125.jpg)
Versioning using content based hash key
File name is an unique hash key generated from file content (MD5)For S3 content
Before uploading to S3 generate MD5 hash for fileUse hash as file name to upload on S3Avoid content duplication by comparing MD5 hashes
profile.jpg MD5 Hash File Name b723eh0f0df.png Upload to S3 static/images/b723eh0f0df.png
Wednesday, 7 August 13
![Page 126: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/126.jpg)
Versioning using content based hash key
Wednesday, 7 August 13
![Page 127: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/127.jpg)
Versioning using content based hash key
For application content use a pipeline
Wednesday, 7 August 13
![Page 128: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/128.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
Wednesday, 7 August 13
![Page 129: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/129.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
photo.css, app.css, profile.cssphoto.js, app.js, profile.js
Wednesday, 7 August 13
![Page 130: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/130.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine
Wednesday, 7 August 13
![Page 131: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/131.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js
Wednesday, 7 August 13
![Page 132: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/132.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js MD5 Hash File Name
Wednesday, 7 August 13
![Page 133: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/133.jpg)
Versioning using content based hash key
For application content use a pipelinefile names generated using MD5 hash of file content
photo.css, app.css, profile.cssphoto.js, app.js, profile.js Minify+Combine main.css
main.js MD5 Hash File Name 8972bw7dyf2h.css67bfwu9hhuw.js
Wednesday, 7 August 13
![Page 134: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/134.jpg)
Versioning using content based hash key
Wednesday, 7 August 13
![Page 135: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/135.jpg)
Compression
Wednesday, 7 August 13
![Page 136: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/136.jpg)
CompressionCompressed content is served faster and uses less bandwidth
Wednesday, 7 August 13
![Page 137: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/137.jpg)
CompressionCompressed content is served faster and uses less bandwidthCF can serve both compressed and uncompressed version of files
Wednesday, 7 August 13
![Page 138: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/138.jpg)
CompressionCompressed content is served faster and uses less bandwidthCF can serve both compressed and uncompressed version of filesDepends on viewer or browser request
Wednesday, 7 August 13
![Page 139: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/139.jpg)
CompressionCompressed content is served faster and uses less bandwidthCF can serve both compressed and uncompressed version of filesDepends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
Wednesday, 7 August 13
![Page 140: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/140.jpg)
CompressionCompressed content is served faster and uses less bandwidthCF can serve both compressed and uncompressed version of filesDepends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
For compression CF relies on the custom origin servers
Wednesday, 7 August 13
![Page 141: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/141.jpg)
CompressionCompressed content is served faster and uses less bandwidthCF can serve both compressed and uncompressed version of filesDepends on viewer or browser request
To receive compressed content browser must include Accept-Encoding: gzip in the request header
For compression CF relies on the custom origin serversS3 does not perform the compression
Wednesday, 7 August 13
![Page 142: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/142.jpg)
Compression
Wednesday, 7 August 13
![Page 143: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/143.jpg)
CompressionS3 can store both gzip and non-gzip versions of the file in the same bucket
Wednesday, 7 August 13
![Page 144: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/144.jpg)
CompressionS3 can store both gzip and non-gzip versions of the file in the same bucketWhen uploading gzip file to Amazon S3 set Content-Encoding to gzip
Wednesday, 7 August 13
![Page 145: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/145.jpg)
CompressionS3 can store both gzip and non-gzip versions of the file in the same bucketWhen uploading gzip file to Amazon S3 set Content-Encoding to gzipOn-the-fly compression by custom origin server (Nginx, Apache)
Wednesday, 7 August 13
![Page 146: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/146.jpg)
CompressionS3 can store both gzip and non-gzip versions of the file in the same bucketWhen uploading gzip file to Amazon S3 set Content-Encoding to gzipOn-the-fly compression by custom origin server (Nginx, Apache)Compress: HTML, CSS, JS etc
Wednesday, 7 August 13
![Page 147: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/147.jpg)
CompressionS3 can store both gzip and non-gzip versions of the file in the same bucketWhen uploading gzip file to Amazon S3 set Content-Encoding to gzipOn-the-fly compression by custom origin server (Nginx, Apache)Compress: HTML, CSS, JS etcCompress Image: JPEG, WebP (Q= 0-100)
Wednesday, 7 August 13
![Page 148: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/148.jpg)
Expiration
Wednesday, 7 August 13
![Page 149: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/149.jpg)
ExpirationUse one/both of these
Wednesday, 7 August 13
![Page 150: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/150.jpg)
ExpirationUse one/both of these
On Origin server set Cache-Control max-age header
Wednesday, 7 August 13
![Page 151: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/151.jpg)
ExpirationUse one/both of these
On Origin server set Cache-Control max-age headerIn Cache Behavior set Minimum TTL
Wednesday, 7 August 13
![Page 152: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/152.jpg)
ExpirationUse one/both of these
On Origin server set Cache-Control max-age headerIn Cache Behavior set Minimum TTL
Date header/Age header (RFC 2616)
Wednesday, 7 August 13
![Page 153: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/153.jpg)
ExpirationUse one/both of these
On Origin server set Cache-Control max-age headerIn Cache Behavior set Minimum TTL
Date header/Age header (RFC 2616)Avoid Expire header
Wednesday, 7 August 13
![Page 154: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/154.jpg)
Expiration
Wednesday, 7 August 13
![Page 155: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/155.jpg)
ExpirationBrowser cachability issues (known bug)
Wednesday, 7 August 13
![Page 156: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/156.jpg)
ExpirationBrowser cachability issues (known bug)Set Cache-Control max-age or Minimum TTL very far future
Wednesday, 7 August 13
![Page 157: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/157.jpg)
ExpirationBrowser cachability issues (known bug)Set Cache-Control max-age or Minimum TTL very far futureDepending on request frequency, CloudFront might remove the object before its expiration
Wednesday, 7 August 13
![Page 158: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/158.jpg)
ExpirationBrowser cachability issues (known bug)Set Cache-Control max-age or Minimum TTL very far futureDepending on request frequency, CloudFront might remove the object before its expirationDefault expiration 24hrs
Wednesday, 7 August 13
![Page 159: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/159.jpg)
ExpirationBrowser cachability issues (known bug)Set Cache-Control max-age or Minimum TTL very far futureDepending on request frequency, CloudFront might remove the object before its expirationDefault expiration 24hrsObjects are cached for max {Cache-Control max-age directive, Cache Behavior Minimum TTL}
Wednesday, 7 August 13
![Page 160: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/160.jpg)
Domain Sharding
Wednesday, 7 August 13
![Page 161: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/161.jpg)
Domain ShardingTo increase client side performance
Wednesday, 7 August 13
![Page 162: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/162.jpg)
Domain ShardingTo increase client side performanceOn average 100+ resources on an ecommerce page
Wednesday, 7 August 13
![Page 163: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/163.jpg)
Domain ShardingTo increase client side performanceOn average 100+ resources on an ecommerce pageBrowsers limit the number of simultaneous connections to one server
Wednesday, 7 August 13
![Page 164: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/164.jpg)
Domain ShardingTo increase client side performanceOn average 100+ resources on an ecommerce pageBrowsers limit the number of simultaneous connections to one serverHence limit the parallel download from one server
Wednesday, 7 August 13
![Page 165: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/165.jpg)
Domain Sharding
Wednesday, 7 August 13
![Page 166: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/166.jpg)
Domain ShardingUse two or more CNAME aliases to serve the content from a CF distribution
Wednesday, 7 August 13
![Page 167: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/167.jpg)
Domain ShardingUse two or more CNAME aliases to serve the content from a CF distributionBrowser treat them as different servers
Wednesday, 7 August 13
![Page 168: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/168.jpg)
Domain ShardingUse two or more CNAME aliases to serve the content from a CF distributionBrowser treat them as different serversSharding across 2 CNAME aliases will double the parallel download (Best 2-3)
Wednesday, 7 August 13
![Page 169: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/169.jpg)
Domain ShardingUse two or more CNAME aliases to serve the content from a CF distributionBrowser treat them as different serversSharding across 2 CNAME aliases will double the parallel download (Best 2-3)More than 4 CNAME will degrade browser performance (high CPU and memory uses)
Wednesday, 7 August 13
![Page 170: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/170.jpg)
Domain Sharding
Wednesday, 7 August 13
![Page 171: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/171.jpg)
Domain Sharding
Use CF CNAME alias feature
Wednesday, 7 August 13
![Page 172: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/172.jpg)
Domain Sharding
Use CF CNAME alias featureUse Route 53 for CNAME Aliasing
Wednesday, 7 August 13
![Page 173: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/173.jpg)
Domain Sharding
Use CF CNAME alias featureUse Route 53 for CNAME AliasingCustom Wild Card SSL Certificate
Wednesday, 7 August 13
![Page 174: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/174.jpg)
Domain Sharding
Use CF CNAME alias featureUse Route 53 for CNAME AliasingCustom Wild Card SSL CertificateOn application side: enable CF sharding logic (template compilation etc)
Wednesday, 7 August 13
![Page 175: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/175.jpg)
Domain Sharding
<span style="width:inherit;"> <a href="http://mysite.com/about"><img src="http://cf.mycloudfront.net/about.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/blogs"><img src="http://cf.mycloudfront.net/blogs.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/contact"><img src="http://cf.mycloudfront.net/cont.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/about"><img src="http://cf1.mycloudfront.net/about.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/blogs"><img src="http://cf2.mycloudfront.net/blogs.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/contact"><img src="http://cf1.mycloudfront.net/cont.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/about"><img src="{{ CDN_DOMAINS }}/about.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/blogs"><img src="{{ CDN_DOMAINS }}/blogs.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/contact"><img src="{{ CDN_DOMAINS }}/cont.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/about"><img src="http://mysite.com/about.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/blogs"><img src="http://mysite.com/blogs.jpg" alt=""/></a></span>
<span style="width:inherit;"> <a href="http://mysite.com/contact"><img src="http://mysite.com/cont.jpg" alt=""/></a></span>
CDN with domain shardingCDN without domain sharding
HTML Template
Without CDN
Compiled ORDOM Manipulation
Compiled ORDOM Manipulation
Wednesday, 7 August 13
![Page 176: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/176.jpg)
Domain Sharding
Wednesday, 7 August 13
![Page 177: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/177.jpg)
Domain Sharding
Wednesday, 7 August 13
![Page 178: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/178.jpg)
Domain ShardingApply domain sharding only where it’s needed most
Wednesday, 7 August 13
![Page 179: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/179.jpg)
Domain ShardingApply domain sharding only where it’s needed mostEvenly distribute the resources amongst the shards
Wednesday, 7 August 13
![Page 180: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/180.jpg)
Domain ShardingApply domain sharding only where it’s needed mostEvenly distribute the resources amongst the shardsConsider performance overhead due to the DNS lookup and connection time
Wednesday, 7 August 13
![Page 181: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/181.jpg)
Domain ShardingApply domain sharding only where it’s needed mostEvenly distribute the resources amongst the shardsConsider performance overhead due to the DNS lookup and connection timeSharding may not be good for Mobile Browsers (CPU, Battery Life)
Wednesday, 7 August 13
![Page 182: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/182.jpg)
Bucket Organisation
Wednesday, 7 August 13
![Page 183: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/183.jpg)
Bucket Organisation
Limited Cache Behavior per CF Distribution
Wednesday, 7 August 13
![Page 184: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/184.jpg)
Bucket Organisation
Limited Cache Behavior per CF DistributionPlan your bucket organisation (object keys)
Wednesday, 7 August 13
![Page 185: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/185.jpg)
Bucket Organisation
Limited Cache Behavior per CF DistributionPlan your bucket organisation (object keys)Watch out for the upload paths
Wednesday, 7 August 13
![Page 186: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/186.jpg)
Bucket Organisation
Limited Cache Behavior per CF DistributionPlan your bucket organisation (object keys)Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD
Wednesday, 7 August 13
![Page 187: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/187.jpg)
Bucket Organisation
Limited Cache Behavior per CF DistributionPlan your bucket organisation (object keys)Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD/uploads/video/, /uploads/audio/, /uploads/image/ GOOD
Wednesday, 7 August 13
![Page 188: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/188.jpg)
Bucket Organisation
Limited Cache Behavior per CF DistributionPlan your bucket organisation (object keys)Watch out for the upload paths
/video/uploads/, /audio/uploads/, /images/uploads/ BAD/uploads/video/, /uploads/audio/, /uploads/image/ GOOD
Use wild card patterns (/uploads/*)
Wednesday, 7 August 13
![Page 189: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/189.jpg)
Logging
Wednesday, 7 August 13
![Page 190: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/190.jpg)
LoggingEnable logging, store access log file to S3
Wednesday, 7 August 13
![Page 191: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/191.jpg)
LoggingEnable logging, store access log file to S3One log file per distribution
Wednesday, 7 August 13
![Page 192: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/192.jpg)
LoggingEnable logging, store access log file to S3One log file per distributionCombine log files and analyze logs (EMR)
Wednesday, 7 August 13
![Page 193: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/193.jpg)
LoggingEnable logging, store access log file to S3One log file per distributionCombine log files and analyze logs (EMR)W3C extended log file format
Wednesday, 7 August 13
![Page 194: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/194.jpg)
LoggingEnable logging, store access log file to S3One log file per distributionCombine log files and analyze logs (EMR)W3C extended log file format Streaming log vs Download log
Wednesday, 7 August 13
![Page 195: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/195.jpg)
LoggingEnable logging, store access log file to S3One log file per distributionCombine log files and analyze logs (EMR)W3C extended log file format Streaming log vs Download logContent Analytics: Popularity, Error etc
Wednesday, 7 August 13
![Page 196: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/196.jpg)
Performance Testing
Wednesday, 7 August 13
![Page 197: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/197.jpg)
Performance TestingTradition Load Testing not useful
Wednesday, 7 August 13
![Page 198: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/198.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPs
Wednesday, 7 August 13
![Page 199: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/199.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
Wednesday, 7 August 13
![Page 200: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/200.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → Backbone
Wednesday, 7 August 13
![Page 201: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/201.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
Wednesday, 7 August 13
![Page 202: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/202.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device
Wednesday, 7 August 13
![Page 203: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/203.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device3rd party service (Gomez), application monitor
Wednesday, 7 August 13
![Page 204: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/204.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)
Wednesday, 7 August 13
![Page 205: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/205.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)Clients request from different geolocations
Wednesday, 7 August 13
![Page 206: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/206.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)Clients request from different geolocationsIndependent DNS request, different set of IPs
Wednesday, 7 August 13
![Page 207: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/207.jpg)
Performance TestingTradition Load Testing not useful
Same DNS request, same set of IPsBackbone Testing (Ideal Word)
CDN Server → BackboneLast Mile (Real World, User Experience)
CDN Server → Backbone → Device3rd party service (Gomez), application monitor
Load Testing (Edge Location, Elastic IP Aware)Clients request from different geolocationsIndependent DNS request, different set of IPsDistribute load across set of IPs
Wednesday, 7 August 13
![Page 208: CloudFront BEST PRACTICES & ANTI-PATTERNS](https://reader035.fdocuments.us/reader035/viewer/2022062312/5552782fb4c905b4598b48e2/html5/thumbnails/208.jpg)
Thank YouQ & A
Wednesday, 7 August 13