亚马逊AWS官方博客

新增功能 — Amazon Aurora 和 Amazon RDS 中完全托管的蓝绿部署

在更新数据库时,使用蓝绿部署技术是用户将风险和停机时间降至最低的一个很有吸引力的选择。这种更新数据库的方法需要两个数据库环境——您当前的生产环境或蓝色环境,以及登台环境或绿色环境。然后,您必须使这两个环境保持同步,这样才能安全地测试更改并将其升级到生产环境。

Amazon AuroraAmazon Relational Database Service (Amazon RDS) 客户可以使用数据库克隆和可升级的读取副本来帮助自己管理蓝绿部署。但是,自行管理蓝绿部署可能成本高昂,而且构建和管理起来也很复杂。因此,客户有时会延迟实施数据库更新,选择可用性而不是更新数据库所获得的好处。

今天,我们宣布全面推出兼容 MySQL 的 Amazon Aurora 新功能 Amazon RDS 蓝绿部署、Amazon RDS for MySQL 和 Amazon RDS for MariaDB,可让您更安全、更简单、更快地更新数据库。

只需几个步骤,您就可以使用蓝绿部署创建一个单独的、同步的、完全托管的登台环境,以镜像生产环境。登台环境克隆您的生产环境的主数据库和区域内只读副本。蓝绿部署使用逻辑复制使这两个环境保持同步。

在短短一分钟内,您可以将登台环境提升为新的生产环境,而不会丢失数据。在切换期间,蓝绿部署会阻止在蓝色和绿色环境中写入,这样绿色就会赶上蓝色,确保不会丢失数据。然后,蓝绿部署将生产流量重定向到新提升的登台环境,而无需对应用程序进行任何代码更改。

借助蓝绿部署,您可以在不影响生产工作负载的情况下对登台环境进行更改,例如主要和次要版本升级、架构修改以及操作系统或维护更新。

MySQL 集群蓝绿部署入门
您只需在 AWS 管理控制台中点击几下即可开始更新数据库。要开始使用,只需在控制台中选择需要更新的数据库,然后单击操作下拉菜单下的创建蓝绿部署

您可以设置蓝绿部署标识符和要修改的数据库的属性,例如引擎版本、数据库集群参数组和绿色数据库的数据库参数组。要在 Aurora MySQL DB 集群中使用蓝绿部署,应启用二进制日志记录,将数据库集群参数组中 binlog_format 参数的值从 OFF 更改为 MIXED

当您选择创建蓝绿部署 时,它会创建一个新的登台环境并运行自动任务来准备数据库以供生产。注意,您将收取绿色数据库的费用,包括多可用区部署中的读取副本和数据库实例,以及您可能在绿色上启用的任何其他功能,如 Amazon RDS 性能详情

您也可以在 AWS 命令行界面(AWS CLI)中执行同样的任务。要执行引擎版本升级,只需添加 targetEngineVersion 参数并指定要升级到的引擎版本即可。此参数适用于次要和主要版本升级,并且它接受 Amazon Aurora MySQL 兼容的 5.7 等短版本。

$ aws rds create-blue-green-deployment \
--blue-green-deployment-name my-bg-deployment \
--source arn:aws:rds:us-west-2:1234567890:db:my-aurora-mysql \
--target-engine-version 5.7 \
--region us-west-2 \

创建完成后,您现在有一个准备进行测试和验证的登台环境,然后再将其升级为新的生产环境。

测试和确认更改完成后,您可以在操作下拉菜单中选择切换 ,以将标记为绿色的登台环境升级为新的生产系统。

现在,您几乎可以将绿色数据库切换到生产环境了。检查绿色数据库的设置,以验证是否已准备好进行切换。您也可以设置超时设置来确定切换的最大时间限制。如果蓝绿部署的切换防护机制检测到需要更长的时间,则切换将被取消,并且不会对环境进行任何更改。我们建议您确定生产流量的低或中等时段,以启动切换。

切换后,蓝绿部署不会删除您的旧生产环境。如果需要,您可以访问以进行额外的验证和性能/回归测试。请注意,当您不再需要旧的生产环境时,您有责任将其删除。标准账单费用适用于旧的生产实例,直到您将其删除。

现已推出
Amazon RDS 蓝绿部署现已在所有 AWS 商业区域(不包含中国)和 AWS GovCloud Region 中带有 MySQL 兼容版 5.6 或更高版本、Amazon RDS for MySQL 主版本 5.6 或更高版本,以及 Amazon RDS for MariaDB 10.2 或更高版本的 Amazon Aurora 中可用。

要了解更多信息,请参阅 Amazon Aurora MySQL 开发者指南Amazon RDS for MySQL 用户指南。尝试一下,请将反馈发送给 AWS re:Post for Amazon RDS 或通过常见的 AWS Support 联系人发送。

Channy