- Core Auto Scaling concepts
- Capacity settings (min / desired / max)
- Scaling policy types: manual, dynamic (target tracking, simple, step), and scheduled
- Launch templates and why they’re recommended
- Integrations with other AWS services
- Scaling policies — define how the Auto Scaling group adjusts the desired capacity within its min/max bounds.
- Auto-healing — Auto Scaling performs health checks and replaces unhealthy instances so the group maintains the desired capacity.
- Required configuration — every Auto Scaling group must reference a launch template or a launch configuration; launch templates are recommended.
The Auto Scaling group always attempts to maintain the desired capacity, scaling down to the minimum or up to the maximum based on your configured policies.

min = 2, desired = 2, max = 10, the group starts with two instances. Changing desired to 5 causes Auto Scaling to launch three additional instances to reach five. Manual scaling is simple and precise but requires human intervention and does not respond automatically to sudden traffic spikes.
Auto-healing behavior
If desired = 5 and two instances are marked unhealthy, Auto Scaling terminates the unhealthy instances and launches replacements so the group returns to the desired count of five. Auto-healing helps maintain availability without manual intervention.
Dynamic scaling
Dynamic scaling lets Auto Scaling react automatically to metric changes. The three primary dynamic scaling approaches are:
- Target tracking scaling
- Simple scaling
- Step scaling

min = 1, desired = 2, max = 5. If average CPU rises above 50% for the evaluation period, Auto Scaling launches instances until the metric returns near the target (up to the max). When CPU drops below the target, instances are terminated to reduce cost.


- 60%–70%: add 2 instances
- 70%–85%: add 3 instances
-
85%: add 5 instances

Scheduled scaling
Scheduled scaling runs scaling actions at predictable times. Use it when traffic patterns are known (e.g., daily peaks). You can:
- Set the desired capacity at a specific time, or
- Add/remove a fixed number of instances on a schedule. Scheduled actions can be one-time or recurring (cron-like).



- AMI
- Instance type
- EBS volume configuration
- Security groups
- IAM instance profile
- Key pair (SSH key for instance access)
- Network settings (subnets, interfaces)
- User data scripts
- Tags and metadata
- Market options (On-Demand, Spot)

- Instance configuration: define all instance-level settings and metadata.
- Versioning: support for multiple versions so you can update templates without disrupting running instances.
- Parameterization & overrides: use a base template and override parameters at launch time for minor variations.
- Termination protection: reduce accidental terminations by enabling protection.
- User data: include initialization scripts for bootstrapping instances.
- CLI/SDK/Infrastructure-as-Code support: manage templates through console, CLI, SDKs, CloudFormation, or Terraform.

Launch templates are the recommended approach for Auto Scaling groups and replace legacy launch configurations. Use template versioning and parameter overrides to roll out updates safely and consistently.
- Elastic Load Balancing — distribute incoming traffic across instances in the Auto Scaling group.
- Amazon CloudWatch — collect metrics and define alarms that drive scaling policies.
- Amazon SNS — publish notifications for scaling events (scale-out/in, instance launch/terminate).
- IAM — grant Auto Scaling and instances necessary permissions.
- AWS Systems Manager, AWS Auto Scaling (scaling plans), and other services can be used for more advanced automation.
- Amazon EC2 Auto Scaling documentation
- Amazon CloudWatch documentation
- Elastic Load Balancing documentation