

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 应用程序负载均衡器的可用区转移
<a name="zonal-shift"></a>

可用区转移和可用区自动转移都是 Amazon 应用程序恢复控制器（ARC）的功能。使用可用区转移时，只需一个操作即可将流量从受损的可用区转移出去。这样，您就可以继续从 AWS 区域中的其他运行状况良好的可用区运行。

使用 zonal autoshift，您可以授权 AWS 在活动期间代表您从可用区域转移应用程序的资源流量，以帮助缩短恢复时间。 AWS 当内部监控显示存在可能影响客户的可用区域受损时，将启动自动换档。 AWS 启动自动切换时，您为区域自动切换配置的资源的应用程序流量开始从可用区转移出去。

当您启动可用区转移时，负载均衡器会停止向受影响的可用区发送资源的新流量。ARC 会立即创建可用区转移。但是，可用区中正在进行的现有连接也可能需要短暂的时间才能结束，具体取决于客户端行为和连接重用情况。根据您的 DNS 设置和其他因素，现有连接可能只需几分钟即可完成，也可能需要更长时间。有关更多信息，请参阅《*Amazon 应用程序恢复控制器（ARC）开发人员指南*》中的 [Limit the time that clients stay connected to your endpoints](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>
+ 可用区转移默认处于禁用状态，并且必须在每个应用程序负载均衡器上启用。有关更多信息，请参阅 [为应用程序负载均衡器启用可用区转移](enable-zonal-shift.md)。
+ 只能为单个可用区中的特定负载均衡器启动可用区转移。无法为多个可用区启动可用区转移。
+ AWS 当多个基础设施问题影响服务时，主动从 DNS 中删除区域负载均衡器 IP 地址。在开始可用区转移之前，请务必检查当前的可用区容量。如果您的负载均衡器已关闭跨可用区负载均衡，而您使用可用区转移来删除可用区负载均衡器 IP 地址，则受可用区转移影响的可用区也会失去目标容量。

有关更多信息，请参阅《Amazon 应用程序恢复控制器（ARC）开发人员指南》中的 [Best practices for zonal shifts in ARC](https://docs.aws.amazon.com/r53recovery/latest/dg/route53-arc-best-practices.zonal-shifts.html)**。

## 跨可用区负载均衡
<a name="cross-zone-enabled"></a>

在启用跨可用区负载均衡的应用程序负载均衡器上启动可用区转移时，受影响可用区中指向目标的所有流量都将被阻止，并且可用区 IP 地址也将从 DNS 中移除。

**优点：**
+ 可在发生可用区故障时更快恢复。
+ 可在某个可用区中检测到故障时将流量转移到正常的可用区。
+ 可通过模拟和识别故障来测试应用程序完整性，预防计划外停机时间。

## 可用区转移管理覆盖
<a name="admin-override"></a>

属于应用程序负载均衡器的目标包括一个独立于 `TargetHealth` 状态的新状态 `AdministrativeOverride`。

为应用程序负载均衡器启动可用区转移后，转出的可用区内的所有目标都将视为被管理覆盖。应用程序负载均衡器将停止向被管理覆盖的目标路由新流量。现有连接将保持不变，直至其自然终止。

可能的 `AdministrativeOverride` 状态包括：

**unknown**  
由于内部错误，无法传播状态

**no\$1override**  
目标上当前没有活动的覆盖

**zonal\$1shift\$1active**  
可用区转移在目标可用区处于活动状态

# 为应用程序负载均衡器启用可用区转移
<a name="enable-zonal-shift"></a>

可用区转移默认处于禁用状态，并且必须在每个应用程序负载均衡器上启用。这确保了您仅能使用所需的特定应用程序负载均衡器来启动可用区转移。有关更多信息，请参阅 [应用程序负载均衡器的可用区转移](zonal-shift.md)。

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

**启用可用区转移**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择该应用程序负载均衡器。

1. 在**属性**选项卡上，选择**编辑**。

1. 在**可用区路由配置**部分，对于 **ARC 可用区转移集成**，请选择 **启用**。

1. 选择**保存更改**。

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

**要启用可用区转移**  
使用带 `zonal_shift.config.enabled` 属性的 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html) 命令。

```
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"
```

------

# 为应用程序负载均衡器启动可用区转移
<a name="start-zonal-shift"></a>

ARC 中的区域切换允许您暂时将受支持资源的流量从可用区移开，这样您的应用程序就可以继续在某个 AWS 区域中的其他可用区正常运行。

**先决条件**  
在开始之前，请确认您已为负载均衡器负载均衡器[启用可用区转移](enable-zonal-shift.md#enable-zonal-shift.title)。

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

本程序说明了如何使用 Amazon EC2 控制台来启动可用区转移。有关使用 ARC 控制台启动可用区转移的步骤，请参阅《*Amazon 应用程序恢复控制器（ARC）开发人员指南*》中的 [Starting a zonal shift](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 Balancers**（负载均衡器）。

1. 选择该应用程序负载均衡器。

1. 在**集成**选项卡中展开 **Amazon 应用程序恢复控制器（ARC）**，然后选择**启动可用区转移**。

1. 选择要将流量移离的可用区。

1. 选择或输入可用区转移的到期时间。可用区转移最初可以从 1 分钟设置为三天（72 小时）。

   所有可用区转移都是暂时的。您必须设置过期时间，但可以稍后更新活跃转移以设置新的过期时间。

1. 输入注释。您可以稍后更新可用区转移以编辑注释。

1. 选中该复选框以确认启动可用区转移，这会将流量移离该可用区，从而减少应用程序的容量。

1. 选择**确认**。

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

**启动可用区转移**  
使用 Amazon 应用程序恢复控制器 (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"
```

------

# 为应用程序负载均衡器更新可用区转移
<a name="update-zonal-shift"></a>

您可以更新可用区转移，以设置新的到期时间，也可以编辑或替换可用区转移的注释。

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

本程序说明了如何使用 Amazon EC2 控制台来更新可用区转移。有关使用 Amazon 应用程序恢复控制器（ARC）控制台更新可用区转移的步骤，请参阅《*Amazon 应用程序恢复控制器（ARC）开发人员指南*》中的 [Updating a zonal shift](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 Balancers**（负载均衡器）。

1. 选择具有活跃可用区转移的应用程序负载均衡器。

1. 在**集成**选项卡中，展开 **Amazon Application Recovery Controller（ARC）**，然后选择**更新可用区转移**。

   此操作将打开 ARC 控制台以继续更新流程。

1. （可选）对于**设置可用区转移到期时间**，可以选择或输入到期时间。

1. （可选）对于**注释**，可以选择编辑现有注释或输入新注释。

1. 选择**更新**。

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

**更新可用区转移**  
使用 Amazon 应用程序恢复控制器 (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"
```

------

# 为应用程序负载均衡器取消可用区转移
<a name="cancel-zonal-shift"></a>

在可用区转移到期之前，您可以随时取消它。你可以取消你启动的区域移动，也可以取消为区域自动移位练习跑而 AWS 开始的区域移动。

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

本程序说明了如何使用 Amazon EC2 控制台来取消可用区转移。有关使用 Amazon 应用程序恢复控制器（ARC）控制台取消可用区转移的步骤，请参阅《*Amazon 应用程序恢复控制器（ARC）开发人员指南*》中的 [Canceling a zonal shift](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 Balancers**（负载均衡器）。

1. 选择具有活跃可用区转移的应用程序负载均衡器。

1. 在**集成**选项卡中的 **Amazon 应用程序恢复控制器（ARC）**下，选择**取消可用区转移**。

   此操作将打开 ARC 控制台以继续取消流程。

1. 选择 **Cancel zonal shift**（取消可用区转移）。

1. 当系统提示进行确认时，选择 **Confirm**。

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

**取消可用区转移**  
使用 Amazon 应用程序恢复控制器 (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
```

------