DEV Community

Radurga Rajendran
Radurga Rajendran

Posted on

**Dynamic Scaling with AWS Auto Scaling Groups via Console**

To configure an Auto Scaling Group (ASG) using the AWS Management Console. Auto Scaling Groups are an essential feature of AWS, allowing you to dynamically scale your EC2 instances based on workload demand. Here, we'll have a clear understanding of creating an ASG, configuring scaling policies, and testing the setup.

Introduction to Auto Scaling Groups

An Auto Scaling Group (ASG) ensures your application has the right number of EC2 instances running at all times. You can define scaling policies based on CloudWatch metrics, such as CPU utilization, to automatically add or remove instances. This provides cost-efficiency and ensures consistent performance.Auto Scaling Groups dynamically adjust EC2 instances based on workload.

Steps to Create an Auto Scaling Group Using the AWS Console

Step 1: Create a Launch Template

  1. Log in to the AWS Management Console and navigate to the EC2 Dashboard.
  2. Create a Launch Template:
    • Go to Launch Templates and click Create Launch Template.
    • Provide a Name and Description.
    • Specify the AMI ID (Amazon Machine Image) for the operating system. For example, use an Ubuntu AMI.
    • Select the Instance Type (e.g., t2.micro).
    • Add your Key Pair for SSH access.
    • Configure Network Settings (use the default VPC and a Subnet).
    • Leave other settings as default and save the Launch Template.
    • Launch Templates simplify EC2 instance configurations for ASG.

Step 2: Create an Auto Scaling Group

  1. Navigate to Auto Scaling Groups under the EC2 Dashboard.
  2. Click "Create Auto Scaling Group".
  3. Select Launch Template: Choose the Launch Template created in Step 1.
  4. Configure Group Size and Scaling Policies:
    • Specify the Minimum size (e.g., 1), Maximum size (e.g., 3), and Desired Capacity (e.g., 1).
    • Set scaling policies to increase or decrease capacity automatically.
  5. Choose Subnets:
    • Select the Subnets from your VPC where the EC2 instances will run.
    • Ensure these Subnets are public if instances need internet access.
  6. Health Checks:
    • Use EC2 health checks to automatically replace unhealthy instances.
    • Set a Health Check Grace Period (e.g., 300 seconds).
  7. Review and Create:
    • Review the settings and click Create Auto Scaling Group.
  8. Dynamic Scaling Policies allow automated scaling based on CloudWatch metrics like CPU utilization.

Step 3: Set Up Scaling Policies

  1. In the ASG configuration, choose Dynamic Scaling Policies.
  2. Add a policy to scale out:
    • Set the policy to add 1 instance when CPU utilization exceeds 70%.
  3. Add a policy to scale in:

    - Set the policy to remove 1 instance when CPU utilization falls below 30%.

    Stress Testing the Auto Scaling Group

    To test the Auto Scaling Group, you can simulate high CPU usage on one of the instances. This will trigger the scaling policy and add more instances.Stress testing helps verify that scaling policies are working as expected.

  4. Connect to an Instance:
    Use your private key to SSH into the instance.

   ssh -i "your-key.pem" ubuntu@<Instance-IP>
Enter fullscreen mode Exit fullscreen mode
  1. Install Stress Tool: Update the system and install the stress tool.
   sudo apt update 
   sudo apt install stress 
Enter fullscreen mode Exit fullscreen mode
  1. Run Stress Test: Simulate high CPU utilization to trigger the scale-out policy.
   stress --cpu 8 --timeout 600 
Enter fullscreen mode Exit fullscreen mode
  1. Monitor Scaling:
    • Go to the Auto Scaling Groups dashboard in the AWS Console.
    • Check the Activity tab to observe if new instances are being launched.

My Output

Image description

Image description

Configuring Auto Scaling Groups using the AWS Management Console is a straightforward process that enables dynamic scaling of EC2 instances. By following these steps, we can ensure your application is resilient, cost-efficient, and capable of handling varying workloads.

Top comments (0)