Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.
3.2.3.2. Capabilities of Auto Scaling for a Variety of AWS Services (EC2 Auto Scaling groups, RDS storage auto scaling, DynamoDB, ECS capacity provider, EKS autoscalers)
3.2.3.2. Auto Scaling Capabilities & Configuration
Auto Scaling ensures capacity matches demand — preventing both over-provisioning (wasted cost) and under-provisioning (poor performance).
Auto Scaling types on AWS:
| Service | Scaling Target | Scaling Mechanism |
|---|---|---|
| EC2 Auto Scaling | EC2 instances | Launch template, ASG policies |
| Application Auto Scaling | ECS tasks, DynamoDB, Aurora replicas, Lambda provisioned concurrency | Target tracking, step, scheduled |
| AWS Auto Scaling | Multiple resources via scaling plans | Predictive + dynamic scaling |
EC2 ASG configuration:
# CloudFormation ASG with target tracking
AutoScalingGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
LaunchTemplate:
LaunchTemplateId: !Ref LaunchTemplate
Version: !GetAtt LaunchTemplate.LatestVersionNumber
MinSize: 2
MaxSize: 20
DesiredCapacity: 4
VPCZoneIdentifier: [!Ref SubnetA, !Ref SubnetB]
TargetGroupARNs: [!Ref TargetGroup]
HealthCheckType: ELB
HealthCheckGracePeriod: 300
ScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref AutoScalingGroup
PolicyType: TargetTrackingScaling
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ALBRequestCountPerTarget
ResourceLabel: !Sub "${ALB.LoadBalancerFullName}/${TargetGroup.TargetGroupFullName}"
TargetValue: 1000 # 1000 requests per target
Predictive scaling uses ML to forecast demand and pre-scale capacity. Best for workloads with predictable daily/weekly patterns.
Exam Trap: ASG DesiredCapacity overrides target tracking temporarily. If you manually set desired=10 and target tracking wants 5, the ASG stays at 10 until the next scaling evaluation. To let Auto Scaling manage capacity entirely, don't manually set DesiredCapacity after initial creation.

Written byAlvin Varughese•Founder•15 professional certifications