Amazon EC2 Auto Scaling 实例生命周期 - Amazon EC2 Auto Scaling

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon EC2 Auto Scaling 实例生命周期

Auto Scaling 组中的 EC2 实例具有的路径或生命周期不同于其他 EC2 实例中的路径或生命周期。生命周期从 Auto Scaling 组启动实例并将其投入使用时开始。生命周期在您终止实例或 Auto Scaling 组禁用实例并将其终止时结束。

注意

一旦启动实例,您就需要为实例付费,包括尚未将实例投入使用的时间。

下图阐释了 Amazon EC2 Auto Scaling 生命周期内的实例状态之间的过渡。


				Auto Scaling 组中实例的生命周期。

扩展

以下横向扩展事件指示 Auto Scaling 组启动 EC2 实例并将其附加到组:

在发生横向扩展事件时,Auto Scaling 组将使用分配的启动模板来启动所需数目的 EC2 实例。这些实例最初处于 Pending 状态。如果您向 Auto Scaling 组添加生命周期挂钩,则可在此处执行自定义操作。有关更多信息,请参阅生命周期钩子

在每个实例完全配置并通过 Amazon EC2 运行状况检查后,该实例将附加到 Auto Scaling 组并进入 InService 状态。针对 Auto Scaling 组的所需容量对实例进行计数。

如果您的 Auto Scaling 组配置为从某个 Elastic Load Balancing 负载均衡器接收流量,则 Amazon EC2 Auto Scaling 会将实例标记为 InService,然后自动将您的实例注册至此负载均衡器。

以下总结了为横向扩展事件向负载均衡器注册实例的工作流程。


					横向扩展事件事的泳道图。

已投入使用的实例

实例将保持 InService 状态,直至出现下列情况之一:

缩小

以下缩减事件指示 Auto Scaling 组从组中分离 EC2 实例并将其终止:

您必须为所创建的每个横向扩展事件创建一个相应的缩减事件。这有助于确保分配给您的应用程序的资源与对这些资源的需求尽可能相符。

发生缩减事件时,Auto Scaling 组会终止一个或多个实例。Auto Scaling 组使用其终止策略来确定要终止的实例。正在从自动扩缩组中终止的实例将进入 Terminating 状态,且无法重新将其投入使用。

如果您的自动扩缩组配置为从某个 Elastic Load Balancing 负载均衡器接收流量,则 Amazon EC2 Auto Scaling 会自动从此负载均衡器取消注册终止的实例。取消注册实例可确保将所有新请求重定向到负载均衡器目标组中的其他实例,同时允许与该实例的现有连接继续,直到取消注册延迟到期。

如果您向自动扩缩组添加生命周期挂钩,则可在终止中的实例上执行自定义操作。有关更多信息,请参阅生命周期钩子。最后,实例将完全终止并进入 Terminated 状态。

以下总结了为横向缩减事件向负载均衡器取消注册实例的工作流程。


					横向缩减事件的泳道图。

分离实例

您可以从 Auto Scaling 组中分离实例。分离实例后,您可以独立于 Auto Scaling 组管理实例或者将实例附加到其他 Auto Scaling 组。

有关更多信息,请参阅分离或附加实例

附加实例

您可以将符合特定条件的正在运行的 EC2 实例附加到您的 Auto Scaling 组。在附加实例后,将该实例作为 Auto Scaling 组的一部分进行管理。

有关更多信息,请参阅分离或附加实例

生命周期钩子

您可以将生命周期挂钩添加到 Auto Scaling 组,以便在实例启动或终止时执行自定义操作。

当 Amazon EC2 Auto Scaling 响应横向扩展事件时,它将启动一个或多个实例。这些实例最初处于 Pending 状态。如果您已将一个 autoscaling:EC2_INSTANCE_LAUNCHING 生命周期挂钩添加到您的 Auto Scaling 组,则实例将从 Pending 状态转换为 Pending:Wait 状态。完成生命周期操作后,实例将进入 Pending:Proceed 状态。在完全配置实例后,实例将附加到 Auto Scaling 组并进入 InService 状态。

当 Amazon EC2 Auto Scaling 响应缩减事件时,它将终止一个或多个实例。这些实例将从 Auto Scaling 组中分离并进入 Terminating 状态。如果您已将一个 autoscaling:EC2_INSTANCE_TERMINATING 生命周期挂钩添加到您的 Auto Scaling 组,则实例将从 Terminating 状态转换为 Terminating:Wait 状态。完成生命周期操作后,实例将进入 Terminating:Proceed 状态。在完全终止实例后,实例将进入 Terminated 状态。

有关更多信息,请参阅Amazon EC2 Auto Scaling 生命周期钩子

进入和退出备用状态

可以将任何处于 InService 状态的实例置于 Standby 状态。这使您能够终止对实例的使用,排查实例的问题或对实例进行更改,然后重新将实例投入使用。

处于 Standby 状态的实例继续由 Auto Scaling 组管理。但是,在将这些实例重新投入使用前,它们不是您的应用程序的有效部分。

有关更多信息,请参阅临时从 Auto Scaling 组中移除实例