Amazon EC2 Auto-Scaling Concepts
External
- Auto-scaling User Guide http://docs.aws.amazon.com/autoscaling/latest/userguide/
Internal
Overview
Auto-scaling is an Amazon EC2 functionality that insures that an optimal number of EC2 instances are started and maintained running, to handle the load of a specific application. The EC2 instances whose number is controlled this way are part of an auto-scaling group.
Auto-scaling allows for scaling plans, which control the number of active instances as the demand on the application increases or decreases.
With auto-scaling, an application gets better fault tolerance: auto-scaling can detect instance failure, terminate it and launch a new instance to replace it. Auto-scaling uses availability zones: if one availability zone becomes unavailable, auto-scaling will launch instances in another one, to compensate.
The application also gets better availability: the right amount of capacity is brought on-line (or shut-down) via auto-scaling.
Auto-Scaling Group
An auto-scaling group is a server cluster implementation on AWS. It contains a set of equivalent EC2 instances that share similar characteristics, and that are managed by the auto-scaling machinery. Auto-scaling ensures that the number of EC2 instances in an auto-scaling group does not go below a minimum size and above a maximum size. The group has a desired capacity.
Typically, a web application tier (web tier, app tier, database tier, cache tier) is implemented as an auto-scaling group.
Amazon EKS also can use auto-scaling groups to perform node auto-scaling.
An auto-scaling group must specify a launch configuration.
Auto-Scaling Groups and Availability Zones
An auto-scaling group can span multiple availability zones, within a region
Auto-Scaling Life Cycle
http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroupLifecycle.html
Launch Configurations
A launch configuration is a template for the EC2 instances created as part of an auto-scaling group.
The launch configuration includes the ID of the Amazon Machine Image (AMI), the instance type, a key pair, one or more security groups, and a block device mapping.
One, and only one, launch configuration must be specified on creation of an auto-scaling group. The same launch configuration can be specified with multiple auto-scaling groups. The launch configuration cannot be modified after creation. Therefore, if you want to change the launch configuration for your Auto Scaling group, you must create a launch configuration and then update your Auto Scaling group with the new launch configuration. When you change the launch configuration for your Auto Scaling group, any new instances are launched using the new configuration parameters, but existing instances are not affected.