

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

# Auto Scaling 群組的執行個體維護政策
<a name="instance-maintenance-policy-overview-and-considerations"></a>

本主題提供可用選項的概觀，並介紹建立執行個體維護政策時需要考量的事項。

**Topics**
+ [概要](#instance-maintenance-policy-overview)
+ [核心概念](#instance-maintenance-policy-core-concepts)
+ [執行個體暖機期](#instance-maintenance-policy-instance-warm-up)
+ [運作狀態檢查寬限期](#instance-maintenance-policy-health-check-grace-period)
+ [擴展 Auto Scaling 群組](#instance-maintenance-policy-scaling-limits)
+ [範例方案](#instance-maintenance-policy-scenarios)

## 概要
<a name="instance-maintenance-policy-overview"></a>

當您為 Auto Scaling 群組建立執行個體維護政策時，該政策會影響導致執行個體被取代的 Amazon EC2 Auto Scaling 事件。這會導致在相同 Auto Scaling 群組中產生更一致的取代行為。此外，這也讓您可根據需求使群組的可用性或成本最佳化。

在主控台中可以使用下列組態選項：
+ **終止前啟動** – 必須先佈建新執行個體，才能終止現有執行個體。對於重視可用性多於節省成本的應用程式來說，此做法是理想的選擇。
+ **終止並啟動** – 在終止現有執行個體的同時佈建新執行個體。對於重視節省成本多於可用性的應用程式來說，此做法是理想的選擇。對於即使在取代執行個體時，也不應啟動超過目前可用容量的應用程式而言，這也是一個不錯的選擇。
+ **自訂政策** – 此選項可讓您在取代執行個體時，根據想要的可用容量的自訂上下限範圍來設定政策。這種做法可協助您在成本和可用性之間取得適當的平衡。

Auto Scaling 群組預設為沒有執行個體維護政策，因此會以預設行為來回應執行個體維護事件。預設行為如下表所述。


**執行個體維護事件預設行為**  

|  事件  |  Description  |  預設行為  | 
| --- | --- | --- | 
|  運作狀態檢查失敗  |  在執行個體的運作狀態檢查失敗時自動發生。Amazon EC2 Auto Scaling 會取代運作狀態檢查失敗的執行個體。若要了解運作狀態檢查失敗的原因，請參閱 [Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。  |  終止並啟動。  | 
|  執行個體重新整理  |  在啟動執行個體重新整理時發生。視您的組態而定，執行個體重新整理可以一次取代一個執行個體、一次取代多個執行個體，或一次取代所有執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。  |  終止並啟動。  | 
|  執行個體生命週期上限  |  當執行個體達到您為 Auto Scaling 群組指定的執行個體生命週期上限時，則會自動發生。Amazon EC2 Auto Scaling 會取代達到執行個體生命週期上限的執行個體。如需詳細資訊，請參閱[根據執行個體生命週期上限來取代 Auto Scaling 執行個體](asg-max-instance-lifetime.md)。  |  終止並啟動。  | 
|  重新平衡  |  如有導致群組不平衡的基礎變更，則會自動發生。Amazon EC2 Auto Scaling 會在下列情況下重新平衡群組： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/instance-maintenance-policy-overview-and-considerations.html)  |  終止前啟動。 Amazon EC2 Auto Scaling 可能會超出群組的大小限制，超出量最高可達其*容量上限*的 10%。但是，如果您使用的是容量重新平衡，則最多只能超出這些限制*所需容量*的 10%。  | 

在下列情況下，Amazon EC2 Auto Scaling 將繼續預設為終止並啟動。因此，當其中一種情況發生時，群組的容量可能會小於執行個體維護政策的閾值下限。
+ 例如執行個體因人為行動而意外終止時。Amazon EC2 Auto Scaling 立即取代不再執行的執行個體。如需詳細資訊，請參閱[Amazon EC2 運作狀態檢查](health-checks-overview.md#instance-health-detection)。
+ 當 Amazon EC2 在 Amazon EC2 Auto Scaling 可以啟動替代執行個體之前，將執行個體做為排程事件的一部分而重新啟動、停止或淘汰。如需這些事件的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[執行個體的排程事件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html)。
+ 當 Amazon EC2 Spot Service 啟動 Spot 執行個體中斷，之後 Spot 執行個體被強制終止時。

使用 Spot 執行個體時，如果您在 Auto Scaling 群組上啟用了容量重新平衡，則該執行個體可能已經有一個待定執行個體，而該執行個體來自我們在起始 Spot 中斷之前啟動的另一個 Spot 集區。如需有關容量重新平衡運作的詳細資訊，請參閱 [Auto Scaling 中的容量重新平衡，以取代具有風險的 Spot 執行個體](ec2-auto-scaling-capacity-rebalancing.md)。

但是，由於 Spot 執行個體無法保證會維持可用狀態，並且可能在兩分鐘的 Spot 執行個體中斷通知後終止，因此，如果執行個體在新執行個體啟動之前中斷，則可能會超過執行個體維護政策的閾值下限。

## 核心概念
<a name="instance-maintenance-policy-core-concepts"></a>

在開始使用之前，請熟悉以下核心概念和術語：

**所需容量**  
*所需容量*是建立 Auto Scaling 群組時的 Auto Scaling 群組容量。這也是群組未連接任何擴展條件時嘗試維持的容量。

**執行個體維護政策**  
*執行個體維護政策*控制執行個體是否在執行個體維護事件終止現有執行個體之前先佈建一個執行個體。它也會決定 Auto Scaling 群組在同時取代多個執行個體時，可能會低於和超出所需容量的程度。

**狀態良好最高百分比**  
*狀態良好最高百分比*是 Auto Scaling 群組在取代執行個體時可增加的所需容量百分比。它代表可以正常運作或待定的群組的百分比上限，以支援您的工作負載。在主控台中，您可以在使用**終止前啟動**選項或**自訂政策**選項時設定狀態良好最高百分比。有效值為 100-200%。

**狀態良好最低百分比**  
*狀態良好最低百分比*是維持服務狀態、運作狀態良好，以及在取代執行個體時可用來支援工作負載的所需容量百分比。執行個體在成功完成其第一個運作狀態檢查並經過指定的暖機時間後，即視為運作狀態良好且可供使用。在主控台中，您可以在使用**終止並啟動**選項或**自訂政策**選項時設定狀態良好最低百分比。有效值為 0-100%。  
若要更快取代執行個體，您可以指定較低的狀態良好最低百分比。不過，如果執行中的執行個體運作狀態不夠良好，可能會降低可用性。我們建議您選取合理值，以在要取代多個執行個體的情況下維持可用性。

## 執行個體暖機期
<a name="instance-maintenance-policy-instance-warm-up"></a>

如果執行個體在進入 `InService` 狀態後需要時間進行初始化，請為 Auto Scaling 群組啟用預設執行個體暖機期。使用預設執行個體暖機期，您便可以防止執行個體在準備就緒之前計入正常運作狀態百分比下限。這可確保 Amazon EC2 Auto Scaling 在終止現有執行個體之前，考慮到需要多長時間才能有足夠容量來支援工作負載。

另一項優點是，啟用預設的執行個體暖機期時，您可以改善用於動態擴展的 Amazon CloudWatch 指標。如果您的 Auto Scaling 群組有任何擴展政策，當群組橫向擴展時，會使用相同的預設暖機期，防止執行個體在完成初始化之前計入 CloudWatch 指標。

如需詳細資訊，請參閱[設定 Auto Scaling 群組的預設執行個體暖機期](ec2-auto-scaling-default-instance-warmup.md)。

## 運作狀態檢查寬限期
<a name="instance-maintenance-policy-health-check-grace-period"></a>

Amazon EC2 Auto Scaling 會根據您的 Auto Scaling 群組使用的運作狀態檢查狀態，判斷執行個體是否運作狀態良好。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

為確保這些運作狀態檢查能夠盡快啟動，請勿將群組的運作狀態檢查寬限期設定得太高，但要足以讓您的 Elastic Load Balancing 運作狀態檢查來判斷目標是否可用來處理要求。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

## 擴展 Auto Scaling 群組
<a name="instance-maintenance-policy-scaling-limits"></a>

執行個體維護政策僅適用於執行個體維護事件，且不會防止群組手動或自動擴展。

如果 Auto Scaling 群組連接了擴展政策或排程動作，則可在執行個體維護事件發生時並行執行。在這種情況下，它們可以增減群組的所需容量，但只能在您定義的擴展限制內。如需這些限制的詳細資訊，請參閱 [設定 Auto Scaling 群組的擴展限制](asg-capacity-limits.md)。

## 範例方案
<a name="instance-maintenance-policy-scenarios"></a>

在一般情況下，您的執行個體維護政策和所需容量可能如下所示：
+ 狀態良好最低百分比 = 90%
+ 狀態良好最高百分比 = 120%
+ 所需容量 = 100

在任何執行個體維護事件期間，Auto Scaling 群組可能最少只有 90 個執行個體，最多只有 120 個執行個體。事件結束後，群組擁有的執行個體數量會恢復為 100 個。

當您將執行個體維護政策與具有暖集區的 Auto Scaling 群組搭配使用時，狀態良好最低和最高百分比會分別套用至 Auto Scaling 群組和暖集區。

例如，假設這是您的設定：
+ 狀態良好最低百分比 = 90%
+ 狀態良好最高百分比 = 120%
+ 所需容量 = 100
+ 暖集區大小 = 10

如果您啟動執行個體重新整理以回收群組的執行個體，Amazon EC2 Auto Scaling 會先取代 Auto Scaling 群組中的執行個體，然後取代暖集區中的執行個體。雖然 Amazon EC2 Auto Scaling 仍在取代 Auto Scaling 群組中的執行個體，但該群組可能最少只有 90 個執行個體，最多只有 120 個執行個體。完成群組取代程序後，Amazon EC2 Auto Scaling 便可以取代暖集區中的執行個體。發生這種情況時，暖集區可能最少只有 9 個執行個體，最多只有 12 個執行個體。