SlideShare a Scribd company logo
1 of 39
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Taking DevOps Closer to the Edge
L e e A t k i n s o n , P r i n c i p a l S o l u t i o n s A r c h i t e c t
C T D 4 0 1
N o v e m b e r 3 0 , 2 0 1 7
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agenda
1. What is the AWS edge?
2. The application edge
3. Patterns for the DevOps edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What is the AWS edge?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS regions
44 Availability Zones (AZs)
16 Regions
17 AZs in 6 Regions announced
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS edge network
107 Points of Presence (PoPs)
96 Edge Locations
11 Regional Edge Caches (RECs)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS edge services
• Amazon CloudFront
• Content delivery network (CDN)
• Amazon Route 53
• DNS registration and hosting, health checks
• AWS WAF
• Web application firewall (WAF)
• AWS Shield
• DDOS protection
• AWS Lambda@Edge
• Serverless compute in the edge network
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
The application edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Your application =
EC2/ELB/S3
Route 53/CloudFront/
AWS WAF & AWS Shield
HTML5/Mobile/Desktop
Origin+ Edge+ Client
… and Lambda@Edge!
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ClientClient
Amazon Backbone
Edge location Edge location Edge location
CloudFront helps improve user experience
Origin
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CloudFront helps reduce costs
Free data transfer cost AWS
origin to CloudFront
Less load on origin
Lower data transfer cost CloudFront to Internet
compared to AWS Region to Internet
Client
Edge location Edge location Edge location
Origin
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1.Cache as much as possible
2.Forward as little as possible
3.Validate efficiently
4.Automate the edge
5.Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1.Cache as much as possible
2.Forward as little as possible
3.Validate efficiently
4.Automate the edge
5.Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HTTP cache-control
Origin
Client
Cache-Control: max-age:1800Cache-Control: max-age:1800,s-maxage:900Cache-Control: max-age:1800,privateCache-Control: no-cacheCache-Control: no-store
HTTP/1.1 200 OK
Last-Modified: Fri, 30 Nov 2017 01:00:00 GMT
ETag: "TGVlQXRraW5zb25Xb3onRXJl"
GET /barchart.jpg HTTP/1.1
If-None-Match: "TGVlQXRraW5zb25Xb3onRXJl"
HTTP/1.1 304 Not ModifiedHTTP/1.1 200 OK
Last-Modified: Fri, 30 Nov 2017 02:00:00 GMT
ETag: "TGVlQXRraW5zb24nRXJlVG9v"
Amazon
CloudFront
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cache-Control
s-maxage?
Cache-Control
max-age?
Expires?
> MinTTL?< MaxTTL?
Use DefaultTTL Use MaxTTL Use MinTTL Use Origin-Defined TTL
The origin has defined
the TTL for the object
CloudFront TTL
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Use the client to increase cacheability
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1. Cache as much as possible
2. Forward as little as possible
3. Validate efficiently
4. Automate the edge
5. Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Forwarding
• Include parts of the client’s request in the CloudFront request to the
origin
• Components are: method; path; querystring; headers; cookies
• Values forwarded are included in the cache key
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
GET /search?query=widget&foo=bar HTTP/1.1
Host: www.test
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate
Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Tips when forwarding
• Only forward if it varies the response
• Reduce variability in forwarded values
• Don’t forward for tracking/logging - use CloudFront access logs or
beacon
• Don’t forward for authorization - use signed URLs/cookies, CloudFront
restrictions, AWS WAF
• Use Vary response header
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Forward User-Agent?
GET / HTTP/1.1
origin
client
GET / HTTP/1.1
CloudFront-Is-Mobile-Viewer: true
GET / HTTP/1.1
CloudFront-Is-Tablet-Viewer: true
GET / HTTP/1.1
CloudFront-Is-Desktop-Viewer: true
GET / HTTP/1.1
CloudFront-Is-SmartTV-Viewer: true
GET / HTTP/1.1
User-Agent: …
GET / HTTP/1.1
User-Agent: Firefox/56.0
Amazon
CloudFront
AWS Lambda@Edge
Viewer Request
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Versio
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.10
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.10
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/5
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
'use strict’;
const useragent = require('useragent’);
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
const userAgentHeaders = request.headers['user-agent’];
if (userAgentHeaders && userAgentHeaders.length > 0 ) {
const userAgent = useragent.parse(userAgentHeader[0].value);
userAgentHeader.value =
`{userAgent.family}/{userAgent.major}.{userAgent.minor}.{userAgent.patch}`;
}
callback(null, request);
};
User-Agent normalisation with Lambda@Edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
'use strict';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
const uri = request.uri;
const acceptHeaders = headers['accept'];
if (acceptHeaders && acceptHeaders.some(header => {
return header.value.split(',').some(type => {
return type.match(/image/webp;?/);
})
})) {
request.uri = uri.substring(uri.lastIndexOf('.')) + '.webp';
}
callback(null, request);
}
Path-rewriting for WebP support
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Responsive Web design
/* Use CSS3 media-selectors */
@media only screen and (max-width: 768px) {
…
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1. Cache as much as possible
2. Forward as little as possible
3. Validate efficiently
4. Automate the edge
5. Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HTTP does not provide invalidation
CDN invalidation is not recognized by downstream caches:
• Origin J
• CloudFront J
• ISP/corporate/public caches L
• Browser caches L
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HTTP does provide validation
• Use conditional HTTP requests
• If-Modified/If-Match/If-None-Match
• Origin should efficiently generate 304s
• Use low s-maxage and higher max-age
• Use URL versioning to ‘cache-bust’
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1. Cache as much as possible
2. Forward as little as possible
3. Validate efficiently
4. Automate the edge
5. Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS edge services automation
• AWS edge services have APIs
• AWS SDK available for 11 languages and platforms
• Deploy your application edge using AWS CloudFormation
• Change configuration as your application develops
• Use AWS Identity and Access Management (IAM) to control access to
your resources
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
Route 53
AWS WAF
Amazon
CloudFront
Elastic Load Balancing EC2
EU-WEST-1
Amazon S3
Corporate
data center
Elastic Load Balancing EC2
US-WEST-1
Amazon
Route 53
The edge as code
AWS Lambda
AWS
Certificate Manager
Client
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Edge deployment with AWS CodePipeline
Testing
CloudFormation
Template
AWS
CodeCommit
‘Dev’
CloudFront
distribution
‘Prod’
CloudFront
distribution
AWS
CodePipeline
re:Invent 2016 demo https://www.youtube.com/watch?v=y_E231oJlT8
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF security automations
https://aws.amazon.com/answers/security/aws-waf-security-automations/
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1. Cache as much as possible
2. Forward as little as possible
3. Validate efficiently
4. Automate the edge
5. Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CloudTrail
• Route 53
• CloudFront
• AWS WAF
• AWS Lambda@Edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon CloudWatch metrics and alarms
• Route 53
• CloudFront
• AWS WAF
• AWS Lambda@Edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CloudFront reporting
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Analysing CloudFront access logs
Amazon
CloudFront
S3 bucket S3 bucket
Amazon
QuickSight
#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)
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.
2014-05-23 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304 www.unknownsingers.com Mo
Amazon
Redshift
W3C Log
Processor
AWS Glue
Amazon
Athena
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Patterns for the DevOps edge
1. Cache as much as possible
2. Forward as little as possible
3. Validate efficiently
4. Automate the edge
5. Monitor the edge
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Key takeaways
1. Consider the AWS edge as a part of your application
2. Optimise and use caching efficiently
3. Automate configuration of the AWS edge
4. Monitor the AWS edge using CloudTrail, CloudWatch, and
services logs
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!

More Related Content

What's hot

ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...
ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...
ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...Amazon Web Services
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesAmazon Web Services
 
ARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersAmazon Web Services
 
DEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceDEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceAmazon Web Services
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Amazon Web Services
 
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...Amazon Web Services
 
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...Amazon Web Services
 
Podcasting on AWS – A Discussion on Everything from Production to Distributio...
Podcasting on AWS – A Discussion on Everything from Production to Distributio...Podcasting on AWS – A Discussion on Everything from Production to Distributio...
Podcasting on AWS – A Discussion on Everything from Production to Distributio...Amazon Web Services
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfAmazon Web Services
 
DAT341_Working with Amazon ElastiCache for Redis
DAT341_Working with Amazon ElastiCache for RedisDAT341_Working with Amazon ElastiCache for Redis
DAT341_Working with Amazon ElastiCache for RedisAmazon Web Services
 
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSAmazon Web Services
 
ARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkAmazon Web Services
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudAmazon Web Services
 
MCL308_Using a Digital Assistant in the Enterprise for Business Productivity
MCL308_Using a Digital Assistant in the Enterprise for Business ProductivityMCL308_Using a Digital Assistant in the Enterprise for Business Productivity
MCL308_Using a Digital Assistant in the Enterprise for Business ProductivityAmazon Web Services
 
Storage State of the Union - STG201 - re:Invent 2017
Storage State of the Union - STG201 - re:Invent 2017Storage State of the Union - STG201 - re:Invent 2017
Storage State of the Union - STG201 - re:Invent 2017Amazon Web Services
 
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsGPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsAmazon Web Services
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsAmazon Web Services
 
ENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsAmazon Web Services
 
NET203_Using Amazon VPC Flow Logs to Do Predictive Security Analytics
NET203_Using Amazon VPC Flow Logs to Do Predictive Security AnalyticsNET203_Using Amazon VPC Flow Logs to Do Predictive Security Analytics
NET203_Using Amazon VPC Flow Logs to Do Predictive Security AnalyticsAmazon Web Services
 

What's hot (20)

ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...
ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...
ARC306_High Resiliency & Availability Of Online Entertainment Communities Usi...
 
DEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to MicroservicesDEV329_Cisco’s Journey from Monolith to Microservices
DEV329_Cisco’s Journey from Monolith to Microservices
 
ARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million Users
 
DEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceDEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 Service
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
 
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...
CTD307_Case Study How Mobile Device Service Company Asurion Architected Its A...
 
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
 
Podcasting on AWS – A Discussion on Everything from Production to Distributio...
Podcasting on AWS – A Discussion on Everything from Production to Distributio...Podcasting on AWS – A Discussion on Everything from Production to Distributio...
Podcasting on AWS – A Discussion on Everything from Production to Distributio...
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
 
DAT341_Working with Amazon ElastiCache for Redis
DAT341_Working with Amazon ElastiCache for RedisDAT341_Working with Amazon ElastiCache for Redis
DAT341_Working with Amazon ElastiCache for Redis
 
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
 
ARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike Talk
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into Cloud
 
MCL308_Using a Digital Assistant in the Enterprise for Business Productivity
MCL308_Using a Digital Assistant in the Enterprise for Business ProductivityMCL308_Using a Digital Assistant in the Enterprise for Business Productivity
MCL308_Using a Digital Assistant in the Enterprise for Business Productivity
 
Storage State of the Union - STG201 - re:Invent 2017
Storage State of the Union - STG201 - re:Invent 2017Storage State of the Union - STG201 - re:Invent 2017
Storage State of the Union - STG201 - re:Invent 2017
 
DAT325_Snapchat Stories
DAT325_Snapchat StoriesDAT325_Snapchat Stories
DAT325_Snapchat Stories
 
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production FacepalmsGPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
GPSTEC312-SAP HANA HA on AWS Preventing Production Facepalms
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video Workflows
 
ENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale Migrations
 
NET203_Using Amazon VPC Flow Logs to Do Predictive Security Analytics
NET203_Using Amazon VPC Flow Logs to Do Predictive Security AnalyticsNET203_Using Amazon VPC Flow Logs to Do Predictive Security Analytics
NET203_Using Amazon VPC Flow Logs to Do Predictive Security Analytics
 

Similar to Taking DevOps Closer to the AWS Edge - CTD401 - re:Invent 2017

Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Amazon Web Services
 
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...Amazon Web Services
 
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAmazon Web Services
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Amazon Web Services
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐Amazon Web Services
 
CTD406_Measuring the Internet in Real Time
CTD406_Measuring the Internet in Real TimeCTD406_Measuring the Internet in Real Time
CTD406_Measuring the Internet in Real TimeAmazon Web Services
 
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)Amazon Web Services
 
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)Amazon Web Services
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersAmazon Web Services
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Amazon Web Services
 
How to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active ArchitectureHow to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active ArchitectureAmazon Web Services
 
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...Amazon Web Services
 
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech Talks
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech TalksBuilding an Immersive VR Streaming Solution on AWS - AWS Online Tech Talks
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech TalksAmazon Web Services
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeAmazon Web Services
 
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Roven Drabo
 
Modernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSModernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSAmazon Web Services
 
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Amazon Web Services
 
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveGPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveAmazon Web Services
 

Similar to Taking DevOps Closer to the AWS Edge - CTD401 - re:Invent 2017 (20)

Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
Building Serverless Websites with Lambda@Edge - CTD309 - re:Invent 2017
 
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
SRV331_Build a Multi-Region Serverless Application for Resilience and High Av...
 
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech TalksAWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
AWS X-Ray: Debugging Applications at Scale - AWS Online Tech Talks
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
CTD406_Measuring the Internet in Real Time
CTD406_Measuring the Internet in Real TimeCTD406_Measuring the Internet in Real Time
CTD406_Measuring the Internet in Real Time
 
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
 
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
AWS re:Invent 2016: Taking DevOps to the AWS Edge (CTD302)
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with Containers
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017
 
How to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active ArchitectureHow to Design a Multi-Region Active-Active Architecture
How to Design a Multi-Region Active-Active Architecture
 
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
 
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech Talks
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech TalksBuilding an Immersive VR Streaming Solution on AWS - AWS Online Tech Talks
Building an Immersive VR Streaming Solution on AWS - AWS Online Tech Talks
 
SRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the EdgeSRV312_Taking Serverless to the Edge
SRV312_Taking Serverless to the Edge
 
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
 
Modernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWSModernize and Move your Microsoft Applications on AWS
Modernize and Move your Microsoft Applications on AWS
 
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
Patterns and Considerations in Service Discovery - Con327 - re:Invent 2017
 
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to MoveGPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
GPSTEC314-GPS From Monolithic to Serverless - Why and How to Move
 

More from Amazon Web Services

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...Amazon Web Services
 
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...Amazon Web Services
 
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 FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
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 Amazon Web Services
 
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...Amazon Web Services
 
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...Amazon Web Services
 
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 WorkloadsAmazon Web Services
 
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 sfatareAmazon Web Services
 
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 NodeJSAmazon Web Services
 
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 webAmazon Web Services
 
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 sfatareAmazon 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 AWSAmazon 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 DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon 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
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon 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
 

Taking DevOps Closer to the AWS Edge - CTD401 - re:Invent 2017

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Taking DevOps Closer to the Edge L e e A t k i n s o n , P r i n c i p a l S o l u t i o n s A r c h i t e c t C T D 4 0 1 N o v e m b e r 3 0 , 2 0 1 7
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Agenda 1. What is the AWS edge? 2. The application edge 3. Patterns for the DevOps edge
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What is the AWS edge?
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS regions 44 Availability Zones (AZs) 16 Regions 17 AZs in 6 Regions announced
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS edge network 107 Points of Presence (PoPs) 96 Edge Locations 11 Regional Edge Caches (RECs)
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS edge services • Amazon CloudFront • Content delivery network (CDN) • Amazon Route 53 • DNS registration and hosting, health checks • AWS WAF • Web application firewall (WAF) • AWS Shield • DDOS protection • AWS Lambda@Edge • Serverless compute in the edge network
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The application edge
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Your application = EC2/ELB/S3 Route 53/CloudFront/ AWS WAF & AWS Shield HTML5/Mobile/Desktop Origin+ Edge+ Client … and Lambda@Edge!
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ClientClient Amazon Backbone Edge location Edge location Edge location CloudFront helps improve user experience Origin
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CloudFront helps reduce costs Free data transfer cost AWS origin to CloudFront Less load on origin Lower data transfer cost CloudFront to Internet compared to AWS Region to Internet Client Edge location Edge location Edge location Origin
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1.Cache as much as possible 2.Forward as little as possible 3.Validate efficiently 4.Automate the edge 5.Monitor the edge
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1.Cache as much as possible 2.Forward as little as possible 3.Validate efficiently 4.Automate the edge 5.Monitor the edge
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HTTP cache-control Origin Client Cache-Control: max-age:1800Cache-Control: max-age:1800,s-maxage:900Cache-Control: max-age:1800,privateCache-Control: no-cacheCache-Control: no-store HTTP/1.1 200 OK Last-Modified: Fri, 30 Nov 2017 01:00:00 GMT ETag: "TGVlQXRraW5zb25Xb3onRXJl" GET /barchart.jpg HTTP/1.1 If-None-Match: "TGVlQXRraW5zb25Xb3onRXJl" HTTP/1.1 304 Not ModifiedHTTP/1.1 200 OK Last-Modified: Fri, 30 Nov 2017 02:00:00 GMT ETag: "TGVlQXRraW5zb24nRXJlVG9v" Amazon CloudFront
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cache-Control s-maxage? Cache-Control max-age? Expires? > MinTTL?< MaxTTL? Use DefaultTTL Use MaxTTL Use MinTTL Use Origin-Defined TTL The origin has defined the TTL for the object CloudFront TTL
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Use the client to increase cacheability
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1. Cache as much as possible 2. Forward as little as possible 3. Validate efficiently 4. Automate the edge 5. Monitor the edge
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Forwarding • Include parts of the client’s request in the CloudFront request to the origin • Components are: method; path; querystring; headers; cookies • Values forwarded are included in the cache key GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp GET /search?query=widget&foo=bar HTTP/1.1 Host: www.test User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.7,en-US;q=0.3 Accept-Encoding: gzip, deflate Cookie: session=cjZYuh3fVXzf6rXGAwV2; theme=modern; currency=gbp
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Tips when forwarding • Only forward if it varies the response • Reduce variability in forwarded values • Don’t forward for tracking/logging - use CloudFront access logs or beacon • Don’t forward for authorization - use signed URLs/cookies, CloudFront restrictions, AWS WAF • Use Vary response header
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Forward User-Agent? GET / HTTP/1.1 origin client GET / HTTP/1.1 CloudFront-Is-Mobile-Viewer: true GET / HTTP/1.1 CloudFront-Is-Tablet-Viewer: true GET / HTTP/1.1 CloudFront-Is-Desktop-Viewer: true GET / HTTP/1.1 CloudFront-Is-SmartTV-Viewer: true GET / HTTP/1.1 User-Agent: … GET / HTTP/1.1 User-Agent: Firefox/56.0 Amazon CloudFront AWS Lambda@Edge Viewer Request User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:49.0) Gecko/20100101 Firefox/49.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Versio User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.10 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.10 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/5 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 'use strict’; const useragent = require('useragent’); exports.handler = (event, context, callback) => { const request = event.Records[0].cf.request; const userAgentHeaders = request.headers['user-agent’]; if (userAgentHeaders && userAgentHeaders.length > 0 ) { const userAgent = useragent.parse(userAgentHeader[0].value); userAgentHeader.value = `{userAgent.family}/{userAgent.major}.{userAgent.minor}.{userAgent.patch}`; } callback(null, request); }; User-Agent normalisation with Lambda@Edge
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 'use strict'; exports.handler = (event, context, callback) => { const request = event.Records[0].cf.request; const uri = request.uri; const acceptHeaders = headers['accept']; if (acceptHeaders && acceptHeaders.some(header => { return header.value.split(',').some(type => { return type.match(/image/webp;?/); }) })) { request.uri = uri.substring(uri.lastIndexOf('.')) + '.webp'; } callback(null, request); } Path-rewriting for WebP support
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Responsive Web design /* Use CSS3 media-selectors */ @media only screen and (max-width: 768px) { … }
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1. Cache as much as possible 2. Forward as little as possible 3. Validate efficiently 4. Automate the edge 5. Monitor the edge
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HTTP does not provide invalidation CDN invalidation is not recognized by downstream caches: • Origin J • CloudFront J • ISP/corporate/public caches L • Browser caches L
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HTTP does provide validation • Use conditional HTTP requests • If-Modified/If-Match/If-None-Match • Origin should efficiently generate 304s • Use low s-maxage and higher max-age • Use URL versioning to ‘cache-bust’
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1. Cache as much as possible 2. Forward as little as possible 3. Validate efficiently 4. Automate the edge 5. Monitor the edge
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS edge services automation • AWS edge services have APIs • AWS SDK available for 11 languages and platforms • Deploy your application edge using AWS CloudFormation • Change configuration as your application develops • Use AWS Identity and Access Management (IAM) to control access to your resources
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Route 53 AWS WAF Amazon CloudFront Elastic Load Balancing EC2 EU-WEST-1 Amazon S3 Corporate data center Elastic Load Balancing EC2 US-WEST-1 Amazon Route 53 The edge as code AWS Lambda AWS Certificate Manager Client
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Edge deployment with AWS CodePipeline Testing CloudFormation Template AWS CodeCommit ‘Dev’ CloudFront distribution ‘Prod’ CloudFront distribution AWS CodePipeline re:Invent 2016 demo https://www.youtube.com/watch?v=y_E231oJlT8
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS WAF security automations https://aws.amazon.com/answers/security/aws-waf-security-automations/
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1. Cache as much as possible 2. Forward as little as possible 3. Validate efficiently 4. Automate the edge 5. Monitor the edge
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CloudTrail • Route 53 • CloudFront • AWS WAF • AWS Lambda@Edge
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon CloudWatch metrics and alarms • Route 53 • CloudFront • AWS WAF • AWS Lambda@Edge
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CloudFront reporting
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Analysing CloudFront access logs Amazon CloudFront S3 bucket S3 bucket Amazon QuickSight #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) 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. 2014-05-23 01:13:12 LAX1 2390282 192.0.2.202 GET d111111abcdef8.cloudfront.net /soundtrack/happy.mp3 304 www.unknownsingers.com Mo Amazon Redshift W3C Log Processor AWS Glue Amazon Athena
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Patterns for the DevOps edge 1. Cache as much as possible 2. Forward as little as possible 3. Validate efficiently 4. Automate the edge 5. Monitor the edge
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Key takeaways 1. Consider the AWS edge as a part of your application 2. Optimise and use caching efficiently 3. Automate configuration of the AWS edge 4. Monitor the AWS edge using CloudTrail, CloudWatch, and services logs
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you!