View
669
Download
1
Category
Tags:
Preview:
DESCRIPTION
Citation preview
Building Fault-Tolerant
Applications in the Cloud
Ryan Holland
Ecosystem Solution Architect
Faults? Facilities
Hardware
Networking
Code
People
What is “Fault-Tolerant”?
Degrees of risk mitigation - not binary
Automated
Tested!
Agenda
The AWS Approach
Building Blocks
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
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
S3
SimpleDb
DynamoDB
Cloudfront
SWF, SQS, SNS, SES
Route53
Elastic Load Balancer
Elastic Beanstalk
ElastiCache
Elastic MapReduce
IAM
Amazon EC2
VPC
EBS
RDS
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
Latency-Based Routing
Network Fault-Tolerance Tools
New EC2 VPC feature:
Elastic Network Interface
Up to 8 Interfaces
with 30 Addresses
each
Span Subnets
Attach/Detach
Public or Private
Cloudformation – Elastic Beanstalk
Q: Is your stack unique?
Cloudwatch – Alarms – AutoScaling
AMI’s
Maintenance is critical
Alternatives: Chef, Puppet, cfn-init, etc.
When in doubt: 64-bit
Replicate for DR
EC2 Instances
Consistent, reliable building block
100% API controlled
Reserved Instances
EBS
Immense Fleet Scale
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
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 Load
Balancer
AWS Elastic
Beanstalk
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
LOTS
OF
WORK
AWS Fault-Tolerant Data-Tier Services
S3
SimpleDB
EMR
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 Instance
Multi-AZ Standby
Storage Gateway Your 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
Internet or
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
Open source
…and all the cool kids are doing it
Thank You!
Recommended