Project Documentation: Architecting and Building out AWS Zero Downtime Solution using Auto Scaling Group and Simple Scaling Policies
This is another project from my Level Up In Tech AWS DevOps Boot Camp.
We have been asked by our team to create and test our highly available Web servers to ensure that we have zero downtime.
Combining an application load balancer with an auto scaling group ensures that the architecture is highly available and fault tolerant. The application load balancer will distribute load to the WebServer instances in the two availability. The auto scaling group will ensure that instances scale up or down depending on the CPU Utilization. Imagine if you are a company who is having a sale and know that your traffic will increase. Instead of manually increasing instances, the architecture will automatically adjust accordingly.
To accomplish this scenario, we will build out the following components:
- Launch Template for our WebServer instance. In the User Data section we want to add the following script to update packages, install and start Web server, enable Web server starts at boot and install a stress testing tool called stress from extra packages for enterprise Linux (epel) repo:
#!/bin/bashyum update -yyum install httpd -ysystemctl start httpdsystemctl enable httpdamazon-linux-extras install epel -yyum install -y stress
- An Auto Scaling Group to control our desired, minimum and maximum to designate our capacity.
- Two Simple Scaling policies to control what happens when CPU utilization increases and decreases.
- Use stress tool to see the simple scaling policies in action
I am using the components of the Default VPC. Ensure that your Security Group has inbound rules for HTTP and SSH.
Go to my Google Drive access the document with the specific steps to create the tasks.
Please post your feedback.