lifecycle hook 運作方式 - Amazon EC2 Auto Scaling

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

lifecycle hook 運作方式

從啟動到終止,Amazon EC2 執行個體會轉換到不同狀態。您可以為 Auto Scaling 群組建立自訂動作,以便在執行個體因 lifecycle hook 而轉換到等待狀態時執行該動作。

下圖展示了當您使用生命週期掛接進行向外延展和縮放時,Auto Scaling 例證狀態之間的轉換。

當您使用生命週期掛接進行向外延展和縮放時,Auto Scaling 實例狀態之間的轉換。

如前面的圖表所示:

  1. Auto Scaling 群組會回應水平擴展事件,並開始啟動執行個體。

  2. lifecycle hook 使執行個體進入等待狀態 (Pending:Wait),接著會執行自訂動作。

    在您完成生命週期動作前,或逾時期限結束前,執行個體都保持在等待狀態。根據預設,執行個體會維持等待狀態一小時的時間,然後 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 搭配使用,則會先將終止的執行個體從負載平衡器中取消註冊。如果已啟用負載平衡器的連接耗盡,執行個體會停止接受新的連接誒,並等待現有連接耗盡,再完成取消註冊程序。

  5. lifecycle hook 使執行個體進入等待狀態 (Terminating:Wait),接著會執行自訂動作。

    在您完成生命週期動作前,或逾時期限結束 (預設為一小時) 前,執行個體都保持在等待狀態。完成 lifecycle hook 或逾時期限到期後,執行個體會轉換到下一個狀態 (Terminating:Proceed)。

  6. 執行個體已終止。

重要

暖集區中的執行個體也有自己的生命週期及對應的等待狀態,如 暖集區中的執行個體生命週期狀態轉換 中所述。