Hello! 欢迎来到小浪云!


使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储


avatar
小浪云 2025-01-22 19

devops工程师常面临rds数据库优化与更新的挑战,尤其在高负载情况下,传统方法易导致停机风险。本文介绍aws蓝/绿部署策略,实现rds数据库零停机时间更新。

告别数据库更新停机噩梦!本文将详细讲解蓝/绿部署策略,并提供AWS环境下的操作步骤,助您在不影响服务可用性的前提下,更新RDS数据库实例。

准备工作

首先,协调开发团队,选择工作负载流量最低的时段进行更新。 良好的devops实践建议提前通知团队。

本例演示如何利用蓝/绿部署,在零停机时间内缩减数据库实例存储空间。您可以通过AWS RDS控制台、AWS CLI或AWS SDK进行操作,本文使用AWS RDS控制台

注意: 在为mysql或MariaDB RDS实例执行蓝/绿部署前,务必启用自动备份。

步骤1:创建蓝/绿部署

假设数据库集群包含一个主数据库和三个副本(如下图所示),我们将主数据库存储空间从400GB缩减到200GB。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

选择主数据库,点击“操作”,然后选择“创建蓝/绿部署”,进入蓝/绿部署配置界面。

步骤2:指定标识符

为蓝/绿部署指定一个唯一标识符名称(不区分大小写,但存储为小写)。此标识符用于区分生产环境(蓝色环境)和临时环境(绿色环境)。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

步骤3:配置绿色环境

配置绿色环境的数据库引擎和参数组。本例中,为了缩减存储空间,我们使用与蓝色环境(生产数据库)相同的引擎版本和参数组。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

步骤4:配置绿色实例数据库类型

选择与蓝色环境相同的实例类型。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

步骤5:调整绿色环境存储空间

关键步骤:将绿色部署的存储空间调整为目标大小(本例为200GB)。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

AWS控制台会同步更新整个数据库集群。 请注意,我们缩减的是主数据库的存储空间,此更改会应用于所有三个副本。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储 (蓝色和绿色主部署对比)

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储 (蓝色和绿色副本对比)

点击“创建”前,系统会显示绿色部署的成本估算。

使用 AWS 蓝/绿部署以零停机时间缩减 MySQL RDS 数据库的存储

蓝/绿部署的完成时间取决于数据库大小、工作负载以及副本数量等因素,可能需要几分钟到几小时。本例中约需5小时。

AWS会自动处理绿色部署的数据库集群命名约定,使其与蓝色环境一致,包括更新主节点和副本节点的端点。您无需修改应用程序配置。 建议通过合适的渠道(例如Slack)通知开发团队此操作。 整个过程实现零停机时间,仅在主集群(蓝色)环境上可能存在短暂延迟。

相关阅读