

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

# Auto Scaling 群組區域轉移
<a name="ec2-auto-scaling-zonal-shift"></a>

區域轉移是 Amazon Application Recovery Controller (ARC) 中的功能。使用區域轉移，您可以透過單一動作，快速從可用區域中的應用程式受損復原。當您為 Auto Scaling 群組啟用區域轉移時，該群組會向 ARC 區域轉移服務註冊。然後，您可以使用 AWS 管理主控台或 API 啟動區域轉移 AWS CLI，而 Auto Scaling 群組會將具有作用中區域轉移的可用區域視為受損。

## Auto Scaling 群組區域轉移概念
<a name="asg-zonal-shift-concepts"></a>

在繼續之前，請確定您已熟悉與 ARC 區域轉移整合相關的下列核心概念。

**ARC 區域轉移**  
當您啟用此功能時，Auto Scaling 可以向 ARC 區域轉移註冊 Auto Scaling 群組。註冊後，您可以使用 [ARC `ListManagedResources`](https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListManagedResources.html) API 檢視資源。如需詳細資訊，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的 [ARC 中的區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.html)。

**可用區域重新平衡**  
Auto Scaling 會嘗試在每個可用區域中保持容量平衡。當可用區域之間發生不平衡時，Auto Scaling 會自動嘗試修正不平衡。如需詳細資訊，請參閱[執行個體分佈](auto-scaling-benefits.md#AutoScalingBehavior.Rebalancing)。

**動態擴展**  
動態擴展會根據您使用擴展政策選擇的指標，擴展 Auto Scaling 群組所需的容量。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 動態擴展](as-scale-based-on-demand.md)。

**運作狀態檢查**  
Auto Scaling 會定期檢查 Auto Scaling 群組內所有執行個體的運作狀態，以確保它們正在執行且狀態良好。偵測到運作狀態不佳的執行個體時，Auto Scaling 會將其標記為取代。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

**執行個體重新整理**  
您可以使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體。啟動執行個體重新整理後，Auto Scaling 會嘗試取代 Auto Scaling 群組中的所有執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。

**預先擴展**  
您可以容忍單一可用區域的遺失，因為您在應用程式的剩餘可用區域中有足夠的容量。

**向外擴展**  
當您增加 Auto Scaling 群組的所需容量時，Auto Scaling 會嘗試啟動其他執行個體以符合新的所需容量。根據預設，Auto Scaling 會以平衡的方式啟動執行個體，以維持 Auto Scaling 群組中每個已啟用可用區域的相同容量。

## Auto Scaling 群組的區域轉移運作方式
<a name="asg-zonal-shift-how-it-works"></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 將延長區域轉移作用中時延遲的任何執行個體重新整理程序的逾時。

下表說明在 中觸發區域轉移時，每個選項的運作狀態檢查行為`us-east-1a`。


| 可用區域運作狀態檢查行為選擇受損 | 運作狀態檢查行為 | 
| --- | --- | 
|  取代運作狀態不佳  |  在所有可用區域 (`us-east-1a`、 `us-east-1b`和 ) 中，會取代運作狀態不佳的執行個體`us-east-1c`。  | 
|  忽略運作狀態不佳  |  在 `us-east-1b`和 中，會取代看起來運作狀態不佳的執行個體`us-east-1c`。執行個體不會在可用區域中取代為作用中區域轉移 (`us-east-1a`)。  | 

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

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

對於預先擴展的客戶，我們也建議執行下列動作：
+ 選取**忽略運作狀態不佳**做為受損可用區域的運作狀態檢查行為，因為您在受損事件期間不需要取代運作狀態不佳的執行個體。
+ 在 ARC 中為您的 Auto Scaling 群組使用區域自動轉移。ARC 中的區域自動轉移功能允許 在 AWS 偵測到可用區域中的損害時，將資源的流量 AWS 移離可用區域。如需詳細資訊，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的 [ARC 中的區域自動轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.html)。

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

如需搭配 Auto Scaling 群組使用區域轉移的詳細資訊，請參閱[搭配 Amazon EC2 Auto Scaling 使用區域轉移](https://aws.amazon.com/blogs/compute/using-zonal-shift-with-amazon-ec2-auto-scaling/) AWS 的運算部落格。

# 使用 AWS 管理主控台 或 啟用區域轉移 AWS CLI
<a name="asg-zonal-shift-enable"></a>

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

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

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

1. 遵循 中的指示[使用啟動範本建立 Auto Scaling 群組](create-asg-launch-template.md)並完成程序中的每個步驟，直到步驟 10。

1. 在**與其他 服務整合**頁面上，針對**應用程式復原控制器 (ARC) 區域轉移**，選取核取方塊以啟用區域轉移。

1. 針對**運作狀態檢查行為**，選擇忽略運作狀態不佳或取代運作狀態不佳。如需詳細資訊，請參閱[Auto Scaling 群組的區域轉移運作方式](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)。

1. 繼續[使用啟動範本建立 Auto Scaling 群組](create-asg-launch-template.md)中的步驟。

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

**在新群組上啟用區域轉移 (AWS CLI)**  
將 `--availability-zone-impairment-policy` 參數新增至 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-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 群組的區域轉移運作方式](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)。

下列範例會在名為 的新 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. 針對**運作狀態檢查行為**，選擇忽略運作狀態不佳或取代運作狀態不佳。如需詳細資訊，請參閱[Auto Scaling 群組的區域轉移運作方式](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)。

1. 選擇**更新**。

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

**在現有群組上啟用區域轉移 (AWS CLI)**  
將 `--availability-zone-impairment-policy` 參數新增至 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/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 群組的區域轉移運作方式](ec2-auto-scaling-zonal-shift.md#asg-zonal-shift-how-it-works)。

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

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

------