This topic describes the concepts, workflows, scenarios, and limits of lifecycle hooks.
What is a lifecycle hook?
A lifecycle hook is a tool that is used to manage the lifecycles of Elastic Compute Service (ECS) instances or elastic container instances in a scaling group. When Auto Scaling executes a scaling activity, a lifecycle hook can be triggered to put ECS instances or elastic container instances involved in the scaling activity into the Pending Add or Pending Remove state. You can perform custom operations on the ECS instances or elastic container instances until the lifecycle hook times out.
The following table describes the configuration items of a lifecycle hook.
For information about the features of lifecycle hooks, see the "Create lifecycle hooks" section of the "Manage lifecycle hooks" topic.
Configuration item | Description |
Scaling Activity | The type of scaling activities to which you want to apply the lifecycle hook. When scaling activities of the specified type occur, the lifecycle hook is triggered and the ECS instances or elastic container instances enter the Pending Add or Pending Remove state. Valid values: Scale-in Event and Scale-out Event. Examples:
|
Timeout Period | The period of time during which you can perform custom operations on ECS instances or elastic container instances when the instances enter the Pending Add or Pending Remove state. We recommend that you configure a timeout period based on your business requirements. After the timeout period expires, Auto Scaling executes the default execution policy. You can delete the lifecycle hook or call the CompleteLifecycleAction API operation to manually end the timeout period ahead of schedule. |
Default Execution Policy | The action that you want Auto Scaling to perform after the timeout period of the lifecycle hook ends. Valid values: Continue and Reject.
Note If you set the Send Notification When Lifecycle Hook Takes Effect parameter of a lifecycle hook to OOS Template, the CloudOps Orchestration Service (OOS) template must be executed before the lifecycle hook times out. The default execution policy varies based on the execution result of the OOS template. If the execution is successful, the scaling activity continues. If the execution fails, the scale-out is rolled back while the scale-in continues. |
Send Notification When Lifecycle Hook Takes Effect | The method to send notifications when the lifecycle hook takes effect. For example, you can set this parameter to MNS Topic or MNS Queue. This way, you can immediately receive notifications after the lifecycle hook is triggered and perform operations on the instances. You can also set this parameter to OOS Template to automatically execute tasks. Note You are charged for the use of MNS. For more information, see MNS pricing. |
Workflows
The following figures use ECS instances to describe the workflows of lifecycle hooks. The workflows are similar for lifecycle hooks that are applied to elastic container instances.
Figure 2 Scale-in flowchart
The following table describes the concepts that are displayed in the preceding figures.
Concept | Description |
Lifecycle hook | A tool that is used to manage the lifecycles of ECS instances or elastic container instances in a scaling group. For more information, see What is a lifecycle hook? |
You use the scaling group to manage the lifecycles of the instances | You use the scaling group to manage the lifecycles of ECS instances or elastic container instances. For information about the lifecycles of ECS instances or elastic container instances, see Instance lifecycle. The status of ECS instances or elastic container instances varies based on how the instances are created.
|
You manually manage the lifecycles of the instances | You do not use the scaling group to manage the lifecycles of the ECS instances or elastic container instances that are manually added to the scaling group. In this case, Auto Scaling only removes ECS instances or elastic container instances from the scaling group during scale-ins. The ECS instances or elastic container instances are not released. Note You cannot use the scaling group to manage the lifecycles of subscription ECS instances that are added to the scaling group. |
Scenarios
In the following scenarios, you can create lifecycle hooks to put ECS instances or elastic container instances into the Pending Add or Pending Remove state and perform operations on the instances before the timeout periods end:
The ECS instances or elastic container instances that are used for scale-outs cannot immediately provide services.
For example, you can create lifecycle hooks if the ECS instances need to be associated with ApsaraDB RDS instances or need to be bound to secondary elastic network interfaces (ENIs). You can also create lifecycle hooks if the applications that are deployed on the ECS instances require some time to start before the applications can provide services.
The ECS instances or elastic container instances that are used for scale-ins cannot be immediately removed from scaling groups.
For example, you can create lifecycle hooks when you must back up data on the ECS instances or elastic container instances, copy instance logs, or wait until the ECS instances or elastic container instances finish processing all requests before you remove the instances from the scaling groups.
For more information, see Overview of best practices for lifecycle hooks and OOS templates and Use the lifecycle hook feature to ensure service availability.
Limits
You can create up to 10 lifecycle hooks for each scaling group.
When a scaling activity is triggered in a scaling group, whether the Expected Number of Instances feature is enabled determines whether other scaling activities can be executed on the scaling group.
If the Expected Number of Instances feature is disabled for the scaling group, Auto Scaling rejects other scaling activities.
If the Expected Number of Instances feature is enabled for the scaling group, Auto Scaling can execute other scaling activities only if the ongoing scaling activity is a parallel scaling activity. For information about how to determine parallel scaling activities, see Terms.
Manage lifecycle hooks
The following table describes the operations that you can perform on lifecycle hooks and the related links.
User guide | Operation | API references |
Create lifecycle hooks | ||
Modify lifecycle hooks | ||
Delete lifecycle hooks |