š What is an Auto Scaling Group (ASG)?
An Auto Scaling Group in AWS automatically launches or terminates EC2 instances based on demand, health checks, or schedules.
ā
Its goal is to ensure your application has the right number of instances running at the right time ā not too many (wasting money) and not too few (hurting performance).
š§© Key Features
Feature |
Description |
Automatic Scaling |
Increases or decreases instance count based on CPU, traffic, etc. |
Health Checks |
Replaces unhealthy instances automatically |
Integration with ELB |
Distributes traffic across ASG-managed instances |
Launch Template/Profile |
Defines the AMI, instance type, key pair, and security group |
Availability Zones |
Distributes instances across multiple AZs for high availability |
Scheduled Actions |
Scale based on time (e.g., increase capacity at 9 AM, reduce at 6 PM) |
Lifecycle Hooks |
Run custom logic during instance launch/termination |
āļø How ASG Works (High-Level Flow)
- You create a Launch Template (defines instance config)
- You define an Auto Scaling Group (min, max, desired capacity)
- ASG monitors CloudWatch alarms (CPU, network, etc.)
- Based on metrics or schedule:
- Launches new EC2 instances
- Terminates old or unhealthy ones
-
If attached to a Load Balancer, traffic is automatically routed
š Example Scenario
Time |
Traffic |
ASG Response |
10:00 AM |
Low |
ASG maintains minimum instances
|
1:00 PM |
High |
ASG scales out new instances |
10:00 PM |
Low |
ASG scales in unused instances |
š¦ ASG + ELB + CloudWatch = Dynamic Scaling
Time |
Traffic |
ASG Response |
10:00 AM |
Low |
ASG maintains minimum instances
|
1:00 PM |
High |
ASG scales out new instances |
10:00 PM |
Low |
ASG scales in unused instances |
š ļø Scaling Policies
Policy Type |
Description |
Target Tracking |
Keeps a metric (e.g., CPU at 50%) at target level |
Step Scaling |
Scales based on metric thresholds in steps |
Simple Scaling |
One action per CloudWatch alarm (older method) |
Scheduled Scaling |
Triggers at specific times |
ā
Summary
Attribute |
Value |
Purpose |
Auto-manage EC2 instance count |
Key Components |
Launch Template, Scaling Policy, Health Check |
Use Case |
Web apps, APIs, batch jobs, cost optimization |
Cost Control |
Helps reduce costs during low traffic |
High Availability |
Distributes across AZs, replaces failed nodes |