AWS - High Availability

Subscribe Send me a message home page


Table of Contents

1. Introduction

In this pose, we will talk about high availability architecture. There are two concept that are closely related to high availability architecture:

Autoscaling Group is more about the computing unites and load balancing is more about architecture and how the traffic is distributed.

The diagram below gives an example of classic HA architecture:

classic_architecture.png

User sends requests to a domain, AWS Route53 routes the requests to a registered load balancer. Depending on the configuration and request type, load balancer will send the received requests to the corresponding target group. Target group is a collection of computing units (e.g. EC2 instances or autoscaling group). The computing units may connect to other scalable services such as S3 and RDS.

Some of the requests will be forward to and then handled by CloudFront, which is a content distribution service and its edge locations are closer to end user.

2. Autoscaling Group

Autoscaling Group is a collection of EC2 instances that can dynamically adjust its capacity based on the real-time workload and configuration. ASG uses a launch template/configuration to launch new EC2. We can specify information such as the AMI ID, instance type, key pair, security groups and block device mapping for the instances.

There are two usages of ASG:

The first item is quite obvious because it's called autoscaling group. The second item is a by-product of specifying the minimum number of instances that a ASG needs to maintain. For example, if we have ASG with minimum number of instances equals to 1 and the EC2 instance fails, then ASG will create a new EC2 instance automatically. In this ways, we always have a EC2 instance running. (There is a gap between the time when EC2 fails and the time when the new instance is created by ASG.)

There are different types of scaling options

3. Load Balancing

There are three types of load balancer

Application Load Balancer can route requests to different target groups. To achieve this, we can specify rules in the ALB.

target_group.png

Some other concepts related to load balancing

x_forwarded_header.png

----- END -----

Send me a message Subscribe to blog updates

Want some fun stuff?

/static/shopping_demo.png


Comments