介绍亚马逊 RDS 对亚马逊 Aurora 和亚马逊 RDS 上的 MySQL 数据库的扩展支持

随着 MySQL 社区版 v5.7 即将于 2023 年 10 月 结束 (第 24 页), 亚马逊网络服务 (亚马逊云科技) 正在积极为这一重要过渡做准备。当 MySQL 5.7 进入社区使用期限时,社区将不会发布进一步的更新、错误修复或安全补丁。我们了解, 亚马逊关系数据库服务 (亚马逊 Aurora 和 Amazon RDS)的客户可能对从 MySQL 5.7 升级到生命周期结束之前持保留态度。升级到新的主要版本可能会造成中断,尤其是在您的大型生产环境或依赖于特定主要版本的传统应用程序时。但是,在生命周期结束后继续使用不受支持的 MySQL 版本可能会使您的数据容易受到已知的常见漏洞和暴露 (CVE) 的攻击。

亚马逊云科技 宣布了 A mazon RDS 扩展支持 , 因此您可以按照符合业务需求的速度升级到新的主要版本。我们强烈鼓励客户在 亚马逊 Aurora 和 Amazon R DS 标准支持日期 结束之前尽快将其的 MySQL 5.7 集群或实例升级到 MySQL 8.0。 升级到 MySQL 8.0 具有许多优势,包括增强的性能、高级功能以及在 MySQL 8.0 生命周期内持续的社区支持。在这篇文章中,我们将讨论亚马逊 RDS 扩展支持的内容、其主要优势以及适用于 MySQL 8.0 的 Amazon Aurora 和 Amazon RDS 的升级选项。

什么是亚马逊 RDS 扩展支持?

现在我们已经回顾了社区 MySQL 5.7 的生命周期终止时间表,让我们更详细地了解一下亚马逊 RDS 对 MySQL 5.7 的扩展支持。RDS 扩展支持是一项付费服务,其中 RDS 为亚马逊 Aurora MySQL 或 RDS for MySQL 主要版本提供关键安全和错误修复,有效期最长为社区支持结束后的三年。了解此选项将有助于您在维护遗留系统方面做出明智的决定。尽管 RDS 延长支持期为您提供了更多时间来按自己的时间表计划和测试升级,但您应将 Amazon Aurora 和 Amazon RDS 标准支持结束日期视为生产系统的建议迁移里程碑。明智地使用 RDS 扩展支持窗口,为您的数据库和应用程序找到正确的升级路径。尽早进行测试可以留出时间在兼容性问题影响客户之前对其进行修复。

下图汇总了 Amazon Aurora 和 RDS for MySQL 标准支持 (EoS) 的终止日期和 RDS 延长支持 (ES) 的日期:

兼容 Amazon Aurora mySQL 的版本:

注意 RDS 对 Aurora MySQL 2 的扩展支持将于 2024 年 11 月 1 日开始,但要到 2024 年 12 月 1 日才会收费。在 11 月 1 日至 11 月 30 日之间,所有 Aurora MySQL 2 集群均在 RDS 扩展支持范围内。

亚马逊 MySQL 版 RDS

亚马逊 RDS 对亚马逊 Aurora MySQL 2 和适用于 MySQL 5.7 的亚马逊 RDS 的扩展支持将提供:

  • 持续更新 关键和高 CVE 的安全更新。
  • 错误修复和关键问题的补丁。
  • 能够在标准 Amazon RDS SLA 内提出支持案例并获得故障排除帮助。

这使您可以放心地运行成熟、稳定的 MySQL 5.7 版本,直到扩展支持期结束。RDS 扩展支持在 Aurora 或 RDS 标准支持结束后最多可提供 3 年。RDS 扩展支持费用取决于自 RDS 标准支持到期以来已经过去了多少年。有关更多信息,请参阅 亚马逊 Aurora 定价 亚马逊 RDS 定价

如果您在 RDS EoS 日期之前没有选择加入 RDS 对亚马逊 Aurora 2 的扩展支持或适用于 MySQL 5.7 的 Amazon RDS,则您的集群或实例将自动升级到 Aurora MySQL 3 或 RDS for MySQL 8.0 的最新支持次要版本。这可确保您的数据库保持安全和受支持。但是,如果应用程序尚未为 MySQL 8.0 做好准备,计划外的主要版本升级可能会导致兼容性问题或停机。选择加入 RDS 扩展支持可让您在自己的时间表上更好地规划和测试升级。RDS 扩展支持仅适用于 RDS 标准支持结束日期之前发布的最后一个次要版本。

RDS 扩展支持适用于 RDS for MySQL 5.7 的最新次要版本和 Aurora MySQL 上的某些次要版本。要查看支持版本列表,请查看 亚马逊 RDS 上 支持的 MySQL 主要版本 亚马逊 Aurora 主要版本

您何时需要扩展支持?

RDS Extended Support 允许组织按照自己的时间表计划升级,从而灵活决定何时过渡到新的主要版本,同时继续从 亚马逊云科技 获得重要的安全和错误修复。利用最新特性和功能的应用程序可能需要考虑在 Aurora 或 RDS 标准支持日期到期之前升级到 MySQL 8.0。在我们重点介绍 MySQL 8.0 的主要优势之前,让我们讨论一下 RDS 扩展支持可能对你有用的场景。

应用程序依赖关系 -某些应用程序可能与 MySQL 主要版本 5.7 有特定的依赖关系,例如与某些插件或自定义功能的兼容性。将这些应用程序迁移到新版本可能是一个复杂而耗时的过程。通过利用 Amazon RDS 对 MySQL 5.7 的扩展支持,企业可以在规划和测试与 MySQL 8.0 的兼容性时继续使用其当前的数据库版本,而不会中断应用程序工作流程。

自我管理 MySQL :对于在本地或在 EC2 上运行自我管理的 MySQL 5.7 的客户来说,在生命周期结束后维护社区版本会带来运营负担,并使他们面临到 CVE 的风险。相反,在启用 RDS 扩展支持的情况下,你可以迁移到 Aurora MySQL 2 或 RDS for MySQL 5.7。通过迁移到具有 RDS 扩展支持的托管服务,而不是运行不支持的版本,您可以受益于云中的可扩展性、可管理性和安全性。

大型机队需求 -在大规模环境中,将大量数据库迁移到新版本可能在后勤方面具有挑战性。对 MySQL 5.7 的扩展支持允许企业分阶段迁移过程,确保平稳过渡,而不会让 IT 资源不堪重负。这种分阶段的方法使组织能够在完成整个迁移之前测试和验证升级对其机队子集的影响。

如果这些情况适用于您,或者您无法在 Amazon Aurora 或 Amazon RDS EoS 日期之前完成升级(参见前面的图片),我们建议您选择加入 Amazon RDS 扩展支持。从 2023 年 12 月开始,可以通过亚马逊 RDS 管理控制台 或使用 亚马逊云科技 CLI 或 亚马逊 RDS API 为每个集群或实例启用 RDS 扩展支持。

尽管 RDS Extended Support 可以帮助您按照自己的时间表安排升级,但无限期地坚持使用旧版本意味着错过工作负载的最佳性价比。接下来,我们将重点介绍升级到 MySQL 8.0 的原因。

升级到兼容 Amazon Aurora MySQL 的版本 3 的主要好处

兼容 Aurora MySQL 的版本(也称为 Aurora MySQL 3)上的 MySQL 8.0 支持流行的 Aurora 功能,包括 全球数据库 亚马逊 RDS 代理 性能洞察 并行查询 和 无服务器 v2 部 署。

社区增强 — MySQL 8.0 包括通过增强功能改进的性能功能,例如用于加快创建和加载表及其关联索引的整体过程的 即时 DDL 以及用于避免等待其他事务释放行锁的 SKIP LOCKED 和 NOWAIT 选项。MySQL 8.0 添加了诸如 窗口函数 之类的开发人员生产力功能, 以更轻松地解决查询问题和 公用表表达式 ,从而支持使用命名的临时结果集。它还包括 JSON 新 增功能 、新的安全功能等。有关更多信息,请参阅 MySQL 8.0 社区版 的 功能

Aurora Serverless v2 — Amazon Aurora MySQL 3(兼容 MySQL 8.0)支持 Aurora Serverless v2 ,该版本可即时、自动和按需扩展以支持最苛刻的应用程序,与配置峰值容量相比,最多可节省 90% 的成本。Aurora Serverless v2 提供了全方位的 Amazon Aurora 功能,包括多可用区支持、全球数据库、RDS 代理和只读副本。Amazon Aurora Serverless v2 非常适合各种应用程序。例如,拥有数十万个应用程序的企业,或者拥有包含数百或数千个数据库的多租户环境的软件即服务 (SaaS) 供应商,可以使用 Aurora Serverless v2 来管理整个队列中的数据库容量。

亚马逊 Aurora Zero-etl — 亚马逊 Aurora MySQ L 3 现在支持与亚马逊 Redshift 的零 ETL 集成 ,此功能支持对存储在亚马 逊 Aurora 中的千兆字节交易数据进行近乎实时的分析和机器学习 (ML)。写入 Aurora 的数据可在几秒钟 内在 Amazon Redshift 中使用,因此您可以快速对其采取行动,而无需构建和维护复杂的数据管道。

Amazon Aurora I/O 优化 — Amazon Aurora MySQL 3 支持 Aurora I/O 优化配置, 该配置 可为使用 I/O 密集型应用程序、I/O 费用超过 Aurora 数据库总支出的 25% 的客户提供更高的性价比和可预测的定价,最多可节省 40% 的成本。因此,可以提高吞吐量并减少客户最苛刻的工作负载的延迟。

亚马逊云科技 Graviton3 支持 — 亚马逊 A urora MySQL 3 支持 于 亚马逊云科技 Grav iton3 的 R7g 实例。 与适用于 Aurora 的 Graviton2 实例相比,这些实例的性能提高了多达 30%,性价比提高了多达 20%,具体取决于工作负载、数据库引擎和版本。

增强型二进制日志(二进制日志) — Aurora MySQL 3.03 版本(与 MySQL 8.0.26 兼容)及更高版本中,Aurora 对二进制日志的编写和存储方式进行了又一项更根本的更改。 增强的二进制日志 减少了启用二进制日志所造成的计算性能开销,在某些情况下,二进制日志最多可以达到 50%,降至 13%。这反过来又允许在同一硬件上增加事务处理吞吐量。与启用原生 MySQL 二进制日志时相比,增强的二进制日志还可将重启和故障转移后的数据库恢复时间缩短多达 99%。

升级到适用于 MySQL 8.0 的亚马逊 RDS 的主要好处

与坚持使用 MySQL 5.7 相比,升级到适用于 MySQL 8.0 的亚马逊 RDS 有几个优势,包括:

社区增强 — 允许访问新的 8.0 功能,例如原子 DDL、后代临时表、新的 JSON 函数、公用表表达式 (CTE) 等。有关更多信息,请参阅 MySQL 8 中的新增功能

更好的性能 ——与 MySQL 5.7 相比,性能提高了 2 倍;InnoDB 针对读写、IO 绑定和高争用 “热点” 工作负载进行了性能优化;复制性能改进;降序索引;隐形索引;改进了成本模型以考虑缓冲池的内容;资源组允许用户按工作负载控制资源使用情况并确定其优先级。

具有两个可读备用数据库的亚马逊 RDS 多可用区 — 亚马逊 RDS MySQL 8.0 支持多可用区集群部署。 这通常可在不到 35 秒的时间内实现自动故障转移,与具有一个备用容量、额外的读取容量以及可选择基于 亚马逊云科技 Graviton2 或 Intel 的计算实例的多可用区相比,交易提交延迟最多快两倍。Amazon RDS 多可用区集群部署增强了可用性和耐久性,使其非常适合生产 MySQL 数据库工作负载。

Amazon RDS 优化写入 — RDS 优化写入使用更快的顺序 I/O 进行缓冲区刷新和提交操作。在不收取额外费用且预配置 IOPS 级别相同的情况下,可以将写入事务吞吐量提高多达 2 倍。 优化写入 非常适合生成大量并发事务的写入密集型工作负载。这包括数字支付、金融交易平台和在线游戏。

Amazon RDS 优化读 取 — RDS 优化读取可以通过将 MySQL 生成的临时表放在与主机服务器物理连接的基于 NVMe 的 SSD 块存储上来实现更快的查询处理。 使用临时表的查询,例如涉及排序、哈希聚合、高负载联接和 CTE 的查询,使用 Optimized Reads 可以将执行速度提高多达 2 倍。

亚马逊云科技 Graviton2 和 Graviton3 支持 — 亚马逊 RDS MySQL 8.0 支持 Graviton2 和新的 Graviton3 EC2 实例。 Graviton 处理器由 亚马逊云科技 使用 64 位 Arm Neoverse 内核定制构建,与第一代 亚马逊云科技 Graviton 处理器相比,它提供了多项优化。

通过升级到 Amazon Aurora MySQL 3 或 Amazon RDS for MySQL 8.0,您可以利用这些优化和功能来提高数据库性能、降低成本并启用新的用例。社区版本还在 MySQL 8.0 的生命周期内定期修复了安全和错误。

从 Amazon Aurora 和适用于 MySQL 的亚马逊 RDS 5.7 升级到 8.0

从 Amazon Aurora 或 Amazon RDS for MySQL 5.7 升级到 MySQL 8.0 涉及主要版本升级,其中可能包含与现有应用程序不向后兼容的数据库更改。必须手动修改数据库实例才能升级主版本。强烈建议您在将任何主要版本升级应用到生产环境之前,先在非生产实例上对其进行全面测试,以确保与您的应用程序兼容。

您可以就地将您的集群或实例从 MySQL 5.7 升级到 MySQL 8.0。这种升级方法更简单,因为您不必修改应用程序连接字符串。就地升级方法很方便。但是,此过程需要停机,在此期间应用程序将无法与数据库建立连接。停机时间可能会有所不同,具体取决于架构的属性以及集群或实例的繁忙程度。请务必注意,由于两个版本之间存在某些不 兼容性 ,通过就地升级从 MySQL 5.7 升级到 MySQL 8.0 可能会遇到挑战。有关更多信息,请参阅: 亚马逊 Aurora MySQL 主要版本就地升级 适用于 MySQL 的 Amazon RDS 升级。

由于数据库引擎升级需要停机,因此在升级 MySQL 数据库 实例时,建议使用 Amazon RDS 管理蓝/绿部署 来最大限度地减少停机时间。这包括使用您的 MySQL 5.7 生产数据库的亚马逊 Aurora 或 Amazon RDS for MySQL 8.0 副本启动并行 “绿色” 环境。验证绿色环境后,你可以将流量转移到绿色环境中。然后可以停用 “蓝色” MySQL 5.7 环境。以这种方式进行升级部署可以减少停机时间。

在大多数情况下,蓝/绿部署是升级 MySQL 数据库集群或实例时减少停机时间的最佳选择。如果由于 Aurora MySQL 限制 或 RDS MySQL 限制而无法使用蓝/绿部署 ,则可以使用 亚马逊 Aur ora 克隆 适用于 MySQL 的 Amazon RDS 只读 副本。 这将通过提前进行升级和测试来帮助最大限度地减少升级停机时间。

要升级 Aurora 集群,请创建具有相同主版本和次要版本的 Aurora 克隆。在原始群集和克隆集群之间配置二进制日志复制。将克隆升级到新的主要版本后,彻底测试所有应用程序功能。对于 Amazon RDS 实例,这包括创建与主实例具有相同主版本和次要版本的托管只读副本,将副本升级到新的主要版本(即 MySQL 8.0),以及验证应用程序的全部功能。

一旦测试完成并准备好切换,就必须停止应用程序的工作负载(中断),以使复制能够赶上。然后,将 Aurora 克隆或 RDS 只读副本提升为独立集群/实例,并将应用程序重定向到升级后的系统。有关更多详细步骤,请参阅以 最少的停机时间对 Amazon Aurora MySQL 执行主要版本升级 , 以及 使用 MySQL 只读副本升级 Amazon RDS for MySQL 数据库 的最佳实践

结论

Amazon RDS 针对 MySQL 5.7 的扩展支持让企业在规划未来升级时可以灵活地维护安全可靠的数据库环境。这种方法特别有利于解决应用程序依赖关系和大型机群需求,在这些情况下,迁移到 MySQL 8.0 可能会涉及复杂性和后勤方面的挑战。在亚马逊 Aurora 或 Amazon RDS 上升级到 MySQL 8.0 可以带来许多好处,包括增强性能、高级功能和长期支持。考虑到对应用程序和机群的影响,企业应仔细评估收益并规划全面的迁移策略。无论是继续使用MySQL 5.7还是升级到MySQL 8.0,Amazon Aurora和Amazon RDS都能为各种规模的企业提供安全且可扩展的云数据库环境。

有关后续步骤,请先查看时间表(请参阅 “什么是 Amazon RDS 扩展支持?” 部分中的前面图片)对于 Amazon Aurora 和 RDS,已终止对 MySQL 5.7 的标准支持。在亚马逊 Aurora 或 Amazon RDS 上的 MySQL 5.7 的标准支持日期结束之前,确认你可以迁移到 MySQL 8.0(参见前面的图片)。如果迁移无法在相应的支持终止日期之前完成,请选择从 2023 年 12 月开始加入 Amazon RDS 扩展支持,以避免自动升级您的集群或实例。


作者简介

Vijay Karumajji 是亚马逊网络服务的首席数据库解决方案架构师。他与我们的客户合作,为数据库项目提供指导和技术援助,帮助他们在使用 亚马逊云科技 时提高解决方案的价值。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。