SlideShare a Scribd company logo
1 of 62
Download to read offline
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Best Practices for Configuring, Securing, and
Monitoring Your Amazon CloudFront Distribution
Alec Peterson
General Manager, Amazon CloudFront
Anton Radlein
Software Development Manager, Amazon CloudFront
Cherie Wong
Sr. Software Development Manager, Amazon CloudFront
Efrain Fuentes
Enterprise Solutions Architect
CTD301
What to Expect from the Session
• How Amazon CloudFront delivers content
• Configuring your cache on CloudFront
• Measure application performance with real user
monitoring (RUM)
• Stop malicious viewers with CloudFront and AWS WAF
How CloudFront delivers
content
Definitions
• Viewer
• An end-user requesting content from CloudFront
• On a mobile device, desktop or other internet-connected
device
• CloudFront POP
• Point Of Presence, also referred to as an Edge Location
• Located in datacenters in major metropolitan areas, directly
connected to multiple ISPs
• Several racks of servers and network equipment, terminating
viewer connections
CloudFront delivering content
• Multiple identical (more or less) locations
• Location selection is critical
• Viewer perspective
• Latency
• Throughput
• CloudFront perspective
• Availability
• Capacity
• Location
What does ‘routing’ actually mean?
• Packet routing
• Purely destination-
based
• Limited ability to route
around congestion
What does ‘routing’ actually mean?
• Request routing
• Latency
• Throughput
• Capacity
• Geography
• Done at the DNS layer (or higher)
How does CloudFront perform routing?
CloudFront
edge
location
1.1.1.1
ISP NS
cloudfront.net
authoritative NS
viewer
(recursive lookup) distribution-id.cloudfront.net
(IP address of optimal CloudFront Edge location) 1.1.1.1
Primarily at the DNS layer
• Recursive resolver IP routing
What’s wrong with this picture?
What happened?
• A divergent resolver
• Resolvers that serve a wide set of users across many
networks/geographies
• VPN users
• Distributed corporate networks
• What can be done?
• Use a local resolver
• Use a resolver that supports EDNS0 ECS
What is EDNS0 client-subnet (ECS)?
• IETF open internet-draft
• Informational RFC 7871
• DNS query includes information about the network that
originated the query:
• First three octets of a IPv4 address commonly used
(1.2.3.0/24)
• No client-side resolver modifications necessary
• Some common open resolvers (such as Google’s 8.8.8.8
anycast resolver) support it
EDNS0 ECS-enabled DNS resolution
Key takeaways
• Where you are routed depends on many factors
• Network
• Geographic Location
• Individual POP status
• DNS is an imperfect request routing mechanism
• But it is also ubiquitous
• If your customers use ECS-enabled resolvers, their
experience will improve
Configuring your cache on
CloudFront
Why cache?
Two Laws:
1. Better performance for your viewers.
2. Less load on your origin.
What to expect
• What we do with a viewer request?
• How do we cache?
• Generating cache keys
• Managing your cache
• Setting Cache-Control headers
• Configuring your distribution and cache behaviors
• Additional Best Practices
• Versioning your assets
• Forwarding only required values
• Monitor your logs
Origin
IAD Edge
Cache
IAD12 ATL50 JFK1 JAX1
NRT Edge
Cache
NRT12 NRT53 NRT52 NRT20
Caching tiers
What happens with each request?
Is it in
cache?
Is it
expired?
Revalidate
with Origin
Origin
responds
with 304 (Not
Modified)
Origin
responds
with 200
(OK) and
latest version
of object
Forward
request to
origin
Y Y
NN
Viewer
Request
Hit / Refresh Hit
Miss
Cache
it
How do we generate a cache key?
Use the host header to create an internal canonical URL.
E.g., d123.cloudfront.net, example.com
Then…
- Remove query strings
- Remove the protocol
- Add accept-encoding (i.e., gzip, identity)
Managing your cache from your origin
Expires headers from origin
Expires reflects when the cache must go back to the origin
server to see if the object has changed.
It is a fixed point in time and accuracy relies on clock
synchronization.
< Expires: Fri, 1 Dec 2017 12:34:50 GMT
Cache-Control headers from origin
These directives give you fine-grained control over what is cached and
for how long (in seconds):
< Cache-Control: max-age=300
< Cache-Control: max-age=30, s-maxage=3600
Example: max-age=0, s-maxage=86400 for display ads
Browser
Shared Edge Cache
Cache-Control headers (examples)
Static Assets Login Landing
Pages
Live Streaming
Manifests
Media Fragments
*.css, *.js, images,
software
downloads
index.html /*.m3u8 /*.ts
Cache-
Control:
public; max-
age=31536000
Cache-
Control: no-
cache=Set-
Cookie; max-
age=30
Cache-
Control:
public; max-
age=2
Cache-
Control:
public; max-
age=31536000
Dynamic content? Cache it.
Use Cache-Control directives to minimize load on your origin:
- no-cache: cache & ask origin
- max-age=0: cache & ask origin
Other options:
- no-store: never cached at the edge nor by the browser
- private: never cached at the edge, but might be cached
by the browser
Managing your cache from CloudFront
Cache behaviors
on CloudFront
Specify caching configurations
based on URL path matching
(i.e., for different content).
Whatever you forward affects
your cache key. Use Trusted
Advisor checks!
Be wary of:
• Forwarded headers
• Query string forwarding
• Cookie forwarding
Set Min, Max, and Default TTLs for CloudFront
Min TTL Max TTLmax-age /
Expires
Browser Edge Cache
max-age /
s-maxage /
Expires
Max TTLmax-age /
Expires
max-age /
s-maxage /
Expires
Min TTL
Max TTL
max-age /
s-maxage /
Expires
Min TTLmax-age /
Expires
A couple tips…
Errors? Cache them too!
Cache and return a custom error
page and response code for each
HTTP error code.
Give your origin just the right
amount of time to recover.
Enable faster iteration of new styles without issuing invalidations.
Protect against browsers that don’t honor your Cache-Control headers.
<link
href="//assets.example.com/assets/v1/css/jumbotron-narrow.css“
rel="stylesheet">
<link
href="//assets.example.com/assets/v2/css/jumbotron-narrow.css“
rel="stylesheet">
<link
href="//assets.example.com/assets/css/jumbotron-
narrow.css?<md5sum>“
rel="stylesheet">
Version your assets
Minimize forwarded values
All forwarded headers are
used as part of the cache
key, which means it
dramatically reduces your
cacheability.
When in doubt, check the logs!
#Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer)
cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-
taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version
2014-05-23 01:13:11 FRA2 182 192.0.2.10 GET d111111abcdef8.cloudfront.net /view/my/file.html 200
www.displaymyfiles.com Mozilla/4.0%20(compatible;%20MSIE%205.0b1;%20Mac_PowerPC) - zip=98101 RefreshHit
MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE== d111111abcdef8.cloudfront.net http - 0.001 - - - RefreshHit
HTTP/1.1
2014-05-23 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304
www.unknownsingers.com Mozilla/4.0%20(compatible;%20MSIE%207.0;%20Windows%20NT%205.1) a=b&c=d zip=50158 Hit
xGN7KWpVEmB9Dp7ctcVFQC4E-nrcOcEKS3QyAez--06dV7TEXAMPLE== d111111abcdef8.cloudfront.net http - 0.002 - - - Hit
HTTP/1.1
Log CloudFront request IDs
Nginx:
log_format main '$remote_addr - $remote_user
[$time_local] "$request" ‘ '$status
$body_bytes_sent "$http_referer" ‘
'"$http_user_agent" http_x_forwarded_for"
"$http_x_amz_cf_id"';
Apache:
LogFormat "%h %l %u %t "%r" %>s %b
"%{Referer}i" "%{User-Agent}i" "%{X-Amz-Cf-
Id}i"" combined
Key takeaways
• Set Cache-Control headers appropriately for your
content
• Cache dynamic content
• Create multiple cache behaviors and adapt
configurations for your content type, including errors
• Forward only required values
• Version your assets
• Log your request IDs!
Measure application
performance with RUM
Measure application performance with RUM
Synthetic monitoring vs. real user monitoring (RUM):
• Synthetic monitoring overview
• RUM overview
• When to use one over the other (baselining vs. gaining
situational insight)
What is synthetic monitoring?
Pros:
• Consistent signal of service health
• Easy to setup (kind of)
• Baseline performance
synthetic monitoring
configuration
synthetic
monitoring
portal
web application
simulated users
What is synthetic monitoring?
Pros:
• Consistent signal of service health
• Easy to setup (kind of)
• Baseline performance
synthetic monitoring
configuration
web application
simulated users
Where synthetic measurements go wrong
Cons:
• Network path to your application might not be representative
• Special cases and snowflakes
synthetic monitoring
configuration
web application
simulated usersreal
user
Where synthetic measurements go wrong
Cons:
• Network path to your application might not be representative
• Special cases and snowflakes
synthetic monitoring
configuration
web application
simulated usersreal
user
How do you feel about RUM?
web application
real users
script injected in
web page HTTP
response
RUM
provider
portal
• Script injected in web page
• Script beacons data back from the user’s browser session to the
RUM provider
• RUM provider portal aggregates the data for analysis
What can RUM tell you?
• What should my next optimization be?
• What is the cause of a loss of availability?
*Reference: https://developers.google.com
Network optimizations: connections
Connection definitions:
• Queueing – Time spent waiting to begin processing
• Stalled/Blocking – Total time spent in queue or proxying
• DNS lookup – Time taken to receive DNS records (like A or
AAAA)
• Initial connection – Inclusive of TCP handshake and negotiating
SSL
Network optimizations: requests
Request definitions:
• Request sent – HTTP request sent time
• TTFB - Time To first byte
• Content download – Time to last byte
Network optimizations: head of line blocking
Serialized requests could be your bottleneck due to head of line blocking in
HTTP 1.1 if you’re serving from the same origin!
Network optimizations: Key takeaways
Insights from this example:
• Evaluate your user-base
• Know your data
• Look at the right data
Optimizations:
• Use CloudFront!
• Origin as close to your end-users as possible (multi-region)
• HTTP/2
Best practices for configuring RUM on CloudFront
• Availability: Test your critical resources
• Index pages
• Video manifests
• Critical resources required for page load
• Performance: Capture Total Load time
• First-Byte latency is not always important. Know your content
and optimize on the appropriate dimension!
Stop malicious viewers with
CloudFront and AWS WAF
Securing your CloudFront distribution
• Leverage AWS WAF with preconfigured protections
• Configure CloudFront to serve private content
• Automate security response by using services like AWS
Lambda
• Leverage AWS Certificate Manager for SSL
AWS WAF
AWS WAF preconfigured protections
AWS WAF preconfigured protections
Access Handler
AWS WAF preconfigured protections
Log Parser
AWS WAF preconfigured protections
IP List Parser
AWS WAF preconfigured protections
http://docs.aws.amazon.com/solutions/latest/aws-waf-security-automations/
Private content – restrict origin access
Amazon S3
Origin Access Identify (OAI)
• Prevents direct access to your Amazon
S3 bucket
• Ensures performance benefits to all
customers
Custom origin
Block by IP address
• Whitelist only the Amazon CloudFront
IP range
• Protects origin from overload
• Ensures performance benefits to all
customers
Signed URLs
• Add signature to the Querystring in
URL
• Your URL changes
• Use to restrict access to individual
files
Signed Cookies
• Add signature to a cookie
• Your URL does not change
• Use to restrict access to multiple
files
Private content – signed URLs and cookies
Automate security response
• Subscribe to Amazon SNS notifications for changes to
IP ranges
• Automatically update security groups
AWS Lambda
Amazon CloudFront
Amazon SNS
Security group
Web app
server
Web app
serverAWS IP ranges
Update IP range
SNS message
https://github.com/awslabs/aws-cloudfront-samples
Leverage AWS Certificate Manager for SSL
Key takeaways
• Leverage AWS WAF
• Secure your origin and content
• Automate security response
Thank you!
Remember to complete
your evaluations!

More Related Content

What's hot

Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
Amazon Web Services Korea
 

What's hot (20)

(CMP401) Elastic Load Balancing Deep Dive and Best Practices
(CMP401) Elastic Load Balancing Deep Dive and Best Practices(CMP401) Elastic Load Balancing Deep Dive and Best Practices
(CMP401) Elastic Load Balancing Deep Dive and Best Practices
 
Secure Content Delivery Using Amazon CloudFront and AWS WAF
Secure Content Delivery Using Amazon CloudFront and AWS WAFSecure Content Delivery Using Amazon CloudFront and AWS WAF
Secure Content Delivery Using Amazon CloudFront and AWS WAF
 
Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
Media Service on a Cloud :: 콘텐츠연합플랫폼 :: AWS Media Day 2016
 
AWS Webcast - Best Practices for Content Delivery using Amazon CloudFront
AWS Webcast - Best Practices for Content Delivery using Amazon CloudFrontAWS Webcast - Best Practices for Content Delivery using Amazon CloudFront
AWS Webcast - Best Practices for Content Delivery using Amazon CloudFront
 
Build A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million UsersBuild A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million Users
 
AWS re:Invent 2016: Design Patterns for High Availability: Lessons from Amazo...
AWS re:Invent 2016: Design Patterns for High Availability: Lessons from Amazo...AWS re:Invent 2016: Design Patterns for High Availability: Lessons from Amazo...
AWS re:Invent 2016: Design Patterns for High Availability: Lessons from Amazo...
 
AWS re:Invent 2016: Searching Inside Video at Petabyte Scale Using Spot (WIN307)
AWS re:Invent 2016: Searching Inside Video at Petabyte Scale Using Spot (WIN307)AWS re:Invent 2016: Searching Inside Video at Petabyte Scale Using Spot (WIN307)
AWS re:Invent 2016: Searching Inside Video at Petabyte Scale Using Spot (WIN307)
 
Introduction to CloudFront
Introduction to CloudFrontIntroduction to CloudFront
Introduction to CloudFront
 
Being Well Architected in the Cloud (Updated)
Being Well Architected in the Cloud (Updated)Being Well Architected in the Cloud (Updated)
Being Well Architected in the Cloud (Updated)
 
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
 
The Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel AvivThe Pace of Innovation - Pop-up Loft Tel Aviv
The Pace of Innovation - Pop-up Loft Tel Aviv
 
(WEB302) Best Practices for Running WordPress on AWS | AWS re:Invent 2014
(WEB302) Best Practices for Running WordPress on AWS | AWS re:Invent 2014(WEB302) Best Practices for Running WordPress on AWS | AWS re:Invent 2014
(WEB302) Best Practices for Running WordPress on AWS | AWS re:Invent 2014
 
AWS WAF introduction and live demo - Pop-up Loft Tel Aviv
AWS WAF introduction and live demo - Pop-up Loft Tel AvivAWS WAF introduction and live demo - Pop-up Loft Tel Aviv
AWS WAF introduction and live demo - Pop-up Loft Tel Aviv
 
SRV206 Getting Started with Amazon CloudFront Content Delivery Network
SRV206 Getting Started with Amazon CloudFront Content Delivery NetworkSRV206 Getting Started with Amazon CloudFront Content Delivery Network
SRV206 Getting Started with Amazon CloudFront Content Delivery Network
 
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity OptionsCreating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options
 
AWS re:Invent 2016: Discovery Channel's Broadcast Workflows and Channel Origi...
AWS re:Invent 2016: Discovery Channel's Broadcast Workflows and Channel Origi...AWS re:Invent 2016: Discovery Channel's Broadcast Workflows and Channel Origi...
AWS re:Invent 2016: Discovery Channel's Broadcast Workflows and Channel Origi...
 
AWS re:Invent 2016: VMware and AWS Together - VMware Cloud on AWS (ENT317)
AWS re:Invent 2016: VMware and AWS Together - VMware Cloud on AWS (ENT317)AWS re:Invent 2016: VMware and AWS Together - VMware Cloud on AWS (ENT317)
AWS re:Invent 2016: VMware and AWS Together - VMware Cloud on AWS (ENT317)
 
DDoS Resiliency
DDoS ResiliencyDDoS Resiliency
DDoS Resiliency
 
Next-Generation Firewall Services VPC Integration
Next-Generation Firewall Services VPC IntegrationNext-Generation Firewall Services VPC Integration
Next-Generation Firewall Services VPC Integration
 
AWS re:Invent 2016: Media Delivery from the Cloud: Integrated AWS Solutions f...
AWS re:Invent 2016: Media Delivery from the Cloud: Integrated AWS Solutions f...AWS re:Invent 2016: Media Delivery from the Cloud: Integrated AWS Solutions f...
AWS re:Invent 2016: Media Delivery from the Cloud: Integrated AWS Solutions f...
 

Viewers also liked

Viewers also liked (20)

(STG205) Secure Content Delivery Using Amazon CloudFront
(STG205) Secure Content Delivery Using Amazon CloudFront(STG205) Secure Content Delivery Using Amazon CloudFront
(STG205) Secure Content Delivery Using Amazon CloudFront
 
Dynamic Content Acceleration: Fast Web Apps with Amazon CloudFront and Amazon...
Dynamic Content Acceleration: Fast Web Apps with Amazon CloudFront and Amazon...Dynamic Content Acceleration: Fast Web Apps with Amazon CloudFront and Amazon...
Dynamic Content Acceleration: Fast Web Apps with Amazon CloudFront and Amazon...
 
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
AWS re:Invent 2016: Automated Governance of Your AWS Resources (DEV302)
 
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of our big data ec...
 
NEW LAUNCH! Serverless Apps with AWS Step Functions
NEW LAUNCH! Serverless Apps with AWS Step FunctionsNEW LAUNCH! Serverless Apps with AWS Step Functions
NEW LAUNCH! Serverless Apps with AWS Step Functions
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
 
(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNs(NET406) Deep Dive: AWS Direct Connect and VPNs
(NET406) Deep Dive: AWS Direct Connect and VPNs
 
Making (Almost) Any Database Faster and Cheaper with Caching
Making (Almost) Any Database Faster and Cheaper with CachingMaking (Almost) Any Database Faster and Cheaper with Caching
Making (Almost) Any Database Faster and Cheaper with Caching
 
Getting Started with AWS Security
Getting Started with AWS SecurityGetting Started with AWS Security
Getting Started with AWS Security
 
Cloud Storage State of the Union
Cloud Storage State of the UnionCloud Storage State of the Union
Cloud Storage State of the Union
 
Visão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloudVisão estratégica de como migrar para a cloud
Visão estratégica de como migrar para a cloud
 
Developing Connected Applications with Amazon Web Services IoT
Developing Connected Applications with Amazon Web Services IoTDeveloping Connected Applications with Amazon Web Services IoT
Developing Connected Applications with Amazon Web Services IoT
 
Amazon CloudFront Best Practices and Anti-patterns
Amazon CloudFront  Best Practices and Anti-patternsAmazon CloudFront  Best Practices and Anti-patterns
Amazon CloudFront Best Practices and Anti-patterns
 
Meetup #5: Architecting for High Availability
Meetup #5: Architecting for High Availability Meetup #5: Architecting for High Availability
Meetup #5: Architecting for High Availability
 
(SDD302) A Tale of One Thousand Instances - Migrating from Amazon EC2-Classic...
(SDD302) A Tale of One Thousand Instances - Migrating from Amazon EC2-Classic...(SDD302) A Tale of One Thousand Instances - Migrating from Amazon EC2-Classic...
(SDD302) A Tale of One Thousand Instances - Migrating from Amazon EC2-Classic...
 
Modern Monitoring - devops roadtrip
Modern Monitoring - devops roadtripModern Monitoring - devops roadtrip
Modern Monitoring - devops roadtrip
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private Cloud
 
Deep Dive on Amazon S3
Deep Dive on Amazon S3Deep Dive on Amazon S3
Deep Dive on Amazon S3
 
Site24x7 PHP Monitoring for DevOps
Site24x7 PHP Monitoring for DevOpsSite24x7 PHP Monitoring for DevOps
Site24x7 PHP Monitoring for DevOps
 

Similar to AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configuring, Securing and Monitoring your Distribution (CTD301)

Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
Jess Coburn
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 Stratos
WSO2
 

Similar to AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configuring, Securing and Monitoring your Distribution (CTD301) (20)

Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
 
Web Speed And Scalability
Web Speed And ScalabilityWeb Speed And Scalability
Web Speed And Scalability
 
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
Dynamic Content Acceleration: Lightning Fast Web Apps with Amazon CloudFront ...
 
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
A Public Cloud Based SOA Workflow for Machine Learning Based Recommendation A...
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
 
PowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasPowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael Colas
 
How Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWSHow Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWS
 
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
Dynamic Content Acceleration: Amazon CloudFront and Amazon Route 53 (ARC309) ...
 
Cloud computing 3702
Cloud computing 3702Cloud computing 3702
Cloud computing 3702
 
AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 Stratos
 
Delivering Mobile Apps That Perform
Delivering Mobile Apps That PerformDelivering Mobile Apps That Perform
Delivering Mobile Apps That Perform
 
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon EKS 그리고 Service Mesh (김세호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Windows Azure Essentials V3
Windows Azure Essentials V3Windows Azure Essentials V3
Windows Azure Essentials V3
 
Salesforce Performance hacks - Client Side
Salesforce Performance hacks - Client SideSalesforce Performance hacks - Client Side
Salesforce Performance hacks - Client Side
 
Bigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_appBigdata meetup dwarak_realtime_score_app
Bigdata meetup dwarak_realtime_score_app
 
Monitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECSMonitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECS
 
Breaking the Monolith Road to Containers
Breaking the Monolith Road to ContainersBreaking the Monolith Road to Containers
Breaking the Monolith Road to Containers
 

More from Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configuring, Securing and Monitoring your Distribution (CTD301)

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Best Practices for Configuring, Securing, and Monitoring Your Amazon CloudFront Distribution Alec Peterson General Manager, Amazon CloudFront Anton Radlein Software Development Manager, Amazon CloudFront Cherie Wong Sr. Software Development Manager, Amazon CloudFront Efrain Fuentes Enterprise Solutions Architect CTD301
  • 2. What to Expect from the Session • How Amazon CloudFront delivers content • Configuring your cache on CloudFront • Measure application performance with real user monitoring (RUM) • Stop malicious viewers with CloudFront and AWS WAF
  • 4. Definitions • Viewer • An end-user requesting content from CloudFront • On a mobile device, desktop or other internet-connected device • CloudFront POP • Point Of Presence, also referred to as an Edge Location • Located in datacenters in major metropolitan areas, directly connected to multiple ISPs • Several racks of servers and network equipment, terminating viewer connections
  • 5. CloudFront delivering content • Multiple identical (more or less) locations • Location selection is critical • Viewer perspective • Latency • Throughput • CloudFront perspective • Availability • Capacity • Location
  • 6. What does ‘routing’ actually mean? • Packet routing • Purely destination- based • Limited ability to route around congestion
  • 7. What does ‘routing’ actually mean? • Request routing • Latency • Throughput • Capacity • Geography • Done at the DNS layer (or higher)
  • 8. How does CloudFront perform routing? CloudFront edge location 1.1.1.1 ISP NS cloudfront.net authoritative NS viewer (recursive lookup) distribution-id.cloudfront.net (IP address of optimal CloudFront Edge location) 1.1.1.1 Primarily at the DNS layer • Recursive resolver IP routing
  • 9. What’s wrong with this picture?
  • 10. What happened? • A divergent resolver • Resolvers that serve a wide set of users across many networks/geographies • VPN users • Distributed corporate networks • What can be done? • Use a local resolver • Use a resolver that supports EDNS0 ECS
  • 11. What is EDNS0 client-subnet (ECS)? • IETF open internet-draft • Informational RFC 7871 • DNS query includes information about the network that originated the query: • First three octets of a IPv4 address commonly used (1.2.3.0/24) • No client-side resolver modifications necessary • Some common open resolvers (such as Google’s 8.8.8.8 anycast resolver) support it
  • 12. EDNS0 ECS-enabled DNS resolution
  • 13. Key takeaways • Where you are routed depends on many factors • Network • Geographic Location • Individual POP status • DNS is an imperfect request routing mechanism • But it is also ubiquitous • If your customers use ECS-enabled resolvers, their experience will improve
  • 14. Configuring your cache on CloudFront
  • 15. Why cache? Two Laws: 1. Better performance for your viewers. 2. Less load on your origin.
  • 16. What to expect • What we do with a viewer request? • How do we cache? • Generating cache keys • Managing your cache • Setting Cache-Control headers • Configuring your distribution and cache behaviors • Additional Best Practices • Versioning your assets • Forwarding only required values • Monitor your logs
  • 17. Origin IAD Edge Cache IAD12 ATL50 JFK1 JAX1 NRT Edge Cache NRT12 NRT53 NRT52 NRT20 Caching tiers
  • 18. What happens with each request? Is it in cache? Is it expired? Revalidate with Origin Origin responds with 304 (Not Modified) Origin responds with 200 (OK) and latest version of object Forward request to origin Y Y NN Viewer Request Hit / Refresh Hit Miss Cache it
  • 19. How do we generate a cache key? Use the host header to create an internal canonical URL. E.g., d123.cloudfront.net, example.com Then… - Remove query strings - Remove the protocol - Add accept-encoding (i.e., gzip, identity)
  • 20. Managing your cache from your origin
  • 21. Expires headers from origin Expires reflects when the cache must go back to the origin server to see if the object has changed. It is a fixed point in time and accuracy relies on clock synchronization. < Expires: Fri, 1 Dec 2017 12:34:50 GMT
  • 22. Cache-Control headers from origin These directives give you fine-grained control over what is cached and for how long (in seconds): < Cache-Control: max-age=300 < Cache-Control: max-age=30, s-maxage=3600 Example: max-age=0, s-maxage=86400 for display ads Browser Shared Edge Cache
  • 23. Cache-Control headers (examples) Static Assets Login Landing Pages Live Streaming Manifests Media Fragments *.css, *.js, images, software downloads index.html /*.m3u8 /*.ts Cache- Control: public; max- age=31536000 Cache- Control: no- cache=Set- Cookie; max- age=30 Cache- Control: public; max- age=2 Cache- Control: public; max- age=31536000
  • 24. Dynamic content? Cache it. Use Cache-Control directives to minimize load on your origin: - no-cache: cache & ask origin - max-age=0: cache & ask origin Other options: - no-store: never cached at the edge nor by the browser - private: never cached at the edge, but might be cached by the browser
  • 25. Managing your cache from CloudFront
  • 26. Cache behaviors on CloudFront Specify caching configurations based on URL path matching (i.e., for different content). Whatever you forward affects your cache key. Use Trusted Advisor checks! Be wary of: • Forwarded headers • Query string forwarding • Cookie forwarding
  • 27. Set Min, Max, and Default TTLs for CloudFront Min TTL Max TTLmax-age / Expires Browser Edge Cache max-age / s-maxage / Expires Max TTLmax-age / Expires max-age / s-maxage / Expires Min TTL Max TTL max-age / s-maxage / Expires Min TTLmax-age / Expires
  • 29. Errors? Cache them too! Cache and return a custom error page and response code for each HTTP error code. Give your origin just the right amount of time to recover.
  • 30. Enable faster iteration of new styles without issuing invalidations. Protect against browsers that don’t honor your Cache-Control headers. <link href="//assets.example.com/assets/v1/css/jumbotron-narrow.css“ rel="stylesheet"> <link href="//assets.example.com/assets/v2/css/jumbotron-narrow.css“ rel="stylesheet"> <link href="//assets.example.com/assets/css/jumbotron- narrow.css?<md5sum>“ rel="stylesheet"> Version your assets
  • 31. Minimize forwarded values All forwarded headers are used as part of the cache key, which means it dramatically reduces your cacheability.
  • 32. When in doubt, check the logs! #Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time- taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version 2014-05-23 01:13:11 FRA2 182 192.0.2.10 GET d111111abcdef8.cloudfront.net /view/my/file.html 200 www.displaymyfiles.com Mozilla/4.0%20(compatible;%20MSIE%205.0b1;%20Mac_PowerPC) - zip=98101 RefreshHit MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE== d111111abcdef8.cloudfront.net http - 0.001 - - - RefreshHit HTTP/1.1 2014-05-23 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304 www.unknownsingers.com Mozilla/4.0%20(compatible;%20MSIE%207.0;%20Windows%20NT%205.1) a=b&c=d zip=50158 Hit xGN7KWpVEmB9Dp7ctcVFQC4E-nrcOcEKS3QyAez--06dV7TEXAMPLE== d111111abcdef8.cloudfront.net http - 0.002 - - - Hit HTTP/1.1
  • 33. Log CloudFront request IDs Nginx: log_format main '$remote_addr - $remote_user [$time_local] "$request" ‘ '$status $body_bytes_sent "$http_referer" ‘ '"$http_user_agent" http_x_forwarded_for" "$http_x_amz_cf_id"'; Apache: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" "%{X-Amz-Cf- Id}i"" combined
  • 34. Key takeaways • Set Cache-Control headers appropriately for your content • Cache dynamic content • Create multiple cache behaviors and adapt configurations for your content type, including errors • Forward only required values • Version your assets • Log your request IDs!
  • 36. Measure application performance with RUM Synthetic monitoring vs. real user monitoring (RUM): • Synthetic monitoring overview • RUM overview • When to use one over the other (baselining vs. gaining situational insight)
  • 37. What is synthetic monitoring? Pros: • Consistent signal of service health • Easy to setup (kind of) • Baseline performance synthetic monitoring configuration synthetic monitoring portal web application simulated users
  • 38. What is synthetic monitoring? Pros: • Consistent signal of service health • Easy to setup (kind of) • Baseline performance synthetic monitoring configuration web application simulated users
  • 39. Where synthetic measurements go wrong Cons: • Network path to your application might not be representative • Special cases and snowflakes synthetic monitoring configuration web application simulated usersreal user
  • 40. Where synthetic measurements go wrong Cons: • Network path to your application might not be representative • Special cases and snowflakes synthetic monitoring configuration web application simulated usersreal user
  • 41. How do you feel about RUM? web application real users script injected in web page HTTP response RUM provider portal • Script injected in web page • Script beacons data back from the user’s browser session to the RUM provider • RUM provider portal aggregates the data for analysis
  • 42. What can RUM tell you? • What should my next optimization be? • What is the cause of a loss of availability? *Reference: https://developers.google.com
  • 43. Network optimizations: connections Connection definitions: • Queueing – Time spent waiting to begin processing • Stalled/Blocking – Total time spent in queue or proxying • DNS lookup – Time taken to receive DNS records (like A or AAAA) • Initial connection – Inclusive of TCP handshake and negotiating SSL
  • 44. Network optimizations: requests Request definitions: • Request sent – HTTP request sent time • TTFB - Time To first byte • Content download – Time to last byte
  • 45. Network optimizations: head of line blocking Serialized requests could be your bottleneck due to head of line blocking in HTTP 1.1 if you’re serving from the same origin!
  • 46. Network optimizations: Key takeaways Insights from this example: • Evaluate your user-base • Know your data • Look at the right data Optimizations: • Use CloudFront! • Origin as close to your end-users as possible (multi-region) • HTTP/2
  • 47. Best practices for configuring RUM on CloudFront • Availability: Test your critical resources • Index pages • Video manifests • Critical resources required for page load • Performance: Capture Total Load time • First-Byte latency is not always important. Know your content and optimize on the appropriate dimension!
  • 48. Stop malicious viewers with CloudFront and AWS WAF
  • 49. Securing your CloudFront distribution • Leverage AWS WAF with preconfigured protections • Configure CloudFront to serve private content • Automate security response by using services like AWS Lambda • Leverage AWS Certificate Manager for SSL
  • 51. AWS WAF preconfigured protections
  • 52. AWS WAF preconfigured protections Access Handler
  • 53. AWS WAF preconfigured protections Log Parser
  • 54. AWS WAF preconfigured protections IP List Parser
  • 55. AWS WAF preconfigured protections http://docs.aws.amazon.com/solutions/latest/aws-waf-security-automations/
  • 56. Private content – restrict origin access Amazon S3 Origin Access Identify (OAI) • Prevents direct access to your Amazon S3 bucket • Ensures performance benefits to all customers Custom origin Block by IP address • Whitelist only the Amazon CloudFront IP range • Protects origin from overload • Ensures performance benefits to all customers
  • 57. Signed URLs • Add signature to the Querystring in URL • Your URL changes • Use to restrict access to individual files Signed Cookies • Add signature to a cookie • Your URL does not change • Use to restrict access to multiple files Private content – signed URLs and cookies
  • 58. Automate security response • Subscribe to Amazon SNS notifications for changes to IP ranges • Automatically update security groups AWS Lambda Amazon CloudFront Amazon SNS Security group Web app server Web app serverAWS IP ranges Update IP range SNS message https://github.com/awslabs/aws-cloudfront-samples
  • 59. Leverage AWS Certificate Manager for SSL
  • 60. Key takeaways • Leverage AWS WAF • Secure your origin and content • Automate security response