BERLIN 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
Building Multi-Region Applications Jan Metzner, Solutions Architect Brian Wagner, Solutions Architect 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
AWS Global Footprint EU Central (Frankfurt) US West (Oregon) GovCloud EU West (Ireland) China (Beijing) Asia Pacific (Tokyo) US East (Virginia) Asia Pacific (Sydney) US West (N.California) São Paulo Asia Pacific (Singapore)
AWS Global Footprint EU Central (Frankfurt) US West (Oregon) GovCloud EU West (Ireland) China (Beijing) Asia Pacific (Tokyo) US West (N.California) US East (Virginia) Region An independent collection of AWS resources in a defined geography A solid foundation for meeting locationdependent privacy and compliance requirements Asia Pacific (Sydney) São Paulo Asia Pacific (Singapore)
Disaster Recovery Highly Available Migration Cold Warm Hot Standby Hot Active Migration Operational data is regularly copied Critical system backbones only Critical systems fully replicated & running Systems are proactively operational All resources moved to another Resource procurement on demand Databases contain replicated data Databases contain replicated data Databases (usually) in sync Pre-configured ready-to-launch AMIs Ready to scale Able to receive production grade traffic at any time
Availability Zone Availability Zone
Availability Zone Availability Zone Route 53 highly available and scalable cloud DNS web service Elastic Load Balancer automatically distributes incoming application traffic EC2 provides resizable compute capacity in the cloud Elastic Block Store persistent block level storage volumes
Availability Zone Availability Zone RDS managed service that makes it easy to set up, operate, and scale a relational database in the cloud RDS Multi-AZ provide enhanced availability and durability for Database Instances
Availability Zone Availability Zone DynamoDB fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale Update Streams maintains a time ordered sequence of item level changes in any DynamoDB table in a log for a duration of 24 hours
DynamoDB Update Streams An ordered sequence of changes to items in a DynamoDB Table Puts, updates, and deletes performed in last 24 hours Deployment & Administration Application Services Sharded for Scalability Similar to Kinesis Streams Compute Storage Database Networking Global Infrastructure
Availability Zone Availability Zone DynamoDB fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale Update Streams maintains a time ordered sequence of item level changes in any DynamoDB table in a log for a duration of 24 hours
Availability Zone Availability Zone Amazon S3 secure, durable, highly-scalable object storage Event Notifications receive notifications when certain events happen in your bucket
Amazon S3 Event Notifications Deployment & Administration Application Services λ Compute Storage Database Networking Message Message Invocation Global Infrastructure
Availability Zone Availability Zone Amazon S3 secure, durable, highly-scalable object storage Event Notifications receive notifications when certain events happen in your bucket
Availability Zone Availability Zone
Availability Zone Availability Zone Availability Zone Availability Zone
Deploying your Resources EC2 Instance EBS Volume RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI EBS Volume RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI EBS Volume RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database Read Replica DynamoDB Table S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database Read Replica DynamoDB Table? S3 Objects
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database Read Replica DynamoDB Table? S3 Objects?
AWS Lambda
AWS Lambda λ Feature Details AWS Service Integration Event-Driven Compute No Infrastructure to Manage Automatic scaling Fine-grained pricing Event triggers from Amazon S3, DynamoDB, and Kinesis events Deployment & Administration Application Services Compute at any scale One request a month or 10,000 parallel invocations Simple, stateless approach, expressed in conventional languages Compute Storage Database Fast response No long delays for provisioning, deployment or scale-up Change and run code as fast as you can type Networking Never pay for idle Fine-grained pricing in 100ms, 64MB steps Global Infrastructure Economical at any scale
AWS Lambda λ S3 Handler Dynamo Handler Kinesis Handler App Event Handler Deployment & Administration AWS Event Integration Custom Invoke API Application Services Compute Storage Database AWS Lambda Networking Global Infrastructure
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database Read Replica DynamoDB Table? S3 Objects?
Deploying your Resources EC2 Instance AMI Copy AMI Launch EBS Volume Snapshot Copy Snapshot Create Volume RDS Database Read Replica DynamoDB Table Event Invoke λ DynamoDB API Call S3 Objects Event Invoke λ Amazon S3 API Call
Demonstration
Identity and Access Management Management Console CloudWatch
IAM & Security Considerations <!-- AWS Elastic Beanstalk application version --> arn:aws:elasticbeanstalk:us-east-1:123456789012:environment/my App/MyEnvironment <!-- IAM user name --> arn:aws:iam::123456789012:user/brian <!-- Amazon RDS tag --> arn:aws:rds:eu-west-1:001234567890:db:mysql-db <!-- Amazon S3 bucket (and all objects in it)--> arn:aws:s3:::my_bucket/* Amazon Resource Name examples
IAM & Security Considerations { } "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:sourceip": ["192.0.2.0/24", "203.0.113.0/24"] } } }] Sample IAM Policy
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
Compute & Networking Considerations SSH keys Security Groups AMIs EBS Volumes Elastic IP Addresses Elastic Load Balancing Launch Configurations & Auto Scaling Groups
BERLIN