

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

# Application Load Balancer 的區域轉移
<a name="zonal-shift"></a>

區域轉移和區域自動轉移是 Amazon Application Recovery Controller (ARC) 的功能。透過區域轉移，您可以透過單一動作將流量從受損的可用區域轉移。如此一來，您就可以繼續從 AWS 區域中其他運作狀況良好的可用區域進行操作。

使用區域自動轉移時，您授權 AWS 代表您在事件期間從可用區域轉移應用程式的資源流量，以協助縮短復原時間。當內部監控指出有可能影響客戶的可用區域受損時， 會 AWS 啟動自動轉移。當 AWS 啟動自動轉移時，您為區域自動轉移設定之資源的應用程式流量會開始從可用區域轉移。

當您開始區域轉移時，負載平衡器會停止將資源的新流量傳送至受影響的可用區域。ARC 會立即建立區域轉移。不過，根據用戶端行為和連線重複使用，在可用區域中現有的進行中連線可能需要一小段時間才能完成。根據您的 DNS 設定和其他因素，現有的連線可能會在幾分鐘內完成，或者可能需要更長的時間。如需詳細資訊，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的[限制用戶端與您的端點保持連線的時間](https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.zonal-shifts.html#arc-zonal-shift.existing-connections)。

**Topics**
+ [開始之前](#zonal-shift-before-you-begin)
+ [跨區域負載平衡](#cross-zone-enabled)
+ [管理覆寫](#admin-override)
+ [啟用區域轉移](enable-zonal-shift.md)
+ [開始區域轉移](start-zonal-shift.md)
+ [更新區域轉移](update-zonal-shift.md)
+ [取消區域轉移](cancel-zonal-shift.md)

## 開始區域轉移之前
<a name="zonal-shift-before-you-begin"></a>
+ 區域轉移預設為停用，且必須在每個 Application Load Balancer 上啟用。如需詳細資訊，請參閱[為您的 Application Load Balancer 啟用區域轉移](enable-zonal-shift.md)。
+ 您只能針對單一可用區域，啟動特定負載平衡器的區域轉移。您無法為多個可用區域啟動區域轉移。
+ AWS 當多個基礎設施問題影響 服務時， 會主動從 DNS 移除區域負載平衡器 IP 地址。在啟動區域轉移之前，請務必檢查目前的可用區域容量。如果您的負載平衡器已關閉跨區域負載平衡，而您使用區域轉移來移除區域負載平衡器 IP 地址，則受區域轉移影響的可用區域也會失去目標容量。

如需詳細資訊，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的 [ARC 中的區域轉移最佳實務](https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.zonal-shifts.html)。

## 跨區域負載平衡
<a name="cross-zone-enabled"></a>

在啟用跨區域負載平衡的 Application Load Balancer 上啟動區域轉移時，對目標的所有流量都會在受影響的可用區域中遭到封鎖，並從 DNS 中移除區域 IP 地址。

**優點：**
+ 從可用區域故障中更快速復原。
+ 在可用區域中偵測到故障時，能夠將流量移至運作狀態良好的可用區域。
+ 您可以透過模擬和識別故障來測試應用程式完整性，以防止意外停機時間。

## 區域轉移管理覆寫
<a name="admin-override"></a>

屬於 Application Load Balancer 的目標包含獨立`AdministrativeOverride`於 `TargetHealth` 狀態的新狀態 。

為 Application Load Balancer 啟動區域轉移時，區域內所有要移離的目標都會視為在管理上遭到覆寫。Application Load Balancer 會停止將新流量路由到管理上覆寫的目標。現有的連線會保持不變，直到它們以有機方式關閉為止。

可能`AdministrativeOverride`的狀態為：

**不明**  
由於內部錯誤，無法傳播狀態

**no\$1override**  
目標上目前沒有作用中的覆寫

**zonal\$1shift\$1active**  
區域轉移在目標可用區域中處於作用中狀態

# 為您的 Application Load Balancer 啟用區域轉移
<a name="enable-zonal-shift"></a>

區域轉移預設為停用，且必須在每個 Application Load Balancer 上啟用。這可確保您只能使用您想要的特定 Application Load Balancer 啟動區域轉移。如需詳細資訊，請參閱[Application Load Balancer 的區域轉移](zonal-shift.md)。

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

**啟用區域轉移**

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

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

1. 選取 Application Load Balancer。

1. 在**屬性**索引標籤中，選擇**編輯**。

1. 在**可用區域路由組態**下，針對 **ARC 區域轉移整合**，選擇**啟用**。

1. 選擇**儲存變更**。

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

**啟用區域轉移**  
以 [ 屬性來使用 ](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)modify-load-balancer-attributes`zonal_shift.config.enabled` 命令。

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes "Key=zonal_shift.config.enabled,Value=true"
```

------
#### [ CloudFormation ]

**啟用區域轉移**  
更新 [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html) 資源以包含 `zonal_shift.config.enabled` 屬性。

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      IpAddressType: dualstack
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes:
        -Key: "zonal_shift.config.enabled"
         Value: "true"
```

------

# 為您的 Application Load Balancer 啟動區域轉移
<a name="start-zonal-shift"></a>

ARC 中的區域轉移可讓您暫時將支援資源的流量移離可用區域，讓您的應用程式可以繼續與 AWS 區域中的其他可用區域正常運作。

**先決條件**  
開始之前，請確認您[已啟用負載平衡器的區域轉移](enable-zonal-shift.md#enable-zonal-shift.title)。

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

此程序說明如何使用 Amazon EC2 主控台啟動區域轉移。如需使用 ARC 主控台啟動區域轉移的步驟，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的[啟動區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)。

**啟動區域轉移**

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

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

1. 選取 Application Load Balancer。

1. 在**整合**索引標籤上，展開 **Amazon Application Recovery Controller (ARC)**，然後選擇**開始區域轉移**。

1. 選取要將流量移出的可用區域。

1. 選擇或輸入區域轉移的到期日。區域轉移最初可設定為 1 分鐘至三天 (72 小時)。

   所有區域轉移都是暫時的。您必須設定到期日，但您可以稍後更新作用中的轉移以設定新的到期日。

1. 輸入註解。您可以稍後更新區域轉移來編輯註解。

1. 選取核取方塊，確認啟動區域轉移可透過將流量移離可用區域來減少應用程式的容量。

1. 選擇**確認**。

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

**啟動區域轉移**  
使用 Amazon Application Recovery Controller (ARC) [start-zonal-shift](https://docs.aws.amazon.com/cli/latest/reference/arc-zonal-shift/start-zonal-shift.html) 命令。

```
aws arc-zonal-shift start-zonal-shift \
    --resource-identifier load-balancer-arn \
    --away-from use2-az2 \
    --expires-in 2h \
    --comment "zonal shift due to scheduled maintenance"
```

------

# 更新 Application Load Balancer 的區域轉移
<a name="update-zonal-shift"></a>

您可以更新區域轉移以設定新的過期，或編輯或取代區域轉移的註解。

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

此程序說明如何使用 Amazon EC2 主控台更新區域轉移。如需使用 Amazon Application Recovery Controller (ARC) 主控台更新區域轉移的步驟，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的[更新區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)。

**更新區域轉移**

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

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

1. 選取具有作用中區域轉移的 Application Load Balancer。

1. 在**整合**索引標籤上，展開 **Amazon Application Recovery Controller (ARC)**，然後選擇**更新區域轉移**。

   這會開啟 ARC 主控台以繼續更新程序。

1. （選用） 對於**設定區域轉移過期**，選取或輸入過期。

1. （選用） 對於**註解**，選擇性編輯現有的註解或輸入新的註解。

1. 選擇**更新**。

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

**更新區域轉移**  
使用 Amazon Application Recovery Controller (ARC) [update-zonal-shift](https://docs.aws.amazon.com/cli/latest/reference/arc-zonal-shift/update-zonal-shift.html) 命令。

```
aws arc-zonal-shift update-zonal-shift \
    --zonal-shift-id 9ac9ec1e-1df1-0755-3dc5-8cf57EXAMPLE \
    --expires-in 1h \
    --comment "extending zonal shift for scheduled maintenance"
```

------

# 取消 Application Load Balancer 的區域轉移
<a name="cancel-zonal-shift"></a>

您可以在區域轉移過期之前隨時取消區域轉移。您可以取消您啟動的區域轉移，或為區域自動轉移實務執行的資源 AWS 啟動的區域轉移。

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

此程序說明如何使用 Amazon EC2 主控台取消區域轉移。如需使用 Amazon Application Recovery Controller (ARC) 主控台取消區域轉移的步驟，請參閱《*Amazon Application Recovery Controller (ARC) 開發人員指南*》中的[取消區域轉移](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.start-cancel.html)。

**取消區域轉移**

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

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

1. 選取具有作用中區域轉移的 Application Load Balancer。

1. 在**整合**索引標籤的 **Amazon Application Recovery Controller (ARC)** 下，選擇**取消區域轉移**。

   這會開啟 ARC 主控台以繼續取消程序。

1. 選擇**取消區域轉移**。

1. 出現確認提示時，選擇 **Confirm (確認)**。

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

**取消區域轉移**  
使用 Amazon Application Recovery Controller (ARC) [cancel-zonal-shift](https://docs.aws.amazon.com/cli/latest/reference/arc-zonal-shift/cancel-zonal-shift.html) 命令。

```
aws arc-zonal-shift cancel-zonal-shift \
    --zonal-shift-id 9ac9ec1e-1df1-0755-3dc5-8cf57EXAMPLE
```

------