SlideShare a Scribd company logo
1 of 47
Download to read offline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:INVENT
Building Resilient, Multi-Region
Serverless Applications
M a g n u s B j o r k m a n , A W S S o l u t i o n A r c h i t e c t
S t e f a n o B u l i a n i , A W S S p e c i a l i s t S o l u t i o n A r c h i t e c t
S R V 3 1 3
N o v e m b e r 2 8 , 2 0 1 7
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What to expect from the session
• “Food-for-Thought” – a real world serverless application
• Why go multi-region?
• Decision tree – do even need to go multi-region?
• One service at a time – routing and data replication concepts:
• Browsing catalog
• Updating catalog
• Receiving orders
• Developer tools and deployments
• Summary
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example application
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“Food-for-Thought”
• Order food from any restaurant near you and get it delivered at your home
• Store and browse restaurant menu items
• Accept orders and process payments
• Company doing business through-out North America and Europe
• Customers should see low latency and high performance on either
continent.
• Very high peak to average ratio of traffic around meal times
• A highly fault-tolerant system is critical as reputation loss and revenue
loss would be significant for an outage during those hours
Photo by Brigitte Tohm on Unsplash
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Benefits of AWS Lambda and serverless
No servers to provision
or manage
Scales with usage
Never pay for idle Availability and fault
tolerance built in
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
W h y i s “ F o o d - f o r - T h o u g h t ” g o i n g m u l t i - r e g i o n ?
Data sovereignty
Increased fault
tolerance
Improved latency and
Performance
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What “Food-for-Thought” should
consider when going multi-region
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“Food-for-Thought” – three key services
Browse Catalog
• View
Restaurants
• View Menus
Submit Order
• Order Processing
• Payment
Processing
• Order
Confirmation
Update Catalog
• Add, Update and
Remove
Restaurants
• Add, Update and
Remove Menus
Customer
Administrator
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Does it need to be multi-region?
Core to
business
• Can we do business without
this service? How much
redundancy do we need?
• How does this service
access persistent storage?
Multi-Region
DNS routing
Single Region
Scheduled
Replication
Master/
Master
Near Real-Time
Eventual Consistency
from Master Copy
Master/
Replica
Read-Only Read-Write
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How much will this cost?
• Lambda and Amazon API Gateway only charge you for your code
actually runs – traffic is the same, price is the same, doesn’t matter
how many AWS Regions
• Database and file storage will incur additional charges; for fully
redundant services, double your costs
• Data transfer out to internet costs can vary depending on the AWS
Region
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Monitoring and logging
• Monitoring
• Fine-grained monitoring within the AWS Region
• Enough monitoring from outside AWS Region to detect
issue in an AWS Region, especially with monitoring system
• Logging
• Consider replicating logs if they are critical to operations
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Data sovereignty
• For data under purview of data sovereignty laws:
• Implement requirements into application code and do not
solely rely on routing features like geographic routing in
Amazon Route 53
• Consider using home AWS Regions for users and make sure
that the code/data is always executed/stored in that
particular AWS Region for that particular user.
• Use separate Amazon Cognito user pools in each region
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Browsing and updating catalog
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Browsing and updating catalog
• Availability:
• It is critical to be able to browse the
catalog so customers can create orders.
• It is less critical to be able to update the
catalog.
• Consistency:
• It is required to have at least eventual read
consistency.
• External Dependencies:
• None
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Browsing the catalog
Core to
business
• Is this service truly core to
our business?
• YES – we need the
catalog in order to
accept orders
• How does this service
access persistent storage?
• Data replicated to all
AWS Regions from
master copy
Multi-Region
DNS routing
Single Region
Scheduled
Replication
Master/
Master
Near Real-Time
Eventual Consistency
from Master Copy
Master/
Replica
Read-Only Read-Write
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Updating the catalog
Core to
business
• Is this service truly core to
our business?
• NO – even if the master
AWS Region is down
we can still accept
orders.
• The architectural
complexity of
master/master
replication is not worth
the return.
Multi-Region
DNS routing
Single Region
Scheduled
Replication
Master/
Master
Near Real-Time
Eventual Consistency
from Master Copy
Master/
Replica
Read-Only Read-Write
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Browsing catalog - architecture
us-west-2
us-east-1
Amazon
Route 53
mobile client
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Browsing catalog – architecture highlights
• Active-Active multi-regional API
• Deploy same stack to multiple AWS Regions
• Read-Only; access Amazon DynamoDB tables in local AWS Region
• Optional: For public and content more static in nature, put
Amazon CloudFront in front of API.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API Gateway: Regional endpoints
• Endpoint configuration types
• Edge optimized
• Regional
• Endpoint configuration types are applicable for both custom
domain names as well as APIs
• Regional endpoints: custom domains are unique per AWS Region
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Multi-region API Gateway setup
• Endpoints in AWS
Regions
• Amazon Route 53
Routing (e.g. Latency,
Geolocation)
• Multi-region
backends
• Active-Active
us-west-2
us-east-1
mobile client
Amazon
Route 53 API
Endpoint
API
Endpoint
Custom
Domain
Name
Endpoint
Custom
Domain
Name
Endpoint
Amazon
API Gateway
AWS
Lambda
Amazon
API Gateway
AWS
Lambda
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Failover across AWS Regions with API Gateway
• Amazon Route 53
health checks
• Provide a path that
does a deep ping
us-west-2
us-east-1
mobile client
Amazon
Route 53 API
Endpoint
API
Endpoint
Custom
Domain
Name
Endpoint
Custom
Domain
Name
Endpoint
Amazon
API Gateway
AWS
Lambda
Amazon
API Gateway
AWS
Lambda
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Updating catalog - architecture
us-west-2
us-east-1
mobile client
Amazon
Route 53
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Updating catalog – architecture highlights
• Single-region API. Updates are lower criticality than reads.
Graceful degradation.
• Data availability is critical for “Browse Catalog” use case. Replicate
to other AWS Regions using Amazon DynamoDB Streams.
• Simplify
• No data conflicts
• No split brain
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Master/replica replication with Lambda
for record in event['Records']:
print(record['eventID'])
print(record['eventName'])
print("DynamoDB Record: ”
+ json.dumps(record['dynamodb'], indent=2))
if (record['eventName'] == 'INSERT') or
(record['eventName'] == 'MODIFY'):
client.put_item(TableName=resource_properties['TargetDDB'],
Item=record['dynamodb']['NewImage'])
elif record['eventName'] == 'REMOVE':
client.delete_item(TableName=resource_properties['TargetDDB'],
Key=record['dynamodb']['Keys'])
us-west-2
us-east-1
AWS
Lambda
Amazon
DynamoDB
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Submit order
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Submit order
• Availability:
• It is critical to be able to write new orders.
• It is critical to be able to read and update existing
orders.
• Consistency:
• It is required to have at least eventual read consistency
for status of existing orders.
• It is required to have strong consistency for read-
before-write.
• External Dependencies:
• Payment System
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Decision tree
Core to
business
• Is this service truly core to
our business?
• YES – it’s our primary
revenue source
• How does this service
access persistent storage?
• Each order has a
master AWS Region.
Orders are replicated
but can only be
modified in their master
AWS Region.
Multi-Region
DNS routing
Single Region
Scheduled
Replication
Master/
Master
Near Real-Time
Eventual Consistency
from Master Copy
Master/
Replica
Read-Only Read-Write
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Submit order – almost Master / Master
• True master/master replication is very hard:
• Multi-region ACID transactions are impractical
• Orders have a master AWS Region
• Writes always go to the master AWS Region
• Reads for processing can happen in any AWS Region
• Client logic to ensure updates always go to the master AWS Region
• Other AWS Regions should refuse to modify the order if they receive
a request
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why home AWS R e g ion if mu lti -maste r is p ossib le
• Multi-master is very complex – chances of bugs are higher
• Eventual consistency in reads can create a frustrating customer
experience – I don’t know what the true state of my order is
• Erodes customer trust quickly
• Losing an entire AWS Region is highly unlikely, much less likely
than order state being inconsistent across the two AWS Regions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application state – client side
us-west-2
us-east-1
Amazon
Route 53
1.
Client uses the DNS-
balanced endpoint to
create an order
2.
AWS Region creates the
order and sets itself as the
master
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Home AWS Region replication
• Each order/record has a home AWS
Region. Only write to home AWS Region.
• Read from home AWS Region unless not
available.
• Mark initial record for replication to avoid
circular updates.
us-west-2
us-east-1
orderId homeRegion userId
1234 us-east-1 9012
5678 us-west-2 3456
Update
Lambda
Replication
Lambda
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application state – client side
us-west-2
us-east-1
Amazon
Route 53
3.
Client addresses
home AWS Region
Directly to update
order
4.
Once written, any
AWS Region can
process the order
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Submit order - architecture
us-west-2
us-east-1
mobile client
Amazon
Route 53
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Maste r/Maste r re p lication: othe r op tions
• Pessimistic locking when writing to all stores.
• Strong consistency
• Lock contention and potential lower through-put
• Lower availability
• Quorum based algorithms
• Eventual consistency but with reduced risk of write conflicts
• At least 3 replicas
• Lower availability with certain network partitions
• Conflict-free replicated data type (CRDT)
• Works well for certain data structure but not others
• Need to define merge logic for each CRDT
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Submit order – architecture highlights
• Active-Active multi-regional API
• Health checks need to include external dependencies
• Are your dependencies also multi-region?
• Deploy same stack to multiple AWS Regions
• Data replication using Amazon DynamoDB Streams:
• Eventual consistency; no two-phase commits.
• Primary key will include home AWS Region.
• Leverage semantics of application to simplify replication
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Monitoring and logging
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Monitoring – Amazon Cloudwatch
us-west-2
us-east-1
Amazon
Route 53
Amazon
API Gateway
AWS
Lambda
Amazon
DynamoDB
Amazon
CloudWatch
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Monitoring – CloudWatch highlights
• Granular metrics from within the AWS Region from services
• CloudWatch events with scheduled Lambda to push custom
metrics, potentially collecting metrics across AWS Regions
• Amazon Route 53 provides metrics on global health checks
• Dashboard provides single pane of glass across AWS Regions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Centralize logs
us-west-2
us-east-1
AWS
Lambda
Amazon
CloudWatch
Amazon
Kinesis Firehose
Amazon
S3
Amazon
Athena
Amazon
Elasticsearch Service
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Deployment
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Serverless Application Model (SAM)
AWS CloudFormation extension optimized
for serverless
New serverless resource types: functions,
APIs, and tables
Supports anything AWS CloudFormation
supports
Open specification (Apache 2.0)
https://github.com/awslabs/serverless-application-model
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Leverage AWS developer tools
us-west-2
us-east-1
AWS CodePipeline
AWS
CodeCommit
SAM
AWS CodeBuild CloudFormation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Resources:
Region1EndpointRecord:
Type: AWS::Route53::RecordSet
Properties:
Region: "us-east-1"
HealthCheckId: !Ref HealthcheckRegion1
SetIdentifier: "endpoint-region1"
HostedZoneName: !Ref HostedZoneName
Name: !Ref MultiregionEndpoint
Type: CNAME
ResourceRecords:
- !Sub ""https://${Region1Endpoint}/prod/"”
Resources:
Region2EndpointRecord:
Type: AWS::Route53::RecordSet
Properties:
Region: "us-west-2"
HealthCheckId: !Ref HealthcheckRegion2
SetIdentifier: "endpoint-region2"
HostedZoneName: !Ref HostedZoneName
Name: !Ref MultiregionEndpoint
Type: CNAME
ResourceRecords:
- !Sub ""https://${Region2Endpoint}/prod/""
Region 2
Endpoint
Enabling regional endpoints
Resources:
BrowseCatalogApi:
Type: AWS::Serverless::Api
Properties:
DefinitionUri: browse-catalog-swagger.yaml
StageName: prod
EndpointConfiguration:
Types:
- REGIONAL
Variables:
GetRListLambda: !Ref GetRList
GetRestaurantLambda: !Ref GetRestaurant
GetMenuLambda: !Ref GetMenu
BrowseCatalogDomainName:
Type: 'AWS::ApiGateway::DomainName'
Properties:
CertificateArn: !Ref myCertificate
DomainName: !Ref domainName
EndpointConfiguration:
Types:
- REGIONAL
Region 1
Endpoint
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
• Multi-region architectures add significant complexity to your
stack – think carefully about your services and whether they need
to be multi region at all
• Master/master replication with eventual consistency may create a
worse customer experience than losing the entire order – full
regional outages are highly unlikely, keep it simple!
• Route 53 can perform failover checks and most operation can be
automated – this does not exonerate operators and developers
from the job of monitoring their service. Create relevant metrics
and set alarm on them.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Next steps
• Learn more from our “Building a Multi-region Serverless
Application with Amazon API Gateway and AWS Lambda” blog
post: https://aws.amazon.com/blogs/compute/building-a-
multi-region-serverless-application-with-amazon-api-gateway-
and-aws-lambda/
• API Gateway regional endpoints give you control over your DNS
records:
https://docs.aws.amazon.com/apigateway/latest/developergui
de/create-regional-api.html
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!
M a g n u s B j o r k m a n , A W S S o l u t i o n A r c h i t e c t
S t e f a n o B u l i a n i , A W S S p e c i a l i s t S o l u t i o n A r c h i t e c t
S e r v e r l e s s T r a c k

More Related Content

What's hot

FSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningFSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningAmazon Web Services
 
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...Amazon Web Services
 
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoTIOT308-One Message to a Million Things Done in 60 seconds with AWS IoT
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoTAmazon Web Services
 
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...Amazon Web Services
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfWIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfAmazon Web Services
 
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex Pollexy
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex PollexyMCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex Pollexy
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex PollexyAmazon Web Services
 
WPS205_Is AWS GovCloud Right for your Regulated Workload
WPS205_Is AWS GovCloud Right for your Regulated WorkloadWPS205_Is AWS GovCloud Right for your Regulated Workload
WPS205_Is AWS GovCloud Right for your Regulated WorkloadAmazon Web Services
 
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfWPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfAmazon Web Services
 
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...Amazon Web Services
 
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedDVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedAmazon Web Services
 
GPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloudGPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloudAmazon Web Services
 
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...Amazon Web Services
 
ATC301-Big Data & Analytics for Manufacturing Operations
ATC301-Big Data & Analytics for Manufacturing OperationsATC301-Big Data & Analytics for Manufacturing Operations
ATC301-Big Data & Analytics for Manufacturing OperationsAmazon Web Services
 
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...Amazon Web Services
 
CON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesCON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesAmazon 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
 
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...Amazon Web Services
 
GPSTEC306-Continuous Compliance for Healthcare and Life Sciences
GPSTEC306-Continuous Compliance for Healthcare and Life SciencesGPSTEC306-Continuous Compliance for Healthcare and Life Sciences
GPSTEC306-Continuous Compliance for Healthcare and Life SciencesAmazon Web Services
 

What's hot (20)

FSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningFSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine Learning
 
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...
NEW LAUNCH! Hear how the Pac-12 is using AWS Elemental MediaStore and explore...
 
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoTIOT308-One Message to a Million Things Done in 60 seconds with AWS IoT
IOT308-One Message to a Million Things Done in 60 seconds with AWS IoT
 
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...
TLC304-At the Cutting Edge AWS IOT and Greengrass for Multi-Access Edge Compu...
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdfWIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
WIN302-Deep Dive on Active Directory From One to Many AWS Regions.pdf
 
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex Pollexy
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex PollexyMCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex Pollexy
MCL331_Building a Virtual Assistant with Amazon Polly and Amazon Lex Pollexy
 
WPS205_Is AWS GovCloud Right for your Regulated Workload
WPS205_Is AWS GovCloud Right for your Regulated WorkloadWPS205_Is AWS GovCloud Right for your Regulated Workload
WPS205_Is AWS GovCloud Right for your Regulated Workload
 
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfWPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
 
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
Bringing the Superpower of Bots to Your Company with a Serverless Bot Solutio...
 
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You ProtectedDVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
DVC304_Compliance and Top Security Threats in the Cloud—Are You Protected
 
GPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloudGPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloud
 
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...
NEW LAUNCH! How to build graph applications with SPARQL and Gremlin using Ama...
 
ATC301-Big Data & Analytics for Manufacturing Operations
ATC301-Big Data & Analytics for Manufacturing OperationsATC301-Big Data & Analytics for Manufacturing Operations
ATC301-Big Data & Analytics for Manufacturing Operations
 
GPSBUS209-AWS Partner Solutions
GPSBUS209-AWS Partner SolutionsGPSBUS209-AWS Partner Solutions
GPSBUS209-AWS Partner Solutions
 
MCL335_Rhythm
MCL335_RhythmMCL335_Rhythm
MCL335_Rhythm
 
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
GPSMKT201-Expanding Channel Opportunities Using AWS Marketplace as a Fulfillm...
 
CON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesCON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized 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 2017
 
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...
Implement User Onboarding, Sign-Up, and Sign-In for Mobile and Web Applicatio...
 
GPSTEC306-Continuous Compliance for Healthcare and Life Sciences
GPSTEC306-Continuous Compliance for Healthcare and Life SciencesGPSTEC306-Continuous Compliance for Healthcare and Life Sciences
GPSTEC306-Continuous Compliance for Healthcare and Life Sciences
 

Similar to SRV313_Building Resilient, Multi-Region Serverless Applications

Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...
Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...
Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...Amazon Web Services
 
Introduction to Serverless Computing and AWS Lambda - AWS IL Meetup
Introduction to Serverless Computing and AWS Lambda - AWS IL MeetupIntroduction to Serverless Computing and AWS Lambda - AWS IL Meetup
Introduction to Serverless Computing and AWS Lambda - AWS IL MeetupBoaz Ziniman
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - 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
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaAmazon Web Services
 
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...Amazon Web Services
 
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...Amazon Web Services
 
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWSGPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWSAmazon Web Services
 
Serverless Architecture and Best Practices
Serverless Architecture and Best PracticesServerless Architecture and Best Practices
Serverless Architecture and Best PracticesAmazon 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
 
SRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessSRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessAmazon Web Services
 
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017Amazon Web Services
 
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWS
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWSServerless Architectural Patterns 
and Best Practices - Madhu Shekar - AWS
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWSCodeOps Technologies LLP
 
Scaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersScaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersAmazon Web Services
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS RegionsWIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS RegionsAmazon 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
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...Amazon Web Services
 
Design, Build, and Modernize Your Web Applications with AWS
 Design, Build, and Modernize Your Web Applications with AWS Design, Build, and Modernize Your Web Applications with AWS
Design, Build, and Modernize Your Web Applications with AWSDonnie Prakoso
 
Getting started with Serverless on AWS
Getting started with Serverless on AWSGetting started with Serverless on AWS
Getting started with Serverless on AWSAdrian Hornsby
 

Similar to SRV313_Building Resilient, Multi-Region Serverless Applications (20)

Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...
Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...
Serverless Applications at Global Scale with Multi-Regional Deployments - AWS...
 
Introduction to Serverless Computing and AWS Lambda - AWS IL Meetup
Introduction to Serverless Computing and AWS Lambda - AWS IL MeetupIntroduction to Serverless Computing and AWS Lambda - AWS IL Meetup
Introduction to Serverless Computing and AWS Lambda - AWS IL Meetup
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - 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
 
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta penggunaScale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
Scale Website dan Mobile Applications Anda di AWS hingga 10 juta pengguna
 
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
WIN301-Migrating Microsoft SQL Server Databases to AWS-Best Practices and Pat...
 
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...
Migrating Microsoft SQL Server Databases to AWS – Best Practices and Patterns...
 
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWSGPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
 
Serverless Architecture and Best Practices
Serverless Architecture and Best PracticesServerless Architecture and Best Practices
Serverless Architecture and Best Practices
 
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...
 
SRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessSRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with Serverless
 
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017
Migrating Your Microsoft Applications to AWS - ENT325 - re:Invent 2017
 
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWS
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWSServerless Architectural Patterns 
and Best Practices - Madhu Shekar - AWS
Serverless Architectural Patterns 
and Best Practices - Madhu Shekar - AWS
 
Scaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersScaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million Users
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS RegionsWIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS Regions
 
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-...
 
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
Design, Deploy, and Optimize Microsoft SQL Server on AWS - WIN306 - re:Invent...
 
Design, Build, and Modernize Your Web Applications with AWS
 Design, Build, and Modernize Your Web Applications with AWS Design, Build, and Modernize Your Web Applications with AWS
Design, Build, and Modernize Your Web Applications with AWS
 
Getting started with Serverless on AWS
Getting started with Serverless on AWSGetting started with Serverless on AWS
Getting started with Serverless on AWS
 

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
 

SRV313_Building Resilient, Multi-Region Serverless Applications

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:INVENT Building Resilient, Multi-Region Serverless Applications M a g n u s B j o r k m a n , A W S S o l u t i o n A r c h i t e c t S t e f a n o B u l i a n i , A W S S p e c i a l i s t S o l u t i o n A r c h i t e c t S R V 3 1 3 N o v e m b e r 2 8 , 2 0 1 7
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What to expect from the session • “Food-for-Thought” – a real world serverless application • Why go multi-region? • Decision tree – do even need to go multi-region? • One service at a time – routing and data replication concepts: • Browsing catalog • Updating catalog • Receiving orders • Developer tools and deployments • Summary
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Example application
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “Food-for-Thought” • Order food from any restaurant near you and get it delivered at your home • Store and browse restaurant menu items • Accept orders and process payments • Company doing business through-out North America and Europe • Customers should see low latency and high performance on either continent. • Very high peak to average ratio of traffic around meal times • A highly fault-tolerant system is critical as reputation loss and revenue loss would be significant for an outage during those hours Photo by Brigitte Tohm on Unsplash
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Benefits of AWS Lambda and serverless No servers to provision or manage Scales with usage Never pay for idle Availability and fault tolerance built in
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. W h y i s “ F o o d - f o r - T h o u g h t ” g o i n g m u l t i - r e g i o n ? Data sovereignty Increased fault tolerance Improved latency and Performance
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What “Food-for-Thought” should consider when going multi-region
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “Food-for-Thought” – three key services Browse Catalog • View Restaurants • View Menus Submit Order • Order Processing • Payment Processing • Order Confirmation Update Catalog • Add, Update and Remove Restaurants • Add, Update and Remove Menus Customer Administrator
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Does it need to be multi-region? Core to business • Can we do business without this service? How much redundancy do we need? • How does this service access persistent storage? Multi-Region DNS routing Single Region Scheduled Replication Master/ Master Near Real-Time Eventual Consistency from Master Copy Master/ Replica Read-Only Read-Write
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. How much will this cost? • Lambda and Amazon API Gateway only charge you for your code actually runs – traffic is the same, price is the same, doesn’t matter how many AWS Regions • Database and file storage will incur additional charges; for fully redundant services, double your costs • Data transfer out to internet costs can vary depending on the AWS Region
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Monitoring and logging • Monitoring • Fine-grained monitoring within the AWS Region • Enough monitoring from outside AWS Region to detect issue in an AWS Region, especially with monitoring system • Logging • Consider replicating logs if they are critical to operations
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Data sovereignty • For data under purview of data sovereignty laws: • Implement requirements into application code and do not solely rely on routing features like geographic routing in Amazon Route 53 • Consider using home AWS Regions for users and make sure that the code/data is always executed/stored in that particular AWS Region for that particular user. • Use separate Amazon Cognito user pools in each region
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Browsing and updating catalog
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Browsing and updating catalog • Availability: • It is critical to be able to browse the catalog so customers can create orders. • It is less critical to be able to update the catalog. • Consistency: • It is required to have at least eventual read consistency. • External Dependencies: • None
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Browsing the catalog Core to business • Is this service truly core to our business? • YES – we need the catalog in order to accept orders • How does this service access persistent storage? • Data replicated to all AWS Regions from master copy Multi-Region DNS routing Single Region Scheduled Replication Master/ Master Near Real-Time Eventual Consistency from Master Copy Master/ Replica Read-Only Read-Write
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Updating the catalog Core to business • Is this service truly core to our business? • NO – even if the master AWS Region is down we can still accept orders. • The architectural complexity of master/master replication is not worth the return. Multi-Region DNS routing Single Region Scheduled Replication Master/ Master Near Real-Time Eventual Consistency from Master Copy Master/ Replica Read-Only Read-Write
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Browsing catalog - architecture us-west-2 us-east-1 Amazon Route 53 mobile client Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Browsing catalog – architecture highlights • Active-Active multi-regional API • Deploy same stack to multiple AWS Regions • Read-Only; access Amazon DynamoDB tables in local AWS Region • Optional: For public and content more static in nature, put Amazon CloudFront in front of API.
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API Gateway: Regional endpoints • Endpoint configuration types • Edge optimized • Regional • Endpoint configuration types are applicable for both custom domain names as well as APIs • Regional endpoints: custom domains are unique per AWS Region
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Multi-region API Gateway setup • Endpoints in AWS Regions • Amazon Route 53 Routing (e.g. Latency, Geolocation) • Multi-region backends • Active-Active us-west-2 us-east-1 mobile client Amazon Route 53 API Endpoint API Endpoint Custom Domain Name Endpoint Custom Domain Name Endpoint Amazon API Gateway AWS Lambda Amazon API Gateway AWS Lambda
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Failover across AWS Regions with API Gateway • Amazon Route 53 health checks • Provide a path that does a deep ping us-west-2 us-east-1 mobile client Amazon Route 53 API Endpoint API Endpoint Custom Domain Name Endpoint Custom Domain Name Endpoint Amazon API Gateway AWS Lambda Amazon API Gateway AWS Lambda
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Updating catalog - architecture us-west-2 us-east-1 mobile client Amazon Route 53 Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Updating catalog – architecture highlights • Single-region API. Updates are lower criticality than reads. Graceful degradation. • Data availability is critical for “Browse Catalog” use case. Replicate to other AWS Regions using Amazon DynamoDB Streams. • Simplify • No data conflicts • No split brain
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Master/replica replication with Lambda for record in event['Records']: print(record['eventID']) print(record['eventName']) print("DynamoDB Record: ” + json.dumps(record['dynamodb'], indent=2)) if (record['eventName'] == 'INSERT') or (record['eventName'] == 'MODIFY'): client.put_item(TableName=resource_properties['TargetDDB'], Item=record['dynamodb']['NewImage']) elif record['eventName'] == 'REMOVE': client.delete_item(TableName=resource_properties['TargetDDB'], Key=record['dynamodb']['Keys']) us-west-2 us-east-1 AWS Lambda Amazon DynamoDB AWS Lambda Amazon DynamoDB
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Submit order
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Submit order • Availability: • It is critical to be able to write new orders. • It is critical to be able to read and update existing orders. • Consistency: • It is required to have at least eventual read consistency for status of existing orders. • It is required to have strong consistency for read- before-write. • External Dependencies: • Payment System
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Decision tree Core to business • Is this service truly core to our business? • YES – it’s our primary revenue source • How does this service access persistent storage? • Each order has a master AWS Region. Orders are replicated but can only be modified in their master AWS Region. Multi-Region DNS routing Single Region Scheduled Replication Master/ Master Near Real-Time Eventual Consistency from Master Copy Master/ Replica Read-Only Read-Write
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Submit order – almost Master / Master • True master/master replication is very hard: • Multi-region ACID transactions are impractical • Orders have a master AWS Region • Writes always go to the master AWS Region • Reads for processing can happen in any AWS Region • Client logic to ensure updates always go to the master AWS Region • Other AWS Regions should refuse to modify the order if they receive a request
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Why home AWS R e g ion if mu lti -maste r is p ossib le • Multi-master is very complex – chances of bugs are higher • Eventual consistency in reads can create a frustrating customer experience – I don’t know what the true state of my order is • Erodes customer trust quickly • Losing an entire AWS Region is highly unlikely, much less likely than order state being inconsistent across the two AWS Regions
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application state – client side us-west-2 us-east-1 Amazon Route 53 1. Client uses the DNS- balanced endpoint to create an order 2. AWS Region creates the order and sets itself as the master Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Home AWS Region replication • Each order/record has a home AWS Region. Only write to home AWS Region. • Read from home AWS Region unless not available. • Mark initial record for replication to avoid circular updates. us-west-2 us-east-1 orderId homeRegion userId 1234 us-east-1 9012 5678 us-west-2 3456 Update Lambda Replication Lambda
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application state – client side us-west-2 us-east-1 Amazon Route 53 3. Client addresses home AWS Region Directly to update order 4. Once written, any AWS Region can process the order Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Submit order - architecture us-west-2 us-east-1 mobile client Amazon Route 53 Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon API Gateway AWS Lambda Amazon DynamoDB
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Maste r/Maste r re p lication: othe r op tions • Pessimistic locking when writing to all stores. • Strong consistency • Lock contention and potential lower through-put • Lower availability • Quorum based algorithms • Eventual consistency but with reduced risk of write conflicts • At least 3 replicas • Lower availability with certain network partitions • Conflict-free replicated data type (CRDT) • Works well for certain data structure but not others • Need to define merge logic for each CRDT
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Submit order – architecture highlights • Active-Active multi-regional API • Health checks need to include external dependencies • Are your dependencies also multi-region? • Deploy same stack to multiple AWS Regions • Data replication using Amazon DynamoDB Streams: • Eventual consistency; no two-phase commits. • Primary key will include home AWS Region. • Leverage semantics of application to simplify replication
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Monitoring and logging
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Monitoring – Amazon Cloudwatch us-west-2 us-east-1 Amazon Route 53 Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon CloudWatch
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Monitoring – CloudWatch highlights • Granular metrics from within the AWS Region from services • CloudWatch events with scheduled Lambda to push custom metrics, potentially collecting metrics across AWS Regions • Amazon Route 53 provides metrics on global health checks • Dashboard provides single pane of glass across AWS Regions
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Centralize logs us-west-2 us-east-1 AWS Lambda Amazon CloudWatch Amazon Kinesis Firehose Amazon S3 Amazon Athena Amazon Elasticsearch Service
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Deployment
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Serverless Application Model (SAM) AWS CloudFormation extension optimized for serverless New serverless resource types: functions, APIs, and tables Supports anything AWS CloudFormation supports Open specification (Apache 2.0) https://github.com/awslabs/serverless-application-model
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Leverage AWS developer tools us-west-2 us-east-1 AWS CodePipeline AWS CodeCommit SAM AWS CodeBuild CloudFormation
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Resources: Region1EndpointRecord: Type: AWS::Route53::RecordSet Properties: Region: "us-east-1" HealthCheckId: !Ref HealthcheckRegion1 SetIdentifier: "endpoint-region1" HostedZoneName: !Ref HostedZoneName Name: !Ref MultiregionEndpoint Type: CNAME ResourceRecords: - !Sub ""https://${Region1Endpoint}/prod/"” Resources: Region2EndpointRecord: Type: AWS::Route53::RecordSet Properties: Region: "us-west-2" HealthCheckId: !Ref HealthcheckRegion2 SetIdentifier: "endpoint-region2" HostedZoneName: !Ref HostedZoneName Name: !Ref MultiregionEndpoint Type: CNAME ResourceRecords: - !Sub ""https://${Region2Endpoint}/prod/"" Region 2 Endpoint Enabling regional endpoints Resources: BrowseCatalogApi: Type: AWS::Serverless::Api Properties: DefinitionUri: browse-catalog-swagger.yaml StageName: prod EndpointConfiguration: Types: - REGIONAL Variables: GetRListLambda: !Ref GetRList GetRestaurantLambda: !Ref GetRestaurant GetMenuLambda: !Ref GetMenu BrowseCatalogDomainName: Type: 'AWS::ApiGateway::DomainName' Properties: CertificateArn: !Ref myCertificate DomainName: !Ref domainName EndpointConfiguration: Types: - REGIONAL Region 1 Endpoint
  • 44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Summary
  • 45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways • Multi-region architectures add significant complexity to your stack – think carefully about your services and whether they need to be multi region at all • Master/master replication with eventual consistency may create a worse customer experience than losing the entire order – full regional outages are highly unlikely, keep it simple! • Route 53 can perform failover checks and most operation can be automated – this does not exonerate operators and developers from the job of monitoring their service. Create relevant metrics and set alarm on them.
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Next steps • Learn more from our “Building a Multi-region Serverless Application with Amazon API Gateway and AWS Lambda” blog post: https://aws.amazon.com/blogs/compute/building-a- multi-region-serverless-application-with-amazon-api-gateway- and-aws-lambda/ • API Gateway regional endpoints give you control over your DNS records: https://docs.aws.amazon.com/apigateway/latest/developergui de/create-regional-api.html
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you! M a g n u s B j o r k m a n , A W S S o l u t i o n A r c h i t e c t S t e f a n o B u l i a n i , A W S S p e c i a l i s t S o l u t i o n A r c h i t e c t S e r v e r l e s s T r a c k