

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

# 使用執行個體生命週期政策控制執行個體保留
<a name="instance-lifecycle-policy"></a>

 執行個體生命週期政策可在捨棄終止生命週期動作時提供 Amazon EC2 Auto Scaling 終止的保護。與單獨使用生命週期掛鉤不同，執行個體生命週期政策旨在確保執行個體在正常關機程序未成功完成時移至保留狀態。

## 何時使用執行個體生命週期政策
<a name="when-to-use-instance-lifecycle-policies"></a>

 當應用程式的正常關閉不是選用的，但強制和失敗的關閉需要手動介入時，請使用執行個體生命週期政策。常用案例包括：
+  必須在終止前完成資料持久性的狀態應用程式。
+  需要延長耗盡期間的應用程式，可能超過生命週期關聯逾時上限 48 小時。
+  當清除失敗或不完整時，處理敏感資料的工作負載可能會導致資料遺失或損毀。
+  任務關鍵服務，其中突然關機會對可用性造成影響。

 如需如何正常處理執行個體終止的詳細資訊，請參閱 [設計您的應用程式以正常處理執行個體終止](gracefully-handle-instance-termination.md)。

## 執行個體生命週期政策如何與終止生命週期關聯搭配使用
<a name="how-instance-lifecycle-policies-work"></a>

 執行個體生命週期政策可與終止生命週期掛鉤搭配使用，而非取代。程序遵循數個階段：

1.  **執行終止生命週期動作。**當 Amazon EC2 Auto Scaling 選取要終止的執行個體時，系統會叫用您的終止生命週期關聯，且執行個體會進入 `Terminating:Wait` 狀態以開始執行終止生命週期動作。

1.  **正常關機嘗試開始。**您的應用程式，無論是在執行個體上執行或透過控制平面執行，都會收到終止生命週期動作通知，並開始正常的關閉程序，例如耗盡連線、完成進行中的工作或傳輸資料。

1.  **終止生命週期動作完成。**終止生命週期動作可以使用 `CONTINUE`或 `ABANDON`結果完成。

1.  **執行個體生命週期政策會評估情況。**如果未設定執行個體生命週期政策，即使終止生命週期動作已完成`ABANDON`，執行個體仍會立即終止。在執行個體生命週期政策設定為在 上保留執行個體的情況下`TerminateHookAbandon`，如果終止生命週期動作已完成`ABANDON`，執行個體會移至保留狀態。

1.  **保留的執行個體會等待手動動作。**處於保留狀態的執行個體會持續產生標準 Amazon EC2 費用。這些執行個體不會計入 Auto Scaling 群組所需的容量，因此 Auto Scaling 會啟動替換執行個體以維持所需的大小。Auto Scaling 功能，例如執行個體重新整理和執行個體生命週期上限，也會忽略保留的執行個體。這可讓您在手動終止執行個體之前，手動完成清除程序、復原資料或調查自動關機失敗的原因。

1.  **手動終止發生。**在保留執行個體上完成必要的動作後，您需要呼叫 `TerminateInstanceInAutoScalingGroup` API 來終止執行個體。