Amazon EC2 Auto-Scaling Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

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 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.

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. When you create a launch configuration, you specify information for the instances such as the ID of the Amazon Machine Image (AMI), the instance type, a key pair, one or more security groups, and a block device mapping. If you've launched an EC2 instance before, you specified the same information in order to launch the instance.

When you create an Auto Scaling group, you must specify a launch configuration. You can specify your launch configuration with multiple Auto Scaling groups. However, you can only specify one launch configuration for an Auto Scaling group at a time, and you can't modify a launch configuration after you've created it. 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.

Scaling Plans