Amazon EC2's Auto Scaling feature gives you the power to build systems that adapt to a workload that varies over time. You can scale out to meet peak demand, and then scale in later to minimize costs.
Today we are adding Auto Scaling support to the AWS Management Console. You can now create launch configurations and Auto Scaling groups with point-and-click ease, and you can bid for Spot Instances when scaling out. You can also initiate scaling operations from the console and you can manage the associated notifications.
Let's take a tour of the console's new support for Auto Scaling. The welcome page outlines the benefits and the major steps:
The launch configuration specifies the Amazon Machine Image (AMI), EC2 instance type, EBS storage, security group, and other details needed to launch new instances as part of the scale-up process. The console leads you through the necessary steps, beginning with the selection of the desired AMI:
With the AMI chosen, your next task is to choose the EC2 instance type that will be launched when scaling out:
Then you provide a name for your launch configuration, along with an IAM role, enable CloudWatch detailed monitoring, and request EBS-optimized instances. You can even choose a purchasing option (On- Demand or Spot).
If you decide to use Spot Instances, the console will show you the current price for the selected instance type in each Availability Zone. You can use this information to help you make an informed choice when you enter the maximum price that you want to pay to launch a Spot instance:
You can also request the creation of new EBS disk storage volumes as part of the launch. These volumes can be deleted on termination, or they can be left around. The first option is perfect if you use the EBS volumes for temporary storage; the second would be appropriate if you generate log files on the instance and need to move them to long-term storage after the instance has been terminated.
You can choose to attach an existing Security Group to all newly launched instances, or you can create and customize a new one.
With all of the details specified, now is the time to review them and to create the launch configuration:
As you probably know, the launch configuration provides Auto Scaling with all of the information needed to launch and terrminate EC2 instances as part of scaling operations, but it doesn't actually launch any instances. To do that you need to create an Auto Scaling group. Click the following button to do this:
The console will lead you through the steps needed to create your Auto Scaling group. You can set the initial size (number of EC2 instances) of the group, along with the desired minimum and maximum size. You can also choose to launch the instances into a particular Virtual Private Cloud (VPC), and you can select the desired Availability Zones.
If you are using the instances to handle incoming HTTP traffic, you can also choose to associate the Auto Scaling group with an Elastic Load Balancer:
The next step is optional. If you are simply using the Auto Scaling group to ensure that a particular number of instances are up and running, you can skip it. If you want the group to vary in size in response to a changing load or to other factors, then you need to set up scaling policies.
Groups that vary in size must have a Scale Out policy and a Scale In policy. These policies are triggered by Amazon CloudWatch alarms. For example, you can activate the policies when the average CPU load (across the Auto Scaling group) rises above or drops below certain thresholds. Or, you can activate them in response to changes in the amount of network traffic to or from the instances in the group. You can even create custom CloudWatch metrics such as "Requests Per Second" and use them to initiate scaling operations.
As you can see, you can choose the actions to be taken, along with the associated quantities (number of EC2 instances) for the scale out and scale in activities:
Each Auto Scaling activity generates an Amazon SNS notification; you can route these to an existing topic or you can create a new topic and subscribe it to one or more email addresses from the console:
After you create the Auto Scaling group, you can watch the scaling history using the console
You can also initiate scale out and scale in operations
This new feature is available in all of the public AWS Regions and you can start using it today. Give it a try, and let me know what you think.