创建蓝绿部署 - Amazon Aurora

创建蓝绿部署

创建蓝绿部署时,您需要指定要在部署中复制的数据库集群。您选择的数据库集群是生产数据库集群,它将成为蓝色环境中的数据库集群。RDS 将蓝色环境的拓扑及其配置的功能复制到暂存区域。数据库集群复制到绿色环境,RDS 配置从蓝色环境中的数据库集群到绿色环境中的数据库集群的复制。RDS 还复制数据库集群中的所有数据库实例。

准备进行蓝绿部署

在创建蓝绿部署之前,必须执行某些步骤,具体取决于您的 Aurora 数据库集群运行的引擎。

准备 Aurora MySQL 数据库集群以进行蓝绿部署

在为 Aurora MySQL 数据库集群创建蓝绿部署之前,该集群必须与开启二进制日志记录binlog_format)的自定义数据库集群参数组相关联。从蓝色环境复制到绿色环境需要二进制日志记录。尽管任何二进制日志格式都有效,但我们建议使用 ROW 以降低复制不一致的风险。有关创建自定义数据库集群参数组和设置参数的信息,请参阅Amazon Aurora 数据库集群的数据库集群参数组

注意

启用二进制日志记录会增加集群的写入磁盘 I/O 操作数。您可以使用 VolumeWriteIOPs CloudWatch 指标监控 IOPS 使用情况。

启用二进制日志记录后,请务必重启数据库集群以使您的更改生效。蓝绿部署要求写入器实例与数据库集群参数组同步,否则创建将失败。有关更多信息,请参阅 重启 Aurora 集群内的数据库实例

此外,建议将二进制日志保留期更改为 NULL 以外的其他值,以防止二进制日志文件被清除。有关更多信息,请参阅 设置和显示二进制日志配置

准备 Aurora PostgreSQL 数据库集群以进行蓝绿部署

在为 Aurora PostgreSQL 数据库集群创建蓝绿部署之前,请务必执行以下操作:

  • 将集群与启用逻辑复制(rds.logical_replication)的自定义数据库集群参数组相关联。从蓝色环境复制到绿色环境需要逻辑复制。

    启用逻辑复制时,还需要调整某些集群参数,例如 max_replication_slotsmax_logical_replication_workersmax_worker_processes。有关启用逻辑复制和调整这些参数的说明,请参阅为 Aurora PostgreSQL 数据库集群设置逻辑复制

    此外,请确保 synchronous_commit 参数设置为 on

    配置所需参数后,请务必重启数据库集群以使您的更改生效。蓝绿部署要求写入器实例与数据库集群参数组同步,否则创建将失败。有关更多信息,请参阅 重启 Aurora 集群内的数据库实例

  • 确保您的数据库实例运行的 Aurora PostgreSQL 版本与蓝绿部署兼容。有关兼容版本列表,请参阅 Aurora PostgreSQL 的蓝绿部署

  • 确保数据库集群中的所有表都有主键。PostgreSQL 逻辑复制不允许对没有主键的表执行 UPDATE 或 DELETE 操作。

  • 确认数据库集群不是外部复制的源或目标。有关更多信息,请参阅 蓝绿部署的一般限制

  • 如果您使用的是触发器,请确保它们不会影响名称以“rds”开头的 pg_catalog.pg_publicationpg_catalog.pg_subscriptionpg_catalog.pg_replication_slots 对象的创建、更新及删除。

创建蓝绿部署时指定更改

创建蓝绿部署时,可以在绿色环境中对数据库集群进行以下更改:

部署后,您可以在绿色环境中对数据库集群及其数据库实例进行其他修改。例如,您可以对数据库进行模式更改,或者更改绿色环境中一个或多个数据库实例使用的数据库实例类。

有关修改数据库集群的信息,请参阅修改 Amazon Aurora 数据库集群

指定更高的引擎版本

如果要测试数据库引擎升级,可以指定更高的引擎版本。切换后,数据库将升级到您指定的主要或次要数据库引擎版本。

指定其它数据库参数组

指定与数据库集群使用的数据库集群参数组不同的数据库集群参数组。您可以测试参数更改如何影响绿色环境中的数据库集群,或者在升级时为新的主要数据库引擎版本指定参数组。

如果您指定不同的数据库集群参数组,则指定的参数组将与绿色环境中的数据库集群相关联。如果您未指定其他数据库集群参数组,则绿色环境中的数据库集群将和与蓝色数据库集群相同的参数组关联。

创建蓝绿部署

您可以使用 AWS Management Console、AWS CLI 或 RDS API 创建蓝绿部署。

创建蓝绿部署
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases(数据库),然后选择要复制到绿色环境的数据库集群

  3. 依次选择操作创建蓝绿部署

    如果您选择 Aurora PostgreSQL 数据库集群,请查看并确认逻辑复制限制。有关更多信息,请参阅 蓝绿部署的 PostgreSQL 逻辑复制的限制

    将出现 Create Blue/Green Deployment(创建蓝绿部署)页面。

    创建蓝绿部署
  4. 查看蓝色数据库标识符。确保它们与您在蓝色环境中预期的数据库实例相匹配。如果不符合预期,请选择 Cancel(取消)。

  5. 对于 Blue/Green Deployment identifier(蓝绿部署标识符),输入蓝绿部署的名称。

  6. 在剩余部分中,指定绿色环境的设置。有关每项设置的信息,请参阅 创建蓝绿部署的设置

    部署后,可以在绿色环境中对数据库进行其他修改。

  7. 选择创建暂存环境

要使用 AWS CLI 创建蓝绿部署,请使用 create-blue-green-deployment 命令。有关各选项的信息,请参阅 创建蓝绿部署的设置

对于 Linux、macOS 或 Unix:

aws rds create-blue-green-deployment \ --blue-green-deployment-name aurora-blue-green-deployment \ --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb \ --target-engine-version 8.0 \ --target-db-cluster-parameter-group-name mydbclusterparametergroup

对于 Windows:

aws rds create-blue-green-deployment ^ --blue-green-deployment-name aurora-blue-green-deployment ^ --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb ^ --target-engine-version 8.0 ^ --target-db-cluster-parameter-group-name mydbclusterparametergroup

要使用 Amazon RDS API 创建蓝绿部署,请使用 CreateBlueGreenDeployment 操作。有关各选项的信息,请参阅 创建蓝绿部署的设置

创建蓝绿部署的设置

下表说明创建蓝绿部署时可供您选择的设置。有关 AWS CLI 选项的更多信息,请参阅 create-blue-green-deployment。有关 RDS API 参数的更多信息,请参阅 CreateBlueGreenDeployment

控制台设置 设置说明 CLI 选项和 RDS API 参数

蓝/绿部署标识符

蓝绿部署的名称。

CLI 选项:

--blue-green-deployment-name

API 参数:

BlueGreenDeploymentName

蓝色数据库标识符

要复制到绿色环境的集群的标识符。使用 CLI 或 API 时,请指定集群的 Amazon 资源名称(ARN)。

CLI 选项:

--source

API 参数:

Source

绿色数据库的数据库集群参数组 与绿色环境中的数据库相关联的参数组。

CLI 选项:

--target-db-cluster-parameter-group-name

API 参数:

TargetDBClusterParameterGroupName

绿色数据库的引擎版本

将绿色环境中的集群升级到指定的数据库引擎版本。

CLI 选项:

--target-engine-version

RDS API 参数:

TargetEngineVersion