How Auto Scaling and Elastic Load Balancing can help in Designing Fault Tolerant Systems

What is Auto Scaling

Auto scaling feature enables to automatically increase or decrease the number of EC2 instances depending on the load or other factors.  Usually autos scaling done with the help of Cloud watch.  When any threshold such as CPU usage breaches the predefined limit, Cloud watch alarm is triggered.  This can help in terminating problematic instance and launch new instance.

Auto Scaling feature can be configured to recognize many symptoms of impaired application or detect failures and based on those launch new EC2 instances.

What is Elastic Load Balancing ELB

The purpose of ELB is to balance the load across different EC2 instances.  EC2 instances which are managed by ELB could be within same Availability Zone (AZ) within same or different subnets or across different AZs also.  ELB ensures that the load is spread across the EC2 instance evenly or proportionately decreasing the chances of excessive load on a particular EC2 instance.

Often ELB and Auto scaling is used in tandem to create a fault tolerant system.  When traffic comes to the ELB it is distributed across healthy EC2 instances.  When any EC2 instance becomes unhealthy ELB stops sending traffic to that instance.  When a new instance is created with the help of auto scalling ELB starts sending traffic to the new instance.

One limitation of if ELB is that it is regional service and it can't be used across regions.

References

Auto Scaling
Elastic Load Balancer
Load Balancing with AMI and Elastic Block Storage


Comments

Popular posts from this blog

Some Important Architectural Considerations

How to Manage Fault Tolerance with Availability Zone and Regions in AWS

Role of AMIs and EBS in designing Fault Tolerant Systems