Availability Management Guide for AWS Users
In this session, we will try to show you few immediate things that can help you achieve max Availability in your AWS environment.
How to Assure Availability in EC2?
Distributed infrastructure is vital to assure availability. AWS Elastic Load Balancing (ELB) service balances the load between the serving EC2 instances and automatically distributes traffic to multiple EC2 instances. To get the best out of your operations, you should distribute your instances across multiple availability zones, that way if all the instances across a single availability zone become unhealthy, as can happen in an outage, your application can run from a different availability zone. But there are few stages of availability, each with its own Pros and the Cons:
- Your infrastructure is located in one Availability Zone in one region. To compare this to the old data center world, all of your resources are running on the same physical machine.
- The Pros - Easy to manage, Cheap(er), Easy to build architecture, no need to build you application/service for availability concerns
- The Cons - High Risk of Outage, Low SLA
- Your Infrastructure is located in few Availability Zones in on region. Meaning that your resources are running in different Clusters/Physical Machines.
- The Pros - Cheap(er), distributed and replicated data, Traffic is distributed between different resources
- The Cons - Medium Risk, Medium SLA, Management is of a concern, your application/service architecture needs to be defined to know how to work with AWS Elastic Load Balancing (ELB)
- Your Infrastructure is located in Variety of Availability Zones and in few Regions/Geographical Locations.
- The Pros - Low Risk, High SLA, distributed and replicated data, Traffic is distributed between different resources
- The Cons - Expensive, Management is problematic, your application/service architecture needs to be defined to know how to work with AWS Elastic Load Balancing (ELB) and different regions/Geographical Locations
How to avoid single point of failure?
- Use Elastic Load Balancing (ELB) to replicate data between two resources (EC2 instances).
- Availability Zones (behind ELB) to replicate data between different Availability Zones (Clusters).
- Multiple Regions build your application to replicate data between different regions. Multiple regions also help to decrease response time in different parts of the world. Learn more here.
- Use Reserved Instances to guarantee you have at least the number of reserved instances you paid for in every hour
Dos and Don’ts
Don’t put all of your eggs in one basket. Outages are very likely to happen, so build smart and be ready for the worst case.
How To Guides
- How to Attach Instances to an Elastic Load Balancer
- How to Move instances between Availability Zones (AZs)
Case Study
Read this Case Study from one of our Design Partners who built for availability.
Best Practices
- Design For Failure
- Architecture Examples by Amazon