生命周期钩子的工作方式 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

生命周期钩子的工作方式

一个 Amazon EC2 实例从其启动一直到其终止,将经过不同的状态转换。您可以创建生命周期钩子,以便在实例转换到等待状态时执行操作。

下图阐释了 Auto Scaling 实例状态之间的转换。


                使用生命周期挂钩的实例的生命周期。

如上图中所示:

  1. Auto Scaling 组响应向外扩展事件并开始启动实例。

  2. 生命周期钩子将实例置于等待状态 (Pending:Wait),然后执行自定义操作。

    实例将保持等待状态,直到您完成生命周期操作,或者直到超时时段结束。预设情况下,实例将保持等待状态 1 小时,然后 Auto Scaling 组继续启动过程 (Pending:Proceed)。如果您需要更长时间,可通过记录检测信号来重新开始超时时段。如果您在自定义操作已完成且超时时段尚未到期时完成生命周期操作,则该时间段结束,Auto Scaling 组将继续启动过程。

  3. 实例进入 InService 状态并开始运行状况检查宽限期。但是,在实例达到 InService 状态之前,如果 Auto Scaling 组与 Elastic Load Balancing 负载均衡器关联,则实例将在负载均衡器中注册,然后负载均衡器开始检查其运行状况。运行状况检查宽限期结束后,Amazon EC2 Auto Scaling 开始检查实例的运行状况。

  4. Auto Scaling 组响应缩减事件并开始终止实例。如果 Auto Scaling 组与 Elastic Load Balancing 一起使用,则终止实例要首先从负载均衡器中取消注册。如果为负载均衡器启用了 Connection Draining,则实例将停止接受新连接并等待现有连接耗尽,然后再完成取消注册过程。

  5. 生命周期钩子将实例置于等待状态 (Terminating:Wait),然后执行自定义操作。

    该实例将保持等待状态,直到您完成生命周期操作,或者直至超时期结束(预设情况下为 1 小时)。完成生命周期钩子或超时时段过期后,实例将转换到下一个状态 (Terminating:Proceed)。

  6. 实例已终止。

重要

暖池中的实例也有自己的生命周期以及相对应的等待状态,如 暖池中实例的生命周期状态转换 中所述。