如何在 AWS Aurora 中配置全局数据库集群实现跨区域复制

文章导读
在 AWS Aurora 中配置跨区域复制,最推荐直接使用 Aurora Global Database 功能,适用于需要全球分布读取低延迟或跨区域灾难恢复的场景。配置前需注意源集群与目标区域间的网络延迟影响,且若源集群加密,只读副本必须加密。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

在 AWS Aurora 中配置跨区域复制,最推荐直接使用 Aurora Global Database 功能,适用于需要全球分布读取低延迟或跨区域灾难恢复的场景。配置前需注意源集群与目标区域间的网络延迟影响,且若源集群加密,只读副本必须加密。

先说结论:Aurora Global Database 通过基于存储的复制实现跨区域同步,通常延迟低于 1 秒,支持在分钟内完成故障转移。

  • 适合:全球应用读取扩展、跨区域灾难恢复、最小化停机迁移。
  • 先准备:确认主集群状态为 Available,检查区域间数据传输费用及副本数量限制。
  • 验收:验证辅助区域集群状态为 Available,检查复制延迟指标。

命令速用版

配置 Aurora Global Database 主要通过 AWS 管理控制台完成,CLI 可用于辅助验证参数组。

控制台操作路径:

登录 AWS 管理控制台 -> 打开 Amazon RDS 控制台 -> 导航窗格选择 Databases (数据库) -> 选择 Aurora 全局数据库 -> 操作中选择添加 AWS 区域。

CLI 验证参数组:

使用 describe-db-cluster-parameters 命令验证参数组是否创建成功,复制参数组后需等待至少 5 分钟再创建集群。

为什么会这样

Aurora Global Database 使用基于存储层的复制机制,而非数据库引擎层,因此复制延迟通常不到 1 秒。

这种架构将数据库引擎排除在复制过程之外,使数据库引擎专用于处理工作负载,无需配置二进制日志复制。主集群所在区域处理写入,辅助区域处理读取,跨区域复制由 Aurora 存储层专用基础设施处理,确保主区域和辅助区域的数据库资源完全可用。

分步处理

步骤 1:检查前置条件

确认源数据库集群状态为 Available。若源集群已加密,目标只读副本必须加密。检查主数据库集群中的读取器实例数加上辅助集群数不可超过 15 个。

步骤 2:添加辅助区域

在 RDS 控制台的 Aurora 全局数据库页面,选择添加 AWS 区域。选择辅助 AWS 区域,不能选择已有辅助集群的区域或主集群所在区域。

步骤 3:配置参数组

若使用 Aurora MySQL 版本 3,确保辅助集群的 lower_case_table_names 值与主集群匹配。建议主集群和辅助集群使用相同的数据库引擎版本。

步骤 4:完成创建

重复上述过程可添加多个辅助集群,最多可以将 10 个辅助数据库集群挂载到 Aurora Global Database。创建后等待集群状态变为 Available。

怎么验证是否生效

检查集群状态:

如何在 AWS Aurora 中配置全局数据库集群实现跨区域复制

在 RDS 控制台查看全局数据库页面,确认辅助 AWS 区域的状态显示为 Available。

验证复制延迟:

通过 CloudWatch 监控指标查看跨区域复制延迟,通常应低于 1 秒。若延迟过高,检查区域间网络通道。

测试读取操作:

将应用程序读取流量指向辅助区域终端节点,确认能读取到主区域写入的最新数据。

常见坑

副本数量限制:

主数据库集群中的 Aurora 副本数量决定了可添加的备用数据库集群数量。例如,若有 1 个备用集群且主集群中有 14 个读取器实例,则无法再添加辅助集群。

参数组不兼容:

无法将数据库集群参数组复制到其他 AWS 区域。需在新区域创建基于默认参数组的新参数组,并确保关键参数如 lower_case_table_names 匹配。

数据传输费用:

跨区域复制时传输的数据可产生 Amazon RDS 数据传输费用,针对传输到源 AWS 区域以外的数据收费。

加密要求:

如果加密了源数据库集群,则必须加密只读副本,不支持将加密集群复制到未加密副本。

常见问题

跨区域复制延迟通常是多少?

通常低于 1 秒。Aurora 全局数据库使用基于存储的复制功能,延迟通常低于 1 秒,使数据库完全可用于处理应用程序工作负载。

主区域故障后如何恢复?

可以在不到 1 分钟的时间内提升其中一个辅助区域。即使发生完全区域停机,Aurora 集群也可以在不到 1 分钟的时间内恢复读写功能。

辅助区域最多可以有多少个副本?

每个辅助数据库集群最多可以包含 16 个 Aurora 副本。这不同于主集群的 15 个副本限制,具体取决于集群配置。

是否支持未加密集群复制到加密集群?

可以创建加密和不加密数据库集群的只读副本。但如果源集群加密,则副本必须加密。

参考来源

  • 跨 AWS 区域复制 Amazon Aurora MySQL 数据库集群
  • Amazon Aurora Global Database
  • 将 AWS 区域 添加到 Amazon Aurora Global Database
  • Aurora 全局数据库
  • 使用 Aurora Global Database 以尽可能短的停机时间在各个 AWS 区域迁移 Amazon Aurora
  • 使用 Amazon Aurora 进行复制
  • 在 Amazon Aurora 中复制数据库集群参数组