Auto Scaling Groups or ASGs provide a way to scale in and out with your instances and infra.
Scale out: add instances for increased workload
Scale in: remove instances for decreased workload
you can set a minimum, desired, and maximum capacity no of instances
automatically connect new instances to a load balancer
recreate an instance if a previous one is terminated eg if unhealthy
ASG is FREE! – but you pay for the underlying instances
ASGs also work with load balancers
You create a Launch Template (used to be called Launch Configuration – now deprecated)
in this you set:
AMI and instance type
EC2 user data script, if used
ssh key pair
IAM roles for the instances
plus also set
CloudWatch Alarms also integrate with ASGs.
you set a metric to be monitored by CW and this then triggers the ASG activity eg scale in policy or scale out policy.
ASG Termination Policy
by default, ASG looks for the AZ which has the most number of instances, and then deletes the one within that AZ which has the oldest launch configuration.
ASG always seeks to balance number of instances across AZs by default.
when an instance is launched you can first determine that it goes first into a pending state, you then move it into pending proceed.. then it goes into in service state.
if no pending state, then it goes straight to in-service state.
also for teminating, you can set a terminating wait state, this is so you have time to carry out some other actions first.
Launch Configs – these are legacy deprecated, you have to recreate each time.
Launch Templates – new, are versionable, recommended by AWS
only use Launch Templates from now on!