

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

# 刪除 Auto Scaling 基礎設施
<a name="as-process-shutdown"></a>

若要完全刪除您的擴展基礎設施，請完成以下任務。

**Topics**
+ [刪除 Auto Scaling 群組](#as-shutdown-lbs-delete-asg-cli)
+ [(選用) 刪除啟動組態](#as-shutdown-lbs-delete-lc-cli)
+ [(選用) 刪除啟動範本](#as-shutdown-lbs-delete-lt-cli)
+ [(選用) 刪除負載平衡器和目標群組](#as-shutdown-lbs-delete-lbs-cli)
+ [(選用) 刪除 CloudWatch 警示](#as-shutdown-delete-alarms-cli)
+ [設定 Amazon EC2 Auto Scaling 資源的刪除保護](resource-deletion-protection.md)

## 刪除 Auto Scaling 群組
<a name="as-shutdown-lbs-delete-asg-cli"></a>

刪除 Auto Scaling 群組時，其所需的最小值和最大值會設定為 0。因此，執行個體會終止。刪除執行個體也會刪除任何關聯的日誌或資料，以及執行個體上的任何磁碟區。如果不想要終止一或多個執行個體，您可以將它們分離，然後再刪除 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. 出現確認提示時，請輸入 **delete** 來確認刪除特定的 Auto Scaling 群組，然後選擇 **Delete** (刪除)。

   **Name** (名稱) 欄位中的載入圖示會顯示正在刪除 Auto Scaling 群組。**Desired** (所需)、**Min** (最小) 和 **Max** (最大) 資料欄會顯示 Auto Scaling 群組的 `0` 個執行個體。終止執行個體並刪除群組需要幾分鐘的時間。重新整理清單，以查看目前狀態。

**若要刪除 Auto Scaling 群組 (AWS CLI)**  
使用以下 [delete-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-auto-scaling-group.html) 命令來刪除 Auto Scaling 群組。此操作並不能用於擁有 EC2 執行個體的群組，而只能用於沒有任何執行個體的群組。

```
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name my-asg
```

如果群組有執行個體或進行中的擴展活動，請將 [delete-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-auto-scaling-group.html) 命令與 `--force-delete` 選項搭配使用。這也會終止 EC2 執行個體。當您從 Amazon EC2 Auto Scaling 主控台刪除 Auto Scaling 群組，主控台就會使用此操作來同時終止任何 EC2 執行個體和刪除群組。

```
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name my-asg --force-delete
```

## (選用) 刪除啟動組態
<a name="as-shutdown-lbs-delete-lc-cli"></a>

如果您想要保留啟動組態以供日後使用，則可略過此步驟。

**刪除啟動組態 (主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格的 **Auto Scaling** 下，選擇 **Auto Scaling 群組**。

1. 在頁面頂端附近選擇**啟動組態**。出現確認提示時，請選擇**檢視啟動組態**，以確認您要檢視**啟動組態**頁面。

1. 選取啟動組態，然後選擇**動作**、**複製啟動組態**。

1. 出現確認提示時，請選擇**刪除**。

**刪除啟動組態 (AWS CLI)**  
使用以下 [delete-launch-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-launch-configuration.html) 命令：

```
aws autoscaling delete-launch-configuration --launch-configuration-name my-launch-config
```

## (選用) 刪除啟動範本
<a name="as-shutdown-lbs-delete-lt-cli"></a>

您可以刪除啟動範本或只刪除某個版本的啟動範本。刪除啟動範本時，會刪除其所有版本。

您可以略過此步驟，來保留啟動範本以供日後使用。

**刪除您的啟動範本 (主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Instances (執行個體)** 底下，選擇 **Launch Templates (啟動範本)**。

1. 選擇您的啟動範本，然後執行下列其中一項：
   + 選擇 **Actions** (動作)、**Delete template** (刪除範本)。出現確認提示時，請輸入 **Delete** 確認刪除指定的啟動範本，然後選擇 **Delete** (刪除)。
   + 選擇 **Actions (動作)**、**Delete template version (刪除範本版本)**。選取要刪除的版本，然後選取 **Delete (刪除)**。

**刪除啟動範本 (AWS CLI)**  
請使用下列 [delete-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template.html) 命令來刪除您的範本及其所有版本。

```
aws ec2 delete-launch-template --launch-template-id lt-068f72b72934aff71
```

您也可以使用 [delete-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template-versions.html) 命令來刪除特定版本的啟動範本。

```
aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b72934aff71 --versions 1
```

## (選用) 刪除負載平衡器和目標群組
<a name="as-shutdown-lbs-delete-lbs-cli"></a>

如果您的 Auto Scaling 群組未與 Elastic Load Balancing 負載平衡器相關聯，或您想要保留此負載平衡器供日後使用，請略過此步驟。

**刪除負載平衡器 (主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

1. 選擇負載平衡器，然後選擇 **Actions** (動作)、**Delete** (刪除)。

1. 出現確認提示時，選擇 **Yes, Delete** (是，刪除)。

**刪除目標群組 (主控台)**

1. 在導覽窗格的 **Load Balancing** (負載平衡) 中，選擇 **Target Groups (目標群組)**。

1. 選取目標群組，然後依序選擇 **Actions** (動作)、**Delete** (刪除)。

1. 出現確認提示時，選擇 **Yes, Delete** (是，刪除)。

**刪除與 Auto Scaling 群組關聯的負載平衡器 (AWS CLI)**  
針對 Application Load Balancer 和網路負載平衡器，請使用下列 [delete-load-balancer](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/delete-load-balancer.html) 和 [delete-target-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/delete-target-group.html) 命令。

```
aws elbv2 delete-load-balancer --load-balancer-arn my-load-balancer-arn
aws elbv2 delete-target-group --target-group-arn my-target-group-arn
```

針對 Classic Load Balancer，請使用下列 [delete-load-balancer](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/delete-load-balancer.html) 命令。

```
aws elb delete-load-balancer --load-balancer-name my-load-balancer
```

## (選用) 刪除 CloudWatch 警示
<a name="as-shutdown-delete-alarms-cli"></a>

若要刪除與 Auto Scaling 群組相關聯的 CloudWatch 警示，請完成下列步驟。例如，您可能會有與步進擴展或簡易擴展政策相關聯的警示。

**注意**  
刪除 Auto Scaling 群組會自動刪除 Amazon EC2 Auto Scaling 為目標追蹤擴展政策管理的 CloudWatch 警示。

如果您的 Auto Scaling 群組未與任何 CloudWatch 警示建立關聯，或您想要保留此警示以供日後使用，則可略過此步驟。

**刪除 CloudWatch 警示 (主控台)**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格上，選擇 **Alarms (警示)**。

1. 選擇警示，然後依序選擇 **Action (動作)**、**Delete (刪除)**。

1. 出現確認提示時，請選擇**刪除**。

**刪除 CloudWatch 警示 (AWS CLI)**  
使用 [delete-alarms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/delete-alarms.html) 命令。您可以同時刪除一或多個警示。例如，使用下列命令來刪除 `Step-Scaling-AlarmHigh-AddCapacity` 和 `Step-Scaling-AlarmLow-RemoveCapacity` 警示。

```
aws cloudwatch delete-alarms --alarm-name Step-Scaling-AlarmHigh-AddCapacity Step-Scaling-AlarmLow-RemoveCapacity
```

# 設定 Amazon EC2 Auto Scaling 資源的刪除保護
<a name="resource-deletion-protection"></a>

 透過設定多層保護，保護您的 Amazon EC2 Auto Scaling 基礎設施免於意外刪除。Auto Scaling 提供多種方法來防止您 Auto Scaling 群組及其管理的 Amazon EC2 執行個體遭到不必要的資源刪除。

**Topics**
+ [設定 Auto Scaling 群組刪除保護](#asg-deletion-protection)
+ [使用 IAM 政策控制刪除許可](#deletion-protection-iam-policies)

## 設定 Auto Scaling 群組刪除保護
<a name="asg-deletion-protection"></a>

 刪除保護是一種資源層級設定，可防止 Amazon EC2 Auto Scaling 群組意外刪除。啟用時，刪除保護會阻止 [ DeleteAutoScalingGroup ](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteAutoScalingGroup.html) API 操作成功，要求您先將刪除保護設定更新為較不嚴格的層級，才能刪除 Auto Scaling 群組。

Amazon EC2 Auto Scaling 提供三種層級的刪除保護：

**無** （預設）  
 未啟用刪除保護，這表示您的 Auto Scaling 群組可以使用或不使用 `ForceDelete`選項來刪除。使用 `ForceDelete` 時，由 Auto Scaling 群組管理的所有 Amazon EC2 執行個體也會強制終止，而不會執行終止生命週期關聯。

**防止強制刪除**  
 使用 `ForceDelete`選項時，無法刪除 Auto Scaling 群組。此組態允許刪除空的 Auto Scaling 群組 （沒有執行個體的群組）。對於您想要防止大量執行個體終止，但允許清除空白群組的生產工作負載，建議使用此選項。

**防止所有刪除**  
 無論是否使用 `ForceDelete`選項，都無法刪除 Auto Scaling 群組。此選項提供最強大的保護，防止意外刪除。它需要明確停用刪除保護，才能刪除 Auto Scaling 群組。對於應該很少刪除或永遠不會刪除的任務關鍵 Auto Scaling 群組，建議使用此選項。

### 刪除保護的運作方式
<a name="deletion-protection-how-it-works"></a>

 當您嘗試啟用刪除保護的 [ DeleteAutoScalingGroup ](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DeleteAutoScalingGroup.html) API 操作時：

1.  Amazon EC2 Auto Scaling 會在處理請求之前驗證刪除保護設定。

1.  如果設定的刪除保護層級封鎖刪除嘗試，Amazon EC2 Auto Scaling 會傳回 `ValidationError`。

1.  您的 Auto Scaling 群組及其 Amazon EC2 執行個體保持不變。

1.  您必須先將刪除保護設定更新為較不嚴格的層級，才能刪除 Auto Scaling 群組。

 刪除保護不會阻止其他操作，例如：
+  更新 Auto Scaling 群組組態。
+  終止個別執行個體。
+  擴展操作 （手動或自動）。
+  暫停或繼續程序。

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

### 設定刪除保護
<a name="configure-deletion-protection"></a>

 您可以在建立 Auto Scaling 群組或更新現有 Auto Scaling 群組的設定時設定刪除保護。

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

**建立具有刪除保護的 Auto Scaling 群組**

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

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1. 完成 Auto Scaling 群組的組態步驟。

1. 在**設定群組大小和擴展**頁面上，展開**其他設定**。

1. 對於 **Auto Scaling 群組刪除保護**，請選擇所需的保護層級：
   + **無** - 無刪除保護 （預設）
   + **防止強制刪除** - 封鎖強制刪除操作
   + **防止所有刪除** - 封鎖所有刪除操作

1. 完成剩餘的步驟以建立 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. 選擇 **Actions** (動作)、**Edit** (編輯)。

1. **在其他設定**下，更新 **Auto Scaling 群組刪除保護**設定。

1. 選擇**更新**。

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

**建立具有刪除保護的 Auto Scaling 群組**  
使用 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令搭配 `--deletion-protection` 參數：

```
aws autoscaling create-auto-scaling-group \
    --auto-scaling-group-name my-asg \
    --launch-template LaunchTemplateName=my-template,Version='$Latest' \
    --min-size 1 \
    --max-size 5 \
    --desired-capacity 2 \
    --vpc-zone-identifier "subnet-12345678,subnet-87654321" \
    --deletion-protection prevent-force-deletion
```

的有效值`--deletion-protection`為： `none` \$1 `prevent-force-deletion` \$1 `prevent-all-deletion`

**更新現有 Auto Scaling 群組的刪除保護**  
使用 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令：

```
aws autoscaling update-auto-scaling-group \
    --auto-scaling-group-name my-asg \
    --deletion-protection prevent-all-deletion
```

**停用刪除保護**  
將刪除保護設定為 `none`：

```
aws autoscaling update-auto-scaling-group \
    --auto-scaling-group-name my-asg \
    --deletion-protection none
```

**驗證刪除保護狀態**  
使用 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令：

```
aws autoscaling describe-auto-scaling-groups \
    --auto-scaling-group-names my-asg
```

------

## 使用 IAM 政策控制刪除許可
<a name="deletion-protection-iam-policies"></a>

 使用 AWS Identity and Access Management (IAM) 政策來控制哪些使用者和角色可以刪除 Auto Scaling 群組。IAM 型控制項透過限制身分層級的許可，提供額外的安全層。

當您想要執行下列動作時，IAM 政策特別有用：
+  允許不同使用者存取不同層級的 Auto Scaling 操作。
+  防止特定使用者使用 `ForceDelete`選項，即使他們可以執行其他 Auto Scaling 操作。
+  限制特定 Auto Scaling 群組的刪除許可。

 只有在群組有標籤 `environment=development` 時，下列政策才允許刪除 Auto Scaling 群組。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": "autoscaling:DeleteAutoScalingGroup",
      "Resource": "*",
      "Condition": {
          "StringEquals": { "aws:ResourceTag/environment": "development" }
      }
   }]
}
```

------

 下列政策使用 `autoscaling:ForceDelete`條件金鑰來控制對 `DeleteAutoScalingGroup` API 動作的存取。這可防止某些使用者使用 `ForceDelete`操作，這會終止 Auto Scaling 群組中的所有 Amazon EC2 執行個體。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Deny",
        "Action": "autoscaling:DeleteAutoScalingGroup",
        "Resource": "*",
        "Condition": {
            "Bool": {
                "autoscaling:ForceDelete": "true"
            }
        }
    }]
}
```

------

 或者，如果您不使用條件金鑰來控制 Auto Scaling 群組的存取權，則可以指定 `Resource` 元素中資源的 ARN 來控制存取權。

 下列政策提供使用者使用 `DeleteAutoScalingGroup` API 動作的許可，但僅適用於名稱開頭為 的 Auto Scaling 群組`devteam-`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "autoscaling:DeleteAutoScalingGroup",
            "Resource": "arn:aws:autoscaling:us-east-1:111122223333:autoScalingGroup:*:autoScalingGroupName/devteam-*"
        }
    ]
}
```

------

 您也可以將多個 ARN 包含在清單中來加以指定。包含 UUID 以確保將存取權授予特定 Auto Scaling 群組。新群組的 UUID 與同名之已刪除群組的 UUID 不同。

```
"Resource": [
    "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1",
    "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2",
    "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3"
]
```

 如需 Amazon EC2 Auto Scaling IAM 政策的其他範例，包括控制刪除許可的政策，請參閱 [身分型政策範例](security_iam_id-based-policy-examples.md)。