DEV Community

Le Huy Ho
Le Huy Ho

Posted on

Learning AWS - DVA - Day 9: Auto Scaling Groups

What is an Auto Scaling Group?

  • In real-life, the load of your websites and applications can be change

  • In the cloud, you can create and get rid of servers very quickly

  • The goal of an Auto Scaling Groups (ASG) is to:

    • Scale out (add EC2 intances) to match an increased load
    • Scale in (remove EC2 instances) to match a decreased load
    • Ensure we have a minimum and a maximum number of EC2 instances running
    • Automatically register new instances to a load balancer
    • Re-create an EC2 instance in case a previous one is terminated (ex: if unhealthy)
  • Auto Scaling Group are free - you only pay for the underlying EC2 intances.


Auto Scaling Group Attributes

  • A Launch Template, includes:

    • AMI + Instance Type
    • EC2 User Data
    • EBS Volumes
    • Security Groups
    • SSH Key Pair
    • IAM Role for your EC2 instance
    • Network + Subnet Information
    • Load Balancer Information
  • Min Size / Max Size / Initial Capacity

  • Scaling Policies


CloudWatch Alarm and Scaling

  • It is posible to scale an ASG based on CloudWatch alarms

  • An alarm monitors a metric (such as Average CPU, or a custom metric)

  • Metric such as Average CPU are computed for the overall ASG instances

  • Based on the alarm:

    • We can create scale-out policies (increase the number of instances)
    • We can create scale-in policies (decrease the number of instances)

Auto Scaling Policies

Dynamic Scaling

  • Target Tracking Scaling

    • Simple to set-up
    • Example: I want the average ASG CPU to stay at around 40%
  • Simple / Step Scaling

    • When a CloudWatch alarm is triggered (ex: CPU > 70%) then add 2 units
    • When a CloudWatch alarm is triggerd (ex: CPU < 30%) then remove 1

Scheduled Scaling

  • Anticipate a scaling based on known usage patterns
  • Example: increase the min capacity to 10 at 5pm on Fridays

Predictive Scaling: continously forecast load and schedule scaling ahead


Good metrics to scale on

  • CPUUtilization: Average CPU utilization across your instances

  • RequestCountPerTarget: to make sure the number of requests per EC2 instances is stable

  • Average Network In/Out (if your application is network bound

  • Any custom metric (that you push using CloudWatch)

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more