RDS的蓝绿部署升级

Amazon RDS 提供了数据库引擎的新版本,我们可以保持数据库实例的最新状态。较新的版本可能包含错误修复、安全增强和其他数据库引擎的改进。

有两种类型的升级:主版本升级次版本升级。在本实验中,我们将介绍如何升级数据库的主版本和次版本,以及如何让 RDS 在有新版本可用时自动更新实例的次版本。

Minor Version

在 RDS MySQL 版本号中,例如 8.0.28,8.0 代表主版本,28 代表小版本。

升级 RDS MySQL 的小版本会应用额外的安全修复和新功能到实例上。这个过程很快且简单,因为它不涉及任何 RDS MySQL 元数据的转换或表数据的重组。

我们可以使用就地(in-place upgrade)托管蓝/绿部署来执行版本升级。就地升级很简单,但需要停机时间,因为它在同一个 RDS 实例上执行升级。为了在升级过程中减少停机时间,我们可以使用蓝/绿部署来执行升级。

使用蓝绿部署执行次要版本升级

蓝/绿部署将生产数据库环境复制到单独的、同步的暂存环境。通过使用Amazon RDS蓝/绿部署,我们可以在暂存环境中对数据库进行更改,而不会影响生产环境。例如,我们可以在暂存环境中升级主要或次要数据库引擎版本、更改数据库参数或进行架构更改。准备就绪时,我们可以将暂存环境提升为新的生产数据库环境,停机时间通常不到一分钟。

步骤如下:

  1. 创建蓝/绿部署
  2. 连接并验证设置
  3. 在绿色环境上执行次要版本升级
  4. 切换蓝/绿部署
  5. 删除旧的蓝色环境

创建蓝/绿部署:

在RDS数据库下选择"创建蓝/绿部署”:

image-20240701221734617

对于Blue/Green Deployment identifier,输入green-rdslab作为名称。选择它的下一个版本:

image-20240701222519896

点击创建,green环境需要大约20-25分钟才能可用。

创建完成后,登录到green集群,进行数据同步的验证

image-20240703205637490

切换蓝/绿部署

切换 会将green环境提升为新的生产环境。在切换蓝/绿部署之前,建议检查RDS控制台中以下指标的值。

选择green DB实例,然后选择Monitoring, 在搜索栏中输入replicalag。为了减少停机时间,请确保此值接近于零,然后再进行切换。

image-20240703205805366

DatabaseConnections指标来估计蓝/绿环境的活动水平,并确保在切换之前,green和blue上的值都在可接受的水平:

单击我们在上一节中创建的蓝/绿部署的名称。转到Actions选项,然后选择Switch Over:

image-20240703210017645

在切换页面上,检查引擎版本和Timeout setting选项。我们可以指定一个切换超时期,范围为30秒到3,600秒(1小时)。如果切换时间超过指定的持续时间,则会回滚更改,并且不会对任何环境进行更改。

选择默认的300秒(5分钟)超时。准备就绪后,点击Switch over

image-20240703210206263

验证Switch over的状态:

image-20240703210348149

现在,green环境将成为生产环境,蓝色和绿色主环境之间的binlog复制设置将被撤销。RDS将green环境中的DB实例重命名为与blue环境中的相应DB实例匹配,并将blue环境标记为-oldn,其中n是一个数字。

image-20240703210603536

这就结束了Minor版本升级。我们可以选择删除带有-oldn标记的旧蓝色环境。