Upload
amazon-web-services
View
3.381
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Building Fault-Tolerant Applications in the Cloud
Advanced Solutions ArchitectureMiles Ward
Faults? Facilities
Hardware
Networking
Code
People
What is “Fault-Tolerant”?
Degrees of risk mitigation - not binary
Automated
Tested!
Agenda
The AWS Approach
Building Blocks
Success Example:
Design Patterns
Old School Fault-Tolerance: Build Two
No Up-Front Capital Expense
Pay Only for What You Use
Self-Service Infrastructure
Easily Scale Up and Down
Improve Agility & Time-to-Market
Low Cost
Cloud Computing Benefits
Deploy
No Up-Front HA Capital Expense
Pay for DR Only When You Use it
Self-Service DR Infrastructure
Easily Deliver Fault-Tolerant
Applications
Improve Agility & Time-to-Recovery
Low Cost Backups
Cloud Computing Fault-Tolerance Benefits
Deploy
The benefits translate!
AWS Cloud allows Overcast Redundancy
Have the shadow duplicate of your infrastructure ready to go when you need it…
…but only pay for what you actually use
Old Barriers to HA are now Surmountable
Cost
Complexity
Expertise
AWS Building Blocks: Two Strategies
Inherently fault-tolerant services
Services that are fault-tolerant with the right architecture
S3SimpleDb
DynamoDBCloudfront
SWF, SQS, SNS, SESRoute53
Elastic Load BalancerElastic Beanstalk
ElastiCacheElastic MapReduce
IAM
Amazon EC2VPC EBSRDS
The Stack:
Resources
Deployment
Management
Configuration
Networking
Facilities
Geographies
The Stack:
EC2 Instances
Amazon Machine Images
CW Alarms - AutoScaling
Cloudformation - Beanstalk
Route53 – ElasticIP – ELB
Availability Zones
Regions
Regional Diversity
Use Regions for:
Latency• Customers• Data Vendors• Staff
Compliance
Disaster Recovery
… and Fault Tolerance!
Proper Use of Multiple Availability Zones
107.22.18.45 isn’t fault-tolerant but 50.17.200.146 is: EIP
Elastic Load Balancing
Automated DNS: Route53
New! Latency-Based Routing
Network Fault-Tolerance Tools
Cloudformation – Elastic Beanstalk
Q: Is your stack unique?
Cloudwatch – Alarms – AutoScaling
AMI’s
Maintenance is critical
Alternatives: Chef, Puppet, cfn-init, etc.
New! When in doubt: 64-bit
Replicate for DR
EC2 Instances
Consistent, reliable building block
100% API controlled
Reserved Instances
EBS
Immense Fleet Scale
New EC2 VPC feature: Elastic Network Interface
Up to 2 Addresses
Span Subnets
Attach/Detach
Public or Private
Example: a “fork-lifted” app
Example: Fault-Tolerant
Why mess with all of that?
Design For Failure
SPOF
Build Loosely Coupled Systems
Tight Coupling
Loose Coupling using Queues
Copyright © 2011 Amazon Web Services
Use the right approach for each tier
AWS
Fault-Tolerant Front-end Systems
Addressing: Route53, EIP
Distribution: Multi-AZ, ELB, Cloudfront
Redundancy: Auto-Scaling
Monitoring: Cloudwatch
Platform: Elastic Beanstalk
Amazon CloudFront
Amazon CloudWatch
Auto Scaling
Amazon Route 53
Elastic LoadBalancer
AWS ElasticBeanstalk
Elastic IP
Fault-Tolerant Data-Tier Systems
Tuned
Patched
Cached
Sharded
Replicated
Backed Up
Archived
Monitored
Fault-Tolerant Data-Tier Systems
Tuned
Patched
Cached
Sharded
Replicated
Backed Up
Archived
Monitored
LOTSOF
WORK
AWS Fault-Tolerant Data-Tier Services
S3
SimpleDB
EMR
New! DynamoDB
RDS
Amazon Elastic MapReduce
Amazon Simple Storage Service
(S3)
Amazon Relational Database Service
(RDS)
Amazon SimpleDB
Amazon DynamoDB
Amazon ElastiCache
RDS Fault-Tolerant Features
Multi-AZ Deployments
Read Replicas
Automated Backups
Snapshots
RDS DB Instance RDS DB InstanceMulti-AZ Standby
New! Storage GatewayYour Datacenter
Amazon Elastic Block Storage
(EBS)
Amazon Elastic Compute Cloud
(EC2)
Amazon Simple Storage Service (S3)
Clients
On-premises Host
AWS Storage Gateway
VM
Direct Attached or Storage Area Network Disks
SSL
Internetor
Direct Connect
AWS Storage Gateway Service
Application Servers
Test! Use a Chaos Monkey!
http://techblog.netflix.com/2010/12/5-lessons-weve-learned-using-aws.html
Prudent
Conservative
Professional
…and all the cool kids are doing it
Thank You!@milesward