

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

# Amazon EC2 Auto Scaling 群組
<a name="arc-zonal-shift.resource-types.ec2-auto-scaling-groups"></a>

Amazon EC2 Auto Scaling 群組包含一組 Amazon EC2 執行個體，這些執行個體被視為邏輯分組，用於自動擴展和管理。Auto Scaling 群組也讓您可以使用 Amazon EC2 Auto Scaling 功能，例如運作狀態檢查替換和擴展政策。維持 Auto Scaling 群組中的執行個體數量和自動擴展都是 Amazon EC2 Auto Scaling 服務的核心功能。

## 對 Auto Scaling 群組使用區域轉移
<a name="using-asg-zs"></a>

若要啟用區域轉移，請使用下列其中一種方法。

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

**在新群組上啟用區域轉移 （主控台）**

1. 遵循[使用啟動範本建立 Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)中的指示，並完成程序中的每個步驟，直到步驟 10。

1. 在**與其他 服務整合**頁面上，針對 **ARC 區域轉移**，選取核取方塊以啟用區域轉移。

1. 針對**運作狀態檢查行為**，選擇忽略運作狀態不佳或取代運作狀態不佳。如果設定為 `replace-unhealthy`，運作狀態不佳的執行個體將在可用區域中以作用中區域轉移取代。如果設為 `ignore-unhealthy`，則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

1. 繼續執行[使用啟動範本建立 Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template)中的步驟。

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

**在新群組上啟用區域轉移 (AWS CLI)**  
將 `--availability-zone-impairment-policy` 參數新增至 [create-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/create-auto-scaling-group.html) 命令。

`--availability-zone-impairment-policy` 參數有兩個選項：
+ **ZonalShiftEnabled** – 如果設定為 `true`，Auto Scaling 會將 Auto Scaling 群組註冊為 ARC 區域轉移，您可以在 [ARC 主控台上啟動、更新或取消區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)。如果設定為 `false`，Auto Scaling 會從 ARC 區域轉移取消註冊 Auto Scaling 群組。您必須已啟用區域轉移，才能將 設定為 `false`。
+ **ImpairedZoneHealthCheckBehavior** – 如果設定為 `replace-unhealthy`，運作狀態不佳的執行個體將在可用區域中取代為作用中區域轉移。如果設為 `ignore-unhealthy`，則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

下列範例會在名為 的新 Auto Scaling 群組上啟用區域轉移`{{my-asg}}`。

```
aws autoscaling create-auto-scaling-group \
  --launch-template LaunchTemplateName={{my-launch-template}},Version='{{1}}' \
  --auto-scaling-group-name {{my-asg}} \
  --min-size {{1}} \
  --max-size {{10}} \
  --desired-capacity {{5}} \
  --availability-zones {{us-east-1a}} {{us-east-1b}} {{us-east-1c}} \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": {{true}},
      "ImpairedZoneHealthCheckBehavior": {{IgnoreUnhealthy}}       
    }'
```

------

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

**在現有群組上啟用區域轉移 （主控台）**

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

1. 在畫面頂端的導覽列上，選擇您在其中建立 Auto Scaling 群組 AWS 區域 的 。

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

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

1. 在**整合**索引標籤的 **ARC 區域轉移**下，選擇**編輯**。

1. 選取核取方塊以啟用區域轉移。

1. 針對**運作狀態檢查行為**，選擇**忽略運作狀態不佳**或**取代運作狀態不佳**。
   + 如果運作狀態檢查行為設定為忽略運作狀態不佳，則運作狀態不佳的執行個體*不會*在可用區域中以作用中區域轉移取代。
   + 如果運作狀態檢查行為設定為取代運作狀態不佳，則運作狀態不佳的執行個體會在可用區域中以作用中區域轉移取代。

1. 選擇**更新**。

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

**在現有群組上啟用區域轉移 (AWS CLI)**  
將 `--availability-zone-impairment-policy` 參數新增至 [update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。

`--availability-zone-impairment-policy` 參數有兩個選項：
+ **ZonalShiftEnabled** – 如果設定為 `TRUE`，Auto Scaling 會使用 ARC 區域轉移註冊 Auto Scaling 群組，您可以在 ARC 主控台上[啟動、更新或取消區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)。如果設定為 `FALSE`，Auto Scaling 會從 ARC 區域轉移取消註冊 Auto Scaling 群組。您必須已啟用區域轉移，才能將其設定為 `FALSE`。
+ **ImpairedZoneHealthCheckBehavior** – 如果設定為 `replace-unhealthy`，運作狀態不佳的執行個體將在可用區域中以作用中區域轉移取代。如果設為 `ignore-unhealthy`，則運作狀態不佳的執行個體不會在可用區域中以作用中區域轉移取代。

下列範例會在指定的 Auto Scaling 群組上啟用區域轉移。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --availability-zone-impairment-policy '{
      "ZonalShiftEnabled": {{true}},
      "ImpairedZoneHealthCheckBehavior": {{IgnoreUnhealthy}}       
    }'
```

------

若要啟動區域轉移，請參閱 [啟動、更新或取消區域轉移](arc-zonal-shift.start-cancel.md)。

## Auto Scaling 群組的區域轉移運作方式
<a name="how-it-works-asg-zs"></a>

假設您有具有下列可用區域的 Auto Scaling 群組：
+ `us-east-1a`
+ `us-east-1b`
+ `us-east-1c`

您注意到 中的失敗`us-east-1a`並開始區域轉移。在 中啟動區域轉移時，會發生下列行為`us-east-1a`。
+ **向外擴展** – Auto Scaling 會在運作狀態良好的可用區域 (`us-east-1b` 和 ) 中啟動所有新的容量請求`us-east-1c`。
+ **動態擴展** – Auto Scaling 可防止擴展政策減少所需的容量。Auto Scaling 不會阻止擴展政策增加所需的容量。
+ **執行個體重新整理** – Auto Scaling 會對作用中區域轉移期間延遲的任何執行個體重新整理程序延長逾時。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/r53recovery/latest/dg/arc-zonal-shift.resource-types.ec2-auto-scaling-groups.html)

## 使用區域轉移的最佳實務
<a name="best-practices-asg-zs"></a>

若要在使用區域轉移時維持應用程式的高可用性，我們建議採用下列最佳實務。
+ 監控 EventBridge 通知，以判斷何時持續發生可用區域受損事件。如需詳細資訊，請參閱[使用 EventBridge 自動化 Amazon EC2 Auto Scaling](https://docs.aws.amazon.com//autoscaling/ec2/userguide/automating-ec2-auto-scaling-with-eventbridge.html)。
+ 使用具有適當閾值的擴展政策，以確保您有足夠的容量來容忍遺失可用區域。
+ 設定運作狀態最低百分比為 100 的執行個體維護政策。使用此設定，Auto Scaling 會等待新的執行個體準備就緒，再終止運作狀態不佳的執行個體。

對於預先擴展的客戶，我們也建議使用下列項目：
+ 選取**忽略運作狀態不佳**做為受損可用區域的運作狀態檢查行為，因為您在受損事件期間不需要取代運作狀態不佳的執行個體。
+ 在 Auto Scaling 群組的 ARC 中使用區域自動轉移。中的區域自動轉移功能 Amazon 應用程式復原控制器 (ARC) 可讓 在 AWS 偵測到可用區域中的受損時， AWS 將資源的流量移離可用區域。如需詳細資訊，請參閱[ARC 中的區域自動轉移](arc-zonal-autoshift.md)。

對於具有跨區域停用負載平衡器的客戶，我們也建議：
+ **僅針對您的可用區域分佈使用平衡**。
+ 如果您在 Auto Scaling 群組和負載平衡器上使用區域轉移，請務必先取消 Auto Scaling 群組上的區域轉移。然後，請等到容量在所有可用區域之間達到平衡。 再取消負載平衡器上的區域轉移。
+ 由於啟用區域轉移並使用跨區域停用的負載平衡器時，容量可能會不平衡，因此 Auto Scaling 具有額外的驗證。如果您遵循最佳實務，您可以透過選取 中的核取方塊 AWS 管理主控台 或使用 `CreateAutoScalingGroup`、 或 中的 `skip-zonal-shift-validation`旗標`UpdateAutoScalingGroup`來確認此可能性`AttachTrafficSources`。