使用 Amazon RDS Proxy 和 Amazon RDS Multi
在本文中,我们将讨论 Amazon RDS MultiAZ 部署的最新功能,它允许用户使用 Amazon RDS Proxy 来进行小版本升级和系统维护更新,通常可在 1 秒或更少的停机时间内完成。这项新功能的引入大大提升了用户体验。
速云梯下载2022 年 3 月,AWS 引入了 Amazon RDS for PostgreSQL 和 MySQL 的 MultAZ 部署,它包括一个主数据库实例和两个可读备用实例。每个集群节点使用高速的直接附加 NVMe 卷以及 Amazon Elastic Block Store (EBS) 卷进行操作。写操作首先写入 NVMe 卷,再异步写入 EBS 卷,从而实现更低的延迟,同时两台备用节点也可以处理读取请求。
2020 年 6 月,AWS 推出了 Amazon RDS Proxy。RDS Proxy 带来了多种优势,包括: 连接池:通过连接池功能,数据库资源可以更高效地用于执行查询,减少了因 TCP 和 TLS 握手及身份验证造成的资源浪费。 连接复用:RDS Proxy 只与数据库实例建立所需连接,降低了数据库实例的连接数,帮助节省资源。 快速故障恢复:RDS Proxy 能在故障转移后缩短客户端恢复时间,解决了应用程序在故障情况下可能会使用缓存 CNAME 导致无法连接的问题。
目前,对 PostgreSQL 或 MySQL 数据库进行的小版本升级或系统维护更新通常需要数分钟,并且需要计划停机时间。而借助 Amazon RDS MultiAZ 数据库DB集群,现在实现小版本升级时停机时间通常在 35 秒以内,使用 RDS Proxy 这段时间可以进一步缩短至 1 秒或更少。
在对 Amazon RDS MultiAZ DB 集群进行小版本升级时,过程开始于按顺序对每个读取实例应用补丁,升级完成后其中一个读取实例将变为写入实例,原写入实例则转为读取实例。此过程中会出现停机,但使用 Amazon RDS MultiAZ DB 集群的停机时间通常不会超过 35 秒。

要设置 Amazon RDS MultiAZ DB 集群以及 RDS Proxy,请按照下列步骤执行:
在 Amazon RDS 控制台中,选择 创建数据库。
对于 引擎类型 ,选择 MySQL 或 PostgreSQL。
在 隐藏过滤器 下,选择 显示支持 MultiAZ DB 集群的版本。
在 引擎版本 下,选择你的首选版本。
在 可用性和耐久性 下,选择 MultiAZ DB 集群。
在 连接性 下,对于 RDS Proxy,选择 创建一个 RDS Proxy。
选择 创建数据库。
此过程还会在 AWS Secrets Manager 中创建一个密钥,并在 AWS 身份和访问管理IAM 中生成一个策略,以允许该代理访问密钥。创建后,可以在代理详细信息页的 代理端点 部分找到读写和只读端点。
要为已有的 Amazon RDS MultiAZ DB 集群设置 RDS Proxy,请遵循以下步骤:
在 Amazon RDS 控制台中,选择 代理。
选择 创建代理。
在 代理配置 下,选择 MariaDB 和 MySQL 或 PostgreSQL,并在代理标识符字段中输入新 RDS Proxy 的名称。
在 目标组配置 下,选择要为其创建此 RDS Proxy 的 Amazon RDS MultiAZ DB 集群。
在 身份验证 下,指定包含此代理用于连接 Amazon RDS MultiAZ DB 集群的凭据的 Secrets Manager 密钥,以及代理用于读取此密钥的 IAM 角色。
选择 创建代理。
在完成上述步骤后,务必要清理任何不再使用的资源。有关 RDS Proxy、Amazon RDS MultiAZ DB 集群、IAM 策略 和 Secrets Manager 密钥 的详细说明,请参考 AWS 文档。
在本文中,我们探讨了如何使用 RDS Proxy 与 Amazon RDS MultiAZ DB 集群实现通常在 1 秒或更少的停机时间内完成小版本升级的过程。这一解决方案还提供了连接池和连接复用等额外好处,优化了数据库资源的使用。欲了解更多信息,请参考 Amazon RDS MultiAZ 部署中的可读备用实例:新版高可用性选项 ,并今天就开始使用 RDS Proxy 吧!
Steve Abraham 是亚马逊网络服务AWS的首席解决方案架构师。他与客户密切合作,为数据库项目提供指导和技术支持,帮助客户提高其在 AWS 上解决方案的价值。