

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

# 暫停和繼續 Amazon EC2 Auto Scaling 程序
<a name="as-suspend-resume-processes"></a>

本主題說明如何暫停，然後繼續 Auto Scaling 群組的一或多個程序，以暫時停用特定操作。

當您需要在不受擴展政策或排程動作干擾的情況下調查或疑難排解問題時，暫停程序會很有用。這也有助於防止 Amazon EC2 Auto Scaling 在您變更 Auto Scaling 群組時，將執行個體標示為運作狀態不佳並加以取代。

**Topics**
+ [程序類型](#process-types)
+ [考量事項](suspend-resume-considerations.md)
+ [暫停程序](suspend-processes.md)
+ [繼續程序](resume-processes.md)
+ [暫停程序如何影響其他程序](understand-how-suspending-processes-affects-other-processes.md)

**注意**  
除了您啟動的暫停作業之外，Amazon EC2 Auto Scaling 也可以針對一直無法啟動執行個體的 Auto Scaling 群組，暫停其處理程序。這也稱為*管理暫停*。管理暫停最常應用在嘗試啟動執行個體超過 24 小時，但是皆失敗的 Auto Scaling 群組。您可以繼續執行因管理原因而遭到 Amazon EC2 Auto Scaling 暫停的處理程序。

## 程序類型
<a name="process-types"></a>

暫停繼續功能支援以下程序：
+ `Launch` – 當群組向外擴展，或當 Amazon EC2 Auto Scaling 因其他原因選擇啟動執行個體時，例如將執行個體新增至暖集區時，將執行個體新增至 Auto Scaling 群組。
+ `Terminate` – 當群組縮減時，或當 Amazon EC2 Auto Scaling 因其他原因選擇終止執行個體時，例如當執行個體因超過其最長生命週期或運作狀態檢查失敗而終止時，從 Auto Scaling 群組移除執行個體。
+ `AddToLoadBalancer` – 啟動執行個體時，將執行個體新增至連接的負載平衡器目標群組或 Classic Load Balancer。如需詳細資訊，請參閱[使用 Elastic Load Balancing 在 Auto Scaling 群組中分配傳入應用程式流量](autoscaling-load-balancer.md)。
+ `AlarmNotification` – 接受來自與動態擴展政策相關聯的 CloudWatch 警示的通知。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 動態擴展](as-scale-based-on-demand.md)。
+ `AZRebalance` – 當群組變得不平衡時，平衡群組中所有指定可用區域的 EC2 執行個體數量，例如，當先前無法使用的可用區域返回運作狀態良好時。如需詳細資訊，請參閱[重新平衡活動](auto-scaling-benefits.md#AutoScalingBehavior.InstanceUsage)。
+ `HealthCheck` – 檢查執行個體的運作狀態，如果 Amazon EC2 或 Elastic Load Balancing 通知 Amazon EC2 Auto Scaling 執行個體運作狀態不佳，則將執行個體標記為運作狀態不佳。此處理程序會覆寫您手動設定執行個體的運作狀態。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。
+ `InstanceRefresh` – 使用執行個體重新整理功能終止和取代執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。
+ `ReplaceUnhealthy` – 終止標示為運作狀態不佳的執行個體，然後建立新的執行個體來取代它們。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。
+ `ScheduledActions` – 執行您建立的排程擴展動作，或在您建立 AWS Auto Scaling 擴展計劃並開啟預測擴展時為您建立的排程擴展動作。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 排程擴展](ec2-auto-scaling-scheduled-scaling.md)。

# 暫停程序的考量事項
<a name="suspend-resume-considerations"></a>

暫停處理程序之前，請考慮下列事項：
+ 暫停 `AlarmNotification` 可讓您暫時停止群組的目標追蹤、步驟及簡單擴展政策，而不必刪除擴展政策或其關聯的 CloudWatch 警示。若要暫時停止個別擴展政策，請參閱 [停用 Auto Scaling 群組的擴展政策](as-enable-disable-scaling-policy.md)。
+ 您可以選擇暫停 `HealthCheck`和 `ReplaceUnhealthy` 程序以重新啟動執行個體，而不讓 Amazon EC2 Auto Scaling 根據執行個體的運作狀態檢查終止執行個體。不過，如果您需要 Amazon EC2 Auto Scaling 繼續對其餘執行個體執行運作狀態檢查，請改用待命功能。如需詳細資訊，請參閱[從 Auto Scaling 群組暫時移除執行個體](as-enter-exit-standby.md)。
+ 如果暫停 `Launch` 和 `Terminate` 處理程序或 `AZRebalance`，然後變更 Auto Scaling 群組 (例如，透過分開執行個體或變更指定的可用區域)，您的群組會在可用區域間呈現不平衡狀態。若該狀況發生，在您繼續執行暫停的處理程序後，Amazon EC2 Auto Scaling 會在可用區域之間逐步重新分配執行個體。
+ 如果您暫停`Terminate`程序，仍然可以使用 [delete-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-auto-scaling-group.html) 命令搭配強制刪除選項來強制終止執行個體。
+ 暫停`Terminate`程序僅適用於目前處於 `InService` 狀態的執行個體。它不會阻止在其他狀態下終止執行個體，例如 `Pending`，或無法從待命中正常恢復的執行個體。
+ 當呼叫中存在使用 AWS CLI 或 SDKs 描述 Auto Scaling 群組時，可以忽略`RemoveFromLoadBalancerLowPriority`此程序。此程序已棄用，且僅為了回溯相容性而予以保留。

# 暫停程序
<a name="suspend-processes"></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. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Advanced configurations** (進階組態)、**Edit** (編輯)。

1. 對於 **Suspended processes** (暫停處理程序)，選擇要暫停的處理程序。

1. 選擇**更新**。

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

使用以下 [suspend-processes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/suspend-processes.html) 命令來暫停個別處理程序。

```
aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck ReplaceUnhealthy 
```

若要暫停所有處理程序，請忽略 `--scaling-processes` 選項，如下所示。

```
aws autoscaling suspend-processes --auto-scaling-group-name my-asg
```

------

# 繼續程序
<a name="resume-processes"></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. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Advanced configurations** (進階組態)、**Edit** (編輯)。

1. 對於 **Suspended processes** (暫停處理程序)，請移除暫停的處理程序。

1. 選擇**更新**。

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

若要繼續暫停的程序，請使用下列 [resume-processes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/resume-processes.html) 命令。

```
aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck
```

若要繼續執行所有暫停的處理程序，請忽略 `--scaling-processes` 選項，如下所示。

```
aws autoscaling resume-processes --auto-scaling-group-name my-asg
```

------

# 暫停程序如何影響其他程序
<a name="understand-how-suspending-processes-affects-other-processes"></a>

下列各節說明個別暫停不同程序時會發生的情況。

**Topics**
+ [`Launch` 已暫停](#launch-is-suspended)
+ [`Terminate` 已暫停](#terminate-is-suspended)
+ [`AddToLoadBalancer` 已暫停](#addtoloadbalancer-is-suspended)
+ [`AlarmNotification` 已暫停](#alarmnotification-is-suspended)
+ [`AZRebalance` 已暫停](#azrebalance-is-suspended)
+ [`HealthCheck` 已暫停](#healthcheck-is-suspended)
+ [`InstanceRefresh` 已暫停](#instancerefresh-is-suspended)
+ [`ReplaceUnhealthy` 已暫停](#replaceunhealthy-is-suspended)
+ [`ScheduledActions` 已暫停](#scheduledactions-is-suspended)
+ [其他考量](#other-considerations)

## `Launch` 已暫停
<a name="launch-is-suspended"></a>
+ `AlarmNotification` 仍在作用中，但 Auto Scaling 群組無法針對違規警示啟動橫向擴展活動。
+ `ScheduledActions` 在作用中，但 Auto Scaling 群組無法針對任何發生的排定動作啟動擴展活動。
+ `AZRebalance` 停止重新平衡群組。
+ `ReplaceUnhealthy` 繼續終止運作狀態不佳的執行個體，但不啟動替換。當您繼續 `Launch` 處理程序時，Amazon EC2 Auto Scaling 會立即替換在 `Launch` 暫停期間終止的任何執行個體。
+ `InstanceRefresh` 不會取代執行個體。

## `Terminate` 已暫停
<a name="terminate-is-suspended"></a>
+ `AlarmNotification` 仍然作用中，但 Auto Scaling 群組無法針對違規的警示啟動縮減活動。
+ `ScheduledActions` 處於作用中狀態，但 Auto Scaling 群組無法針對發生的任何排程動作啟動縮減活動。
+ `AZRebalance` 仍在作用中，但無法正常運作。它可以啟動新的執行個體，而不會終止舊的執行個體。您的 Auto Scaling 群組最多可以將容量增加到超過上限 10%，因為在進行重新平衡活動時，可允許此種情況發生。您的 Auto Scaling 群組可以維持超過其容量上限，直到您繼續執行 `Terminate` 程序為止。
+ `ReplaceUnhealthy` 非作用中，但不 `HealthCheck`。當 `Terminate` 繼續時，`ReplaceUnhealthy` 處理程序立即開始執行。如果任何執行個體在 `Terminate` 暫停時標示為運作狀態不佳，則會立即替換執行個體。
+ `InstanceRefresh` 不會取代執行個體。

## `AddToLoadBalancer` 已暫停
<a name="addtoloadbalancer-is-suspended"></a>
+ Amazon EC2 Auto Scaling 會啟動執行個體，但不將其新增至負載平衡器目標群組或 Classic Load Balancer。如果您繼續 `AddToLoadBalancer` 程序，當執行個體啟動時，會將新增的執行個體連接至負載平衡器。不過，當程序暫停時，不會新增已啟動的執行個體。您必須手動註冊這些執行個體。

## `AlarmNotification` 已暫停
<a name="alarmnotification-is-suspended"></a>
+ 違反 CloudWatch 警示閾值時，Amazon EC2 Auto Scaling 不會叫用擴展政策。在您繼續 `AlarmNotification` 時，Amazon EC2 Auto Scaling 會以目前違反的警示閾值考量政策。

## `AZRebalance` 已暫停
<a name="azrebalance-is-suspended"></a>
+ Amazon EC2 Auto Scaling 並未嘗試在某些事件後重新分配執行個體。不過，如果發生橫向擴展或縮減事件，擴展程序仍會嘗試平衡可用區域。例如，在向外擴展期間，它會在可用區域中以最少的執行個體啟動執行個體。如果群組在 `AZRebalance` 暫停時變成不平衡，且您繼續此群組，Amazon EC2 Auto Scaling 則會嘗試重新平衡群組。它會先呼叫 `Launch`，然後再呼叫 `Terminate`。
+ `AZRebalance` 暫停時，暖集區不會受到影響。

## `HealthCheck` 已暫停
<a name="healthcheck-is-suspended"></a>
+ Amazon EC2 Auto Scaling 會因 EC2 和 Elastic Load Balancing 運作狀態而停止將執行個體標示為運作狀態不佳。您的自訂運作狀態檢查會繼續正常運作。暫停 `HealthCheck` 後，如果需要，您可以手動設定群組中執行個體的運作狀態，並讓 `ReplaceUnhealthy` 替換。

## `InstanceRefresh` 已暫停
<a name="instancerefresh-is-suspended"></a>
+ Amazon EC2 Auto Scaling 會因執行個體重新整理而停止取代執行個體。如果正在執行執行個體重新整理，則會暫停操作 (不會取消操作)。

## `ReplaceUnhealthy` 已暫停
<a name="replaceunhealthy-is-suspended"></a>
+ Amazon EC2 Auto Scaling 會停止替換標示為運作狀態不佳的執行個體。未通過 EC2 或 Elastic Load Balancing 運作狀態檢查的執行個體仍會被標示為運作狀態不佳。一旦繼續 `ReplaceUnhealthy` 處理程序，Amazon EC2 Auto Scaling 便會立即替換在此處理程序遭到暫停時標示為運作狀態不佳的執行個體。`ReplaceUnhealthy` 程序會先呼叫 `Terminate`，然後再呼叫 `Launch`。

## `ScheduledActions` 已暫停
<a name="scheduledactions-is-suspended"></a>
+ Amazon EC2 Auto Scaling 不會執行預定在暫停期間執行的已排程動作。當您繼續 `ScheduledActions` 時，Amazon EC2 Auto Scaling 僅會考量尚未超過其排程時間的排程動作。

## 其他考量
<a name="other-considerations"></a>

此外，當 `Launch` 或 `Terminate` 暫停時，下列功能可能無法正常運作：
+ **執行個體生命週期上限** – `Launch`或 `Terminate` 暫停時，執行個體生命週期上限功能無法取代任何執行個體。
+ **Spot 執行個體中斷** – 如果 `Terminate` 已暫停，且 Auto Scaling 群組具有 Spot 執行個體，則仍然可以在 Spot 容量不再可用時終止。`Launch` 遭到暫停時，Amazon EC2 Auto Scaling 無法在重新可用時從其他 Spot 執行個體集區，或從相同的 Spot 執行個體集區啟動替換執行個體。
+ **容量重新平衡** – 如果 `Terminate` 已暫停，而您使用容量重新平衡來處理 Spot 執行個體中斷，Amazon EC2 Spot 服務仍然可以在 Spot 容量不再可用時終止執行個體。如果暫停 `Launch`，則 Amazon EC2 Auto Scaling 無法在重新可用時從其他 Spot 執行個體集區，或從相同的 Spot 執行個體集區啟動替換執行個體。
+ **連接和分離執行個體 ** – 暫停 `Launch`和 `Terminate` 時，您可以分離連接至 Auto Scaling 群組的執行個體，但在`Launch`暫停時，您無法將新執行個體連接至群組。
+ **待命執行個體** – 暫停 `Launch`和 `Terminate` 時，您可以將執行個體置於 `Standby` 狀態，但在`Launch`暫停時，您無法將處於 `Standby` 狀態的執行個體傳回 服務。