Amazon EC2 Auto Scaling instance lifecycle - Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling instance lifecycle

The EC2 instances in an Amazon EC2 Auto Scaling group have a path, or lifecycle, that differs from that of other EC2 instances. The lifecycle starts when the Amazon EC2 Auto Scaling group launches an instance and puts it into service. The lifecycle ends when you terminate the instance, or the Amazon EC2 Auto Scaling group takes the instance out of service and terminates it.

Note

You are billed for instances as soon as they are launched, including the time that they are not yet in service.

The following illustration shows the transitions between instance states in the Amazon EC2 Auto Scaling lifecycle.

The lifecycle of instances within an Amazon EC2 Auto Scaling group.

Scale out

The following scale-out events direct the Amazon EC2 Auto Scaling group to launch EC2 instances and attach them to the group:

When a scale-out event occurs, the Amazon EC2 Auto Scaling group launches the required number of EC2 instances, using its assigned launch template. These instances start in the Pending state. If you add a lifecycle hook to your Amazon EC2 Auto Scaling group, you can perform a custom action here. For more information, see Lifecycle hooks.

When each instance is fully configured and passes the Amazon EC2 health checks, it is attached to the Amazon EC2 Auto Scaling group and it enters the InService state. The instance is counted against the desired capacity of the Amazon EC2 Auto Scaling group.

If your Amazon EC2 Auto Scaling group is configured to receive traffic from an ELB load balancer, Amazon EC2 Auto Scaling automatically registers your instance with the load balancer before it marks the instance as InService.

The following summarizes the steps for registering an instance with a load balancer for a scale-out event.

A high-level diagram of a scale-out event.

Instances in service

Instances remain in the InService state until one of the following occurs:

Scale in

The following scale-in events direct the Amazon EC2 Auto Scaling group to detach EC2 instances from the group and terminate them:

It is important that you create a corresponding scale-in event for each scale-out event that you create. This helps ensure that the resources assigned to your application match the demand for those resources as closely as possible.

When a scale-in event occurs, the Amazon EC2 Auto Scaling group terminates one or more instances. The Amazon EC2 Auto Scaling group uses its termination policy to determine which instances to terminate. Instances that are in the process of terminating from the Amazon EC2 Auto Scaling group enter the Terminating state, and can't be put back into service.

If your Amazon EC2 Auto Scaling group is configured to receive traffic from an ELB load balancer, Amazon EC2 Auto Scaling automatically deregisters the terminating instance from the load balancer. Deregistering the instance ensures that all new requests are redirected to other instances in the load balancer's target group while existing connections to the instance are allowed to continue until the deregistration delay expires.

If you add a lifecycle hook to your Amazon EC2 Auto Scaling group, you can perform a custom action on the terminating instance. For more information, see Lifecycle hooks. Finally, the instance is completely terminated and enters the Terminated state.

The following summarizes the steps for deregistering an instance with a load balancer for a scale-in event.

A high-level diagram of a scale-in event.

Detach an instance

You can detach an instance from your Amazon EC2 Auto Scaling group. After the instance is detached, you can manage it separately from the Amazon EC2 Auto Scaling group or attach it to a different Amazon EC2 Auto Scaling group.

For more information, see Detach or attach instances from your Amazon EC2 Auto Scaling group.

Attach an instance

You can attach a running EC2 instance that meets certain criteria to your Amazon EC2 Auto Scaling group. After the instance is attached, it is managed as part of the Amazon EC2 Auto Scaling group.

For more information, see Detach or attach instances from your Amazon EC2 Auto Scaling group.

Lifecycle hooks

You can add a lifecycle hook to your Amazon EC2 Auto Scaling group so that you can perform custom actions when instances launch or terminate.

When Amazon EC2 Auto Scaling responds to a scale-out event, it launches one or more instances. These instances start in the Pending state. If you added an autoscaling:EC2_INSTANCE_LAUNCHING lifecycle hook to your Amazon EC2 Auto Scaling group, the instances move from the Pending state to the Pending:Wait state. After you complete the lifecycle action, the instances enter the Pending:Proceed state. When the instances are fully configured, they are attached to the Amazon EC2 Auto Scaling group and they enter the InService state.

When Amazon EC2 Auto Scaling responds to a scale-in event, it terminates one or more instances. These instances are detached from the Amazon EC2 Auto Scaling group and enter the Terminating state. If you added an autoscaling:EC2_INSTANCE_TERMINATING lifecycle hook to your Amazon EC2 Auto Scaling group, the instances move from the Terminating state to the Terminating:Wait state. After you complete the lifecycle action, the instances enter the Terminating:Proceed state. When the instances are fully terminated, they enter the Terminated state.

For more information, see Amazon EC2 Auto Scaling lifecycle hooks.

Enter and exit standby

You can put any instance that is in an InService state into a Standby state. This enables you to remove the instance from service, troubleshoot or make changes to it, and then put it back into service.

Instances in a Standby state continue to be managed by the Amazon EC2 Auto Scaling group. However, they are not an active part of your application until you put them back into service.

For more information, see Temporarily remove instances from your Amazon EC2 Auto Scaling group.