

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

# 使用執行個體縮減保護來控制執行個體終止
<a name="ec2-auto-scaling-instance-protection"></a>

執行個體縮減保護可讓您控制 Amazon EC2 Auto Scaling 可以終止哪些執行個體。此功能的常見使用案例是擴展容器型工作負載。如需詳細資訊，請參閱[設計您的應用程式以正常處理執行個體終止](gracefully-handle-instance-termination.md)。

根據預設，當您建立 Auto Scaling 群組時，會停用執行個體縮減保護。這表示 Amazon EC2 Auto Scaling 可以終止群組中的任何執行個體。

您可以在 Auto Scaling 群組上啟用執行個體縮減保護設定，一旦執行個體啟動，即可對其進行保護。當執行個體縮減保護啟動時，執行個體的狀態為 `InService`。然後，若要控制哪些執行個體可以終止，請停用 Auto Scaling 群組中個別執行個體的縮減保護設定。這樣，您可以繼續保護某些執行個體免受不必要的終止。

**Topics**
+ [考量事項](#instance-protection-considerations)
+ [變更 Auto Scaling 群組的縮減保護](#instance-protection-group)
+ [變更執行個體的縮減保護](#instance-protection-instance)

## 考量事項
<a name="instance-protection-considerations"></a>

以下是使用執行個體縮減保護時的考量：
+ 如果 Auto Scaling 群組中的所有執行個體都受到縮減保護，且發生縮減事件，則會減少其所需的容量。不過，在停用執行個體縮減保護設定之前，Auto Scaling 群組無法終止所需的執行個體數量。在 中 AWS 管理主控台，如果 Auto Scaling 群組中的所有執行個體在發生縮減事件時都受到保護，則 Auto Scaling 群組**的活動歷史記錄**會包含下列訊息： `Could not scale to desired capacity because all remaining instances are protected from scale in.`
+ 如果您分離受到縮減保護的執行個體，則會遺失其執行個體縮減保護設定。當您再次將執行個體連接到群組時，它會繼承目前執行個體在群組的保護設定中擴展。當 Amazon EC2 Auto Scaling 啟動新的執行個體，或將執行個體從暖集區移至 Auto Scaling 群組時，執行個體會繼承 Auto Scaling 群組的執行個體規模保護設定。
+ 執行個體縮減保護並不保護以下的 Auto Scaling 執行個體：
  + 如果執行個體未通過運作狀態檢查，則發生運作狀態檢查取代。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。
  + Spot 執行個體中斷。Spot 執行個體的容量無法再使用或 Spot 價格超過您的最高價時將被終止。
  + 容量區塊保留結束。Amazon EC2 會回收容量區塊執行個體，即使執行個體受到縮減保護。
  + 透過 `terminate-instance-in-auto-scaling-group`命令手動終止。如需詳細資訊，請參閱[終止 Auto Scaling 群組中的執行個體 (AWS CLI)](ec2-auto-scaling-scaling-manually.md#terminate-an-instance-aws-cli)。
  + 透過 Amazon EC2 主控台、CLI 命令和 API 操作手動終止。若要保護 Auto Scaling 執行個體不被手動終止，請啟用 Amazon EC2 終止保護。（這不會阻止 Amazon EC2 Auto Scaling 透過 `terminate-instance-in-auto-scaling-group`命令終止執行個體或手動終止。) 如需在啟動範本中啟用 Amazon EC2 終止保護的詳細資訊，請參閱 [使用進階設定建立啟動範本](advanced-settings-for-your-launch-template.md)。

## 變更 Auto Scaling 群組的縮減保護
<a name="instance-protection-group"></a>

您可以啟用或停用 Auto Scaling 群組的執行個體縮減保護設定。當您啟用它時，群組啟動的所有新執行個體都會啟用執行個體縮減保護。

啟用或停用 Auto Scaling 群組的此設定不會影響現有的執行個體。

------
#### [ Console ]

**為新的 Auto Scaling 群組啟用縮減保護**  
當您建立 Auto Scaling 群組時，在**設定群組大小和擴展政策**頁面的**執行個體縮減保護**下，選取**啟用執行個體縮減保護**核取方塊。

**啟用或停用現有群組的縮減保護**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Advanced configurations** (進階組態)、**Edit** (編輯)。

1. 針對**執行個體縮減保護**，選取或清除**啟用執行個體規模保護**核取方塊，以視需要啟用或停用此選項。

1. 選擇**更新**。

------
#### [ AWS CLI ]

**為新的 Auto Scaling 群組啟用縮減保護**  
使用以下 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令，啟用執行個體縮減保護功能。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...
```

**為現有群組啟用縮減保護**  
使用以下 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令，為指定的 Auto Scaling 群組啟用執行個體縮減保護功能。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in
```

**停用現有群組的縮減保護**  
使用以下命令來停用所指定群組的執行個體縮減保護。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in
```

------

## 變更執行個體的縮減保護
<a name="instance-protection-instance"></a>

根據預設，執行個體會從本身的 Auto Scaling 群組取得執行個體縮減保護設定。不過，您可以啟用或停用個別執行個體啟動後的執行個體縮減保護。

------
#### [ Console ]

**啟用或停用執行個體的縮減保護**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在 **Instance management** (執行個體管理) 索引標籤的 **Instances** (執行個體) 中，選取執行個體。

1. 若要啟用執行個體縮減保護，請依序選擇 **Actions** (動作)、**Set scale-in protection** (設定縮減保護)。出現提示時，請選擇 **Set scale-in protection** (設定縮減保護)。

1. 若要停用執行個體縮減保護，請依序選擇 **Actions** (動作)、**Remove scale-in protection** (移除縮減保護)。出現提示時，請選擇 **Remove scale-in protection** (移除縮減保護)。

------
#### [ AWS CLI ]

**啟用執行個體的縮減保護**  
使用以下 [set-instance-protection](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-instance-protection.html) 命令，為指定的執行個體啟用執行個體縮減保護。

```
aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in
```

**停用執行個體的縮減保護**  
使用以下命令來停用所指定執行個體的縮減保護。

```
aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in
```

------

**注意**  
請記住，執行個體縮減保護並不保證在發生人為錯誤時不會終止執行個體，例如，有人使用 Amazon EC2 主控台或 手動終止執行個體 AWS CLI。若要保護執行個體不會意外終止，您可以使用 Amazon EC2 終止保護。不過，即使啟用終止保護和執行個體縮減保護，如果運作狀態檢查判斷執行個體狀態不佳或群組本身遭到意外刪除，則儲存到執行個體儲存體的資料仍可能會遺失。與任何環境一樣，最佳實務是經常備份您的資料，或在適合您的業務持續性需求時備份資料。