More Related Content Similar to Building Global Serverless Backends Similar to Building Global Serverless Backends (20) More from Amazon Web Services More from Amazon Web Services (20) Building Global Serverless Backends1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Building Global Serverless Backends
(powered by Amazon DynamoDB Global Tables)
Danilo Poccia
Technical Evangelist
danilop@amazon.com
@danilop
danilop
2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Session objectives
1. Understand System Reliability and Availability.
2. Understand why we build a Multi-Region Active-Active architecture.
3. Understand how to build a Multi-Region Active-Active architecture on
AWS.
4. Hands-on Demo: Building Multi-Region Serverless App.
5. Conclusion.
3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
System Reliability and Availability
4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Failures are a given and
everything will eventually
fail over time.
Werner Vogels
CTO – Amazon.com
“ “
5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
System failure rate
Early Failures
Wear Out Failures
Observed Failures
Random Failures
6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Well-Architected Framework
Operational Excellence
Security
Reliability
Performance Efficiency
Cost Optimization
7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What is reliability?
Ability of a system to recover from:
1. Infrastructure or service disruptions
2. Dynamically acquire computing resources to meet demand
3. Mitigate disruptions such as misconfigurations or transient network issues.
8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability
Availability Downtime per year Categories
95% (1-nine) 18 days 6 hours
Batch processing, Data extraction,
Load jobs.
99% (2-nines) 3 days 15 hours Internal Tools, Project Tracking
99.9% (3-nines) 8 hours 45 minutes Online Commerce
99.99% (4-nines) 52 minutes Video Delivery, Broadcast systems
99.999% (5-nines) 5 minutes Telecom Industry (ATM Transactions)
99.9999% (6-nines) 31 seconds Answering to my loved one*
* Joke
http://royal.pingdom.com/wp-content/uploads/2015/04/pingdom_uptime_cheat_sheet.pdf
9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability in Series
Part X Part Y
A = Ax Ay
10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability in Series
Component Availability Downtime
X 99% (2-nines) 3 days 15 hours
Y 99.99% (4-nines) 52 minutes
X and Y Combined 98.99% 3 days 16 hours 33 minutes
11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability in Parallel
A = 1 – (1 – Ax)2
Part X
Part X
12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability in Parallel
Component Availability Downtime
X 99% (2-nines) 3 days 15 hours
Two X in parallel 99.99% (4-nines) 52 minutes
Three X in parallel 99.9999% (6-nines) 31 seconds
13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
System Availability
Availability =
Normal Operation Time
Total Time
MTBF**
MTBF** + MTTR*
=
* Mean Time To Repair (MTTR)
**Mean Time Between Failure (MTBF)
14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“Component redundancy increases
availability significantly!”
15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability Zone A Availability Zone B Availability Zone C
AWS Region
16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Availability Zone A Availability Zone B Availability Zone C
Multi-AZ Well-Architected
Application
17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
DynamoDB
Amazon
RDS
Amazon
ElastiCache
Amazon
S3
Amazon
EFS
Amazon
SQS
Amazon
Kinesis
Amazon
ElasticSearc
h
Default
Configurable for multi-
AZ deployment
Some of the Regional AWS Services
AWS
Lambda
Amazon
API Gateway
AWS
ELB
18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
No servers to provision
or manage
Scales with usage
Never pay for idle Availability and fault
tolerance built in
Why Serverless components??
19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Regional services
AZ1 AZ2 AZ3
Service XYZ
20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 18 Geographic Regions
• 50 Availability Zones (AZs)
• 4 regions and 12 more Availability Zones announced
21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cost of Availability (approx.)
Cost
Availability
Complexity
22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why build a Multi-Region
Active-Active architecture?
23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why Multi-Region?
1. Improve Latency for end-users
24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why Multi-Region?
1. Improve Latency for end-users
2. Disaster Recovery
Applications in
US West
Applications in
US East
Users from
San
Francisco
Users from
New York
Service 1
Service 2
Service 3
Service 4
Service 1
Service 2
Service 3
Service 4
25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Why Multi-Region?
1. Improve Latency for end-users
2. Disaster Recovery
3. Business Requirements
26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Netflix 2013
27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Netflix 2016
28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chaos Engineering
29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
How to build a Multi-Region Architecture on
AWS.
30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Data Replication
Component A
Component B
Component C
Latency < 5 ms
Synchronous Asynchronous
Latency > 5 ms
31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Reliable & Secure Network
AWS Region
A
AWS Region
B
Amazon Global Network
32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
James Hamilton – 2016 re:Invent
Vice President & Distinguished Engineer
34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Multi-Region Multi-VPC Connectivity
35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
S3 - Cross-Region Replication
36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cross-Region Read Replicas for Amazon RDS
** For Aurora, MySQL,
MariaDB and PostgreSQL
engines.
37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“Simple” Cross-Region Usage Pattern
• Regional Reads
• All critical writes traffic to
a single master
38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Aurora multi-master - scale out reads & writes
First MySQL compatible DB service with scale-out across multiple data centers
Zero application downtime from ANY instance failure
Zero application downtime from ANY AZ failure
Faster write performance and higher scale
Sign up for single-region multi-master preview today;
Multi-Region Multi-Master coming in 2018
Availability
Zone 1
Scale out both reads and writes
Availability
Zone 2
Availability
Zone 3
Application
Read/Write
Master 1
Shared distributed storage volume
Read/Write
Master 2
Read/Write
Master 3
39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon DynamoDB
Fast and flexible NoSQL database service for any scale
Fast, consistent performanceHighly scalable Fully managed Business critical
reliability
Consistent single-digit millisecond
latency; DAX in-memory
performance reduces response
times to microseconds
Auto-scaling to hundreds of
terabytes of data that serve
millions of requests per second
Automatic provisioning,
infrastructure
management, scaling,
and configuration with
zero downtime
Data is replicated across
fault tolerant Availability
Zones, with fine-grained
access control
40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Prime Day 2017 Metrics
Block Storage – Use of Amazon Elastic Block Store (EBS) grew by 40% year-over-year, with
aggregate data transfer jumping to 52 petabytes (a 50% increase) for the day and total I/O requests
rising to 835 million (a 30% increase).
NoSQL Database – Amazon DynamoDB requests from Alexa, the Amazon.com sites, and the
Amazon fulfillment centers totaled 3.34 trillion, peaking at 12.9 million per second.
Stack Creation – Nearly 31,000 AWS CloudFormation stacks were created for Prime Day in order to
bring additional AWS resources on line.
API Usage – AWS CloudTrail processed over 50 billion events and tracked more than 419 billion, all
in support of Prime Day.
Configuration Tracking – AWS Config generated over 14 million Configuration items for AWS
resources.
41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon DynamoDB Global Tables (GA)
First fully managed, multi-master, multi-region database
Build high performance, globally distributed applications
Low latency reads & writes to locally available tables
Disaster proof with multi-region redundancy
Easy to set up and no application rewrites required
Globally dispersed users
Replica (N. America)
Replica (Europe)
Replica (Asia)
Global App
Global Table
42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon DynamoDB Streams
• Each stream record appears exactly once in the stream.
• For each item that is modified in a DynamoDB table, the
stream records appear in the same sequence as the actual
modifications to the item
Amazon
DynamoDB
AWS
Lambda
Streams
43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Route 53
• AWS’s Authoritative Domain Name Service.
• Highly available and scalable.
• Supports Traffic Flow through a variety of routing, all of
which can be combined with DNS Failover.
• Enable a variety of low-latency, fault-tolerant
architectures.
44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Traffic Routing with Route53
1. Latency Based Routing
Amazon
Route53
Resource A
Resource B
45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Traffic Routing with Route53
1. Latency Based Routing
2. Geo DNS
Amazon
Route53
Resource A
In US
Resource B
in EU
User in US
46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Traffic Routing with Route53
1. Latency Based Routing
2. Geo DNS
3. Weighted Round Robin
Amazon
Route53
Resource A
In US
Resource B
in EU
47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Traffic Routing with Route53
1. Latency Based Routing
2. Geo DNS
3. Weighted Round Robin
4. DNS Failover
Amazon
Route53
Resource A
In US
Resource B
in EU
User in US
48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
us-west-2
us-east-1
Client
Amazon
Route 53
Regional
API
Endpoint
Regional
API
Endpoint
Custom
Domain
Name
Custom
Domain
Name
API Gateway
API Gateway
Lambda
Lambda
Multi-Region with API Gateway
49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hands-on Demo:
Building Multi-Region Serverless Application
50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
Amazon
Route53
eu-west-1
us-east-1
GlobalTables
https://global.domain.com/
51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
DynamoDB
Amazon
DynamoDB
eu-west-1
us-east-1
GlobalTables
52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
eu-west-1
us-east-1
GlobalTables
58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
Amazon
DynamoDB
AWS LambdaAmazon API
Gateway
Amazon
Route53
eu-west-1
us-east-1
GlobalTables
https://global.domain.com/
59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Route53: Traffic Policy
60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Conclusion
61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
We learned about
1. System Reliability and Availability
2. Why to build a Multi-Region Active-Active architecture
3. How to build a Multi-Region Active-Active architecture on AWS
4. How to build a Multi-Region Serverless App
62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Building Global Serverless Backends
(powered by Amazon DynamoDB Global Tables)
Danilo Poccia
Technical Evangelist
danilop@amazon.com
@danilop
danilop
Editor's Notes Does a region Fail?
Full region: no
Individual services can fail region-wide
Most of the time, configuration issue
Leading to cascading failures.
Works similar to existing Intra Region VPC Peering
2. Data always stays on the AWS backbone
3. Data always encrypted by default
4. No need to use Gateways, third-party VPN solutions to connect across regions.
5. No additional charges for using interregion VPC peering. Customers pay standard data transfer rates
Route end-users to the AWS region that provides the lowest possible latency.
Route end-users to a particular endpoint that you specify based on the end user’s geographic location.
Specify the frequency (“weights”) with which different DNS responses are returned to end users Route your website visitors to an alternate location to avoid site outages