

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

# Auto Scaling 群組中的生命週期關聯運作方式
<a name="lifecycle-hooks-overview"></a>

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

下圖顯示當您使用生命週期掛鉤向外擴展和向內擴展時Auto Scaling 執行個體狀態之間的轉換。

![當您使用生命週期掛鉤向外擴展和向內擴展時，Auto Scaling 執行個體狀態之間的轉換。](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/how-lifecycle-hooks-work.png)


如前面的圖表所示：

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

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

   在您完成生命週期動作前，或逾時期限結束前，執行個體都保持在等待狀態。根據預設，執行個體會維持等待狀態一小時的時間，然後 Auto Scaling 群組就會繼續啟動程序 (`Pending:Proceed`)。如果您需要更多的時間，您可以利用活動訊號記錄重新啟動逾時期限。如果在自訂動作完成時且逾時期限尚未到期之前完成生命週期動作，則該期限會結束，Auto Scaling 群組會繼續啟動程序。

1. 執行個體會進入 `InService` 狀態，運作狀態檢查寬限期就會開始。但是，在執行個體達到 `InService` 狀態之前，如果 Auto Scaling 群組與 Elastic Load Balancing 負載平衡器建立關聯，則會向負載平衡器註冊執行個體，而負載平衡器會開始檢查其運作狀態。運作狀態檢查寬限期結束後，Amazon EC2 Auto Scaling 會開始檢查執行個體的運作狀態。

1. Auto Scaling 群組會回應縮減事件，並開始終止執行個體。如果 Auto Scaling 群組與 Elastic Load Balancing 搭配使用，則會先將終止的執行個體從負載平衡器中取消註冊。如果已啟用負載平衡器的連接耗盡，執行個體會停止接受新的連接誒，並等待現有連接耗盡，再完成取消註冊程序。

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

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

1. 執行個體已終止。

**重要**  
暖集區中的執行個體也有自己的生命週期及對應的等待狀態，如 [暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions) 中所述。

## 正在進行根磁碟區取代之執行個體的生命週期狀態轉換
<a name="rvr-lifecycle-state-transitions"></a>

下圖顯示當您使用生命週期掛鉤取代根磁碟區時Auto Scaling 執行個體狀態之間的轉換：

![當您使用生命週期掛鉤取代根磁碟區時，Auto Scaling 執行個體狀態之間的轉換。](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/root-volume-replacement-lifecycle-states.png)


如前面的圖表所示：

1. Auto Scaling 群組會回應執行個體重新整理，並選取執行個體以取代根磁碟區。執行個體進入 `ReplacingRootVolume` 狀態。如果執行個體已向負載平衡器註冊，則會從負載平衡器取消註冊。

1. lifecycle hook 使執行個體進入等待狀態 (`ReplacingRootVolume:Wait`)，接著會執行自訂動作。在您完成生命週期動作前，或逾時期限結束前，執行個體都保持在等待狀態。如果您在自訂動作完成且逾時期間尚未過期時完成生命週期動作，則期間會結束，Auto Scaling 群組會繼續根磁碟區替換程序。

1. 執行個體完成其根磁碟區取代並進入 `RootVolumeReplaced` 狀態。

1. 執行個體進入 `Pending` 狀態。

1. lifecycle hook 使執行個體進入等待狀態 (`Pending:Wait`)，接著會執行自訂動作。執行個體會保持等待狀態，直到您完成生命週期動作，或直到逾時期間結束為止。完成 lifecycle hook 或逾時期限到期後，執行個體會轉換到下一個狀態 (`Pending:Proceed`)。

1. 執行個體進入 `InService` 狀態。不過，在執行個體達到 `InService` 狀態之前，如果 Auto Scaling 群組與 Elastic Load Balancing 負載平衡器相關聯，則會向負載平衡器註冊執行個體。