如何创建与 Aurora PostgreSQL 兼容的全球数据库?

3 分钟阅读
0

我想创建一个 Amazon Aurora PostgreSQL 兼容版全球数据库。

简短描述

Aurora 全球数据库用于全球分布式应用程序。这些数据库可以跨越多个 AWS 区域,这样就可在另一个区域拥有只读辅助数据库集群以支持本地读取。Aurora 全球数据库还在 AWS 区域出现故障时提供快速恢复机制。

使用以下方法创建与 Aurora PostgreSQL 兼容的全球数据库:

  • 使用 AWS 控制台创建与 Aurora PostgreSQL 兼容的全球数据库
  • 使用现有的 Aurora 集群创建与 Aurora PostgreSQL 兼容的全球数据库
  • 从 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 快照迁移到与 Amazon Aurora PostgreSQL 兼容的全球数据库
  • 将 Amazon RDS for PostgreSQL 数据库迁移到与 Aurora PostgreSQL 兼容的全球数据库

解决方案

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

在创建与 Aurora PostgreSQL 兼容的全球数据库之前:

使用 AWS 控制台创建与 Aurora PostgreSQL 兼容的全球数据库

  1. 在您的主要区域打开 Amazon RDS 控制台
  2. 选择 Create database(创建数据库)。
  3. 对于“Database creation method”(数据库创建方法),选择 Standard Create(标准创建)。
  4. 对于“Engine type”(引擎类型),选择 Amazon Aurora
  5. 对于“Edition”(版本),选择 Amazon Aurora PostgreSQL-Compatible Edition(Amazon Aurora PostgreSQL 兼容版)。
  6. 在“filters”(筛选条件)下,开启 Show versions that support the global database feature(显示支持全球数据库功能的版本)。
  7. 在“Available versions”(可用版本)下拉列表中,选择要使用的 PostgreSQL 版本。
  8. 根据您的使用案例,对于“Templates”(模板),选择 Production(生产)或 Dev/Test(开发/测试)。
  9. Settings(设置)部分的数据库集群标识符中,输入您的主数据库集群的名称。对于主用户名,输入 PostgreSQL 的默认主用户或自己的用户名。
  10. Instance configuration(实例配置)部分中,选择数据库实例类。
  11. Availability durability(可用性和持久性)部分中,最佳实践是选择在不同的可用区创建 Aurora 副本。如果未选择该选项,则可以在稍后阶段创建只读副本。
  12. Connectivity(连接性)部分中,选择要使用的选项。还可选择要使用的 VPC数据库子网组VPC 安全组
  13. Additional configuration(其他配置)下,可以指定数据库端口。默认端口为 5432
  14. Database authentication(数据库身份验证)下,默认使用密码身份验证。您可以选择为数据库开启 IAM database authentication(IAM 数据库身份验证)、Kerberos authentication(Kerberos 身份验证)或两者。
  15. Database options(数据库选项)部分中,输入Initial Database name(初始数据库名称)。选择 DB cluster parameter group(数据库集群参数组)、DB parameter group(数据库参数组)和 Failover priority(失效转移优先级)。查看 Backup(备份)、Encryption(加密)、Maintenance(维护)和 Deletion Protection(删除保护)选项。
  16. 选择 Create database(创建数据库)。当集群准备好使用时,集群、写入器和副本节点的状态将更改为Available(可用)。
  17. Aurora PostgreSQL 全球数据库需要在与主 Aurora 数据库集群不同的 AWS 区域中至少有一个辅助 Aurora 数据库集群。最多可以将五个辅助数据库集群连接到 Aurora PostgreSQL 全球数据库。选择创建的 Aurora PostgreSQL 数据库。从 Actions(操作)下拉列表中选择 Add AWS Region(添加 AWS 区域)。
  18. Add a Region(添加区域)页面上,输入全球数据库的名称,然后选择辅助区域。查看并完成新区域中 Aurora 集群的其余信息。
    **注意:**在所有 AWS 区域中,为每个 Aurora 数据库集群选择的名称必须是唯一的。不能为不同的 Aurora 数据库集群使用相同的名称,即使它们位于不同的区域。
  19. 单击 Add Region(添加区域)按钮。

使用现有的 Aurora 集群创建与 Aurora PostgreSQL 兼容的全球数据库

  1. 在您的主要区域打开 Amazon RDS 控制台
  2. Resources(资源)部分中,选择 DB Instances(数据库实例)。
  3. 选择要使用的现有 Aurora PostgreSQL 集群。
  4. Actions(操作)下拉列表中选择 Add AWS Region(添加 AWS 区域)。
  5. Add a Region(添加区域)页面上,输入全球数据库的名称,然后选择辅助区域。
  6. 选择 Add Region(添加区域)。

将 RDS for PostgreSQL 快照迁移到与 Aurora PostgreSQL 兼容的全球数据库

  1. 在您的主要区域打开 Amazon RDS 控制台
  2. 在导航窗格中,选择 Snapshots(快照)。
  3. 选择要迁移的 RDS for PostgreSQL 快照。
  4. 选择 Actions(操作),然后从下拉列表中选择 Migrate Snapshot(迁移快照)。
  5. Migrate database(迁移数据库)页面上,对于 Migrate to DB engine(迁移到数据库引擎),选择 aurora-postgresql
  6. 选择 Migrate(迁移)按钮。这将从 RDS for PostgreSQL 快照中创建与 Aurora PostgreSQL 兼容的集群。
  7. 创建与 Aurora PostgreSQL 兼容的集群后,从导航窗格中选择 Databases(数据库)。
  8. 选择与 Aurora PostgreSQL 兼容的迁移集群。
  9. Actions(操作)下拉列表中选择 Add AWS Region(添加 AWS 区域)。
  10. Add a Region(添加区域)页面上,输入全球数据库的名称,然后选择辅助区域。
  11. 选择 Add Region(添加区域)。

将 RDS for PostgreSQL 数据库迁移到与 Aurora PostgreSQL 兼容的全球数据库

  1. 在您的主要区域打开 Amazon RDS 控制台
  2. 从导航窗格中选择 Databases(数据库)。
  3. 选择要转换的 RDS for PostgreSQL 数据库的。
  4. Actions(操作)下拉列表中选择 Create Aurora read replica(创建 Aurora 只读副本)。
  5. Create Aurora read replica(创建 Aurora 只读副本)页面上,查看并填写所有字段,然后选择 Create read replica(创建只读副本)。
  6. 创建 Aurora 只读副本后,您现在可以提升 Aurora 只读副本。
  7. 注意:在提升副本之前,请确保 RDS for PostgreSQL 数据库没有任何活动。还要确认副本延迟为零。
  8. 选择您创建的 Aurora 只读副本。
  9. Actions(操作)下拉列表中选择 promote(提升)。
  10. 提升过程完成后,Aurora 副本集群将成为具有写入器实例的区域 Aurora 数据库集群。选择新提升的区域 Aurora 数据库集群。
  11. Actions(操作)下拉列表中选择 Add AWS Region(添加 AWS 区域)。
  12. Add a Region(添加区域)页面上,输入全球数据库的名称,然后选择辅助区域。
  13. 选择 Add Region(添加区域)。

在辅助区域创建无头的 Aurora 数据库集群

Aurora 全球数据库需要在不同的 AWS 区域中至少有一个辅助 Aurora 数据库集群。为了降低计算成本,您可以创建无头的辅助 Aurora 数据库集群。这样,您只需支付存储费用。虽然这种设置方法会产生更高的恢复时间目标 (RTO),但它可以降低灾难恢复 (DR) 设置的成本。

对于 PostgreSQL,使用 AWS CLI 创建无头的 Aurora 数据库集群。参见用于创建无头 Aurora 数据库集群的 Linux/macOS AWS CLI 命令的此示例。

注意:在运行命令之前,将此命令中的 <> 占位符替换为实际值。

有关可用于此命令的选项列表,请参阅 create-db-cluster 参考文档。

aws rds --region <target_region> \
  create-db-cluster \
     --db-cluster-identifier <value> \
     --global-cluster-identifier <value>  \
     --engine aurora-postgresql \
     --kms-key-id <value> \
     --engine-version <value> \
     --db-cluster-parameter-group-name <value>\
     --db-subnet-group-name <value> \
     --vpc-security-group-ids <value> \
     --backup-retention-period <value>

相关信息

Amazon Aurora 全球数据库

AWS 官方
AWS 官方已更新 1 年前