

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

# Aurora 无服务器扩展执行块
<a name="aurora-serverless-scaling-block"></a>

**类别：**数据库扩展

在区域切换期间，您的目标 Aurora Serverless 集群的 ACU（Aurora 容量单位）设置可能远低于吸收生产流量所需的设置。Aurora Serverless Scaling 执行块会根据源集群的实际使用情况自动计算并向目标集群应用正确的最小和最大 ACU 容量，从而确保您的无服务器数据库能够在不受限制或连接失败的情况下处理传入的工作负载。

## 主要优势
<a name="aurora-serverless-scaling-block-benefits"></a>
+ **Usage-based 容量计算：**Region switch 不是依赖静态配置，而是根据源集群在过去 24 小时内的实际峰值利用率得出目标容量，从而根据实际流量模式为您提供合适的容量。
+ **Cross-engine-type 智能：**无论您的来源是无服务器、已配置还是混合配置，区域交换机都知道如何将源容量转换为目标无服务器集群的相应 ACU 设置。
+ **Percentage-based 扩展 active-active：为主动-主动**架构配置高于 100%（例如 200%）的目标百分比，在这种架构中，目标必须吸收来自两个区域的合并流量。

## 何时使用
<a name="aurora-serverless-scaling-block-when"></a>
+ **Active-passive 使用无服务器备用模式：**您的目标区域以最低 ACU 运行无服务器集群，并且需要在接收生产流量之前向上扩展。
+ **Active-active 故障转移：**两个区域都提供流量，在切换期间，其余区域必须处理合并的负载——使用高于 100% 的目标百分比。
+ **Mixed-engine 全球数据库：**您的来源区域使用预配置的实例，但您的目标地区使用无服务器 — 区域切换会自动处理容量转换。

### Aurora 无服务器扩展与替代方案相比如何
<a name="aurora-serverless-scaling-block-comparison"></a>

如果没有此执行块，客户必须在切换流量之前手动计算 ACU 要求并修改集群设置，这是一个复杂且容易出错的过程，尤其是在源和目标使用不同的引擎类型时。


|  | 方法 | 优点 | 缺点 | 
| --- | --- | --- | --- | 
| 1 | Aurora 无服务器扩展模块 | 根据实际使用情况自动计算，处理跨引擎翻译，基于百分比的控制，与计划编排集成 | 仅向上扩展；修改可能偏离 IaC 的 ACU 设置 | 
| 2 | 手动调节 ACU | 完全控制 | 需要在压力下计算 ACU 等效值；速度慢；容易出错 | 
| 3 | 脚本自动化 | 可自定义 | 必须复制跨引擎翻译逻辑；没有计划评估；维护负担 | 
| 4 | Pre-provisioning （最大 ACU 总是很高） | 没有故障转移延迟 | 昂贵；不利于无服务器的成本效益；在备用区域中浪费资源 | 

当您需要自动的、能感知使用情况的容量扩展来处理跨引擎 ACU 转换的复杂性时，Aurora Serverless Scaling 模块是正确的选择。

## 工作原理
<a name="aurora-serverless-scaling-block-how"></a>

配置 Aurora Serverless Scaling 执行块后，区域切换会确认指定的全局数据库中有一个源集群和一个目标集群。目标容量根据源集群类型确定：
+ **源是无服务器的：**
  + 最小 ACU = 过去 24 小时内观察到的源集群峰值 ACU 利用率（`ServerlessDatabaseCapacity` CloudWatch 指标）
  + 最大 ACU = 过去 24 小时内源集群最大 ACU 的峰值
+ **源已配置：**
  + 将源集群的 EC2 实例内存映射到等效的 ACU（以 GiB 为单位的实例内存 ↓ 2）
  + 将最大 ACU 设置为 256
+ **来源是混合的（已配置 \+ 无服务器）：**
  + 最小 ACU = 预配置实例 ACU 等效值和在 24 小时内观察到的无服务器 ACU 使用率的最大值
  + 最大 ACU = 256

然后，区域切换会应用目标百分比来计算最终值：

```
destination min ACU = round_to_nearest_0.5(targetPercent × source min ACU)
destination max ACU = round_to_nearest_0.5(targetPercent × source max ACU)
```

如果目标集群的当前容量已经达到或高于计算的目标，则区域切换将在不进行更改的情况下完成该步骤。区域切换不会缩小集群容量。当目标集群不是 Serverless 时，该区块将作为空操作成功完成。

对于主动-主动计划，区域切换使用其他已配置的区域作为来源。如果某个区域处于停用状态，则区域切换将使用另一个活动区域作为来源来计算缩放百分比。

**注意**  
执行此区块会修改 Aurora Serverless 集群的最小和最大 ACU 容量设置，如果您通过基础设施即代码工具或其他自动化来管理这些值，则可能会导致配置偏差。确保您的配置管理流程将这些更改考虑在内，以防止意外回滚。

## 配置
<a name="aurora-serverless-scaling-block-config"></a>

在配置 Aurora Serverless Scaling 执行块时，需要输入 Aurora 全球数据库的全局集群标识符以及计划执行期间要扩展的每个区域的数据库集群 ARN。

**重要**  
在配置执行块之前，请确保计划的执行角色具有正确的 IAM 策略。有关更多信息，请参阅 [Aurora 无服务器扩展执行区块示例策略](security_iam_region_switch_aurora_serverless_scaling.md)。

要配置 Aurora Serverless Scaling 执行块，请输入以下值：

1. **步骤名称：**输入名称。

1. **步骤描述（可选）：**输入步骤的描述。

1. **Aurora 全球数据库集群名称：**输入全局集群标识符。

1. ***区域*的集群 ARN：**输入要在计划的每个区域中使用的数据库集群 ARN。

1. **目标百分比（可选）：**输入要将目标集群扩展到的派生源容量的百分比。默认值为 100。对于主动-主动计划，请考虑使用更高的值（例如 200%）来考虑合并流量。

1. **超时：**输入超时值。

然后，选择**保存步骤**。

## 在计划评估中评估的内容
<a name="aurora-serverless-scaling-block-eval"></a>

当区域切换评估您的计划时，区域切换会对您的 Aurora Serverless Scaling 执行块配置和权限执行几项关键检查。区域切换评估可验证两个区域中是否存在 Aurora Serverless 集群，确保它们配置正确且可访问，并记录每个区域的当前容量。它还确认目标区域集群中的最大容量足以处理所需容量的指定比例匹配。

区域切换还可以验证计划的 IAM 角色是否具有进行 Aurora Serverless 扩展的正确权限。有关区域切换执行块所需权限的更多信息，请参阅[Aurora 无服务器扩展执行区块示例策略](security_iam_region_switch_aurora_serverless_scaling.md)。如果任何检查失败，区域切换将返回警告消息，您可以在控制台中查看这些消息。或者，您可以通过或使用 API 操作来接收验证警告。

## 相关资源
<a name="aurora-serverless-scaling-block-resources"></a>
+ [Aurora 无服务器扩展执行区块示例策略](security_iam_region_switch_aurora_serverless_scaling.md)
+ 在*亚马逊 Aurora 用户指南中管理 Aurora* [无服务器 v2 容量](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2-administration.html)