Dynamic Scaling
- Target Tracking Scaling – Keeps a chosen metric (e.g., average CPU utilization) at a set target.
Example: Maintain ASG CPU at ~40%.
- Simple / Step Scaling – Triggers when a CloudWatch alarm is met.
Example: If CPU > 70%, add 2 instances; if CPU < 30%, remove 1 instance.
Scheduled Scaling
- Plans scaling actions for predictable patterns.
Example: Increase minimum capacity to 10 at 5 PM every Friday.
Predictive Scaling
- Uses historical traffic data to forecast future demand.
- Automatically scales capacity ahead of load changes.
- Analyze historical usage.
- Forecast expected traffic.
- Schedule scale-out/scale-in actions proactively.
Good Metrics to Scale On
- CPUUtilization – Average CPU usage across the ASG; useful for CPU-bound workloads.
- RequestCountPerTarget – Keeps requests per instance stable; ideal for web apps behind a load balancer.
- Average Network In/Out – Relevant for network-intensive workloads (e.g., streaming, file transfers).
- Custom Metrics – Application-specific metrics (e.g., memory usage, queue depth) pushed to CloudWatch for tailored scaling logic.