Auto Scaling
is a service that allows you to scale your Amazon EC2 capacity automatically by scaling out and scaling in according to criteria that you define.
Auto Scaling Plans
Manual Scaling
You only need to specify the change in the maximum, minimum, or desired capacity of your Auto Scaling group.
Scheduled Scaling
Sometimes you know exactly when you will need to increase or decrease the number of instances in your group, simply because that need arises on a predictable schedule.
Dynamic Scaling
Dynamic scaling lets you define parameters that control the Auto Scaling process in a scaling policy
Auto Scaling Components
Auto Scaling has several components that need to be configured to work properly: a launch configuration, an Auto Scaling group, and an optional scaling policy.
Launch configuration
A launch configuration is a template that Auto Scaling users to create new instances.
Attributes of a launch configuration:
name: myLCAMI: ami-0535d66cInstance type: m3.medium Security groups: sg-f57cde9d Instance key pair: myKeyPair
Auto Scaling Group
An Auto Scaling group is a collection of Amazon EC2 instances managed by the Auto Scaling service. Each Auto Scaling group contains configuration options that control when Auto Scaling should launch new instances and terminate existing instances
Attributes of ASG:
Name: myASG
Launch configuration: myLC
Availability Zones: us-east-1a and us-east-1c Minimum size: 1
Desired capacity: 3
Maximum capacity: 10
Load balancers: myELB
Scaling Policy
You can associate Amazon CloudWatch alarms and scaling policies with an Auto Scaling group to adjust Auto Scaling dynamically. When the threshold is crossed, Amazon CloudWatch sends alarms to trigger changes (scaling in or out) to the number of Amazon EC2 instances currently receiving traffic behind a load balancer. After the Amazon CloudWatch alarm sends a message to the Auto Scaling group, Auto Scaling executes the associated policy to scale your group. The policy is a set of instructions that tells Auto Scaling whether to scale out, launching new Amazon EC2 instances referenced in the associated launch configuration, or to scale in and terminate instances.