Please enable JavaScript.
Coggle requires JavaScript to display documents.
Building Fault-Tolerant Applications on AWS (Failures Can Be Useful…
Building Fault-Tolerant
Applications on AWS
Failures Shouldn’t be
THAT Interesting
AMIs
Recovery launch of AMI
Fast replacement
Application should have at least one AMI
Elastic Block Store
Storage independent of instance
Snapshot to S3
Stores data redundantly
Elastic IP Addresses
Region Locked
Can be API controlled
dead instance ---> new instance
Public IP
Failures Can
Be Useful
Auto Scaling
Auto replace terminated servers
Rules based scaling triggers
Scale EC2 instances up or down
N+1 Redundancy
Elastic Load Balancing
Pool of resources are balanced across
Unhealthy instances are ignored
Regions and Availability Zones
Multi-AZ Architectures
Highly Available
Cope with component and AZ failure!
Use ELB to balance across AZs
EC2 SLA for region 99.95% Availability
AZs provide isolation and redundancy
Distribute Applications Geographically
Reserved Instances
Fault-Tolerant
Building Blocks
Amazon Simple Queue Service
Accessed via URL so internet accessible depending ACLs
Backbone of fault-tolerant application
Messages persist for up to 4 days or until read & deleted by app
Common to auto scale EC2 workers to
consume requests form queue
Amazon S3
Massively Redundant
Accessed via URL
Versioning Feature protects against accidental deletion
Amazon handles the fault tolerance
Amazon SimpleDB
Highly-available
Fault Tolerant
Scalable service
Amazon Relational Database Service
Snapshot functionality
Synchronous Standby Replication across AZs
Automatic Backup DB and Transaction Logs
Replicated DVB will be Automatically be
promoted to Primary in the event of a failure