VMware 如何使用亚马逊 RDS 代理整合亚马逊 Aurora MySQL 上的多租户云资产数据存储

这篇文章是与 VMware 二级参谋工程师 Peter Fein 共同撰写的

VMware Tanzu CloudHealth 将多租户、 自行管理、166 个节点的分片 MySQL 数据库 整合到兼容亚马逊 A urora MySQL 的版本和亚马逊 RDS 代理 目标是支持其平台上的长期、持续、多因素数据增长,同时提高可靠性并简化操作。VMware Tanzu CloudHealth是领先的软件即服务(SaaS)云成本管理平台,拥有超过2万名客户,每年支持超过200亿美元的云支出。多租户 SaaS 平台从一开始就是使用 亚马逊云科技 服务构建的。VMware Tanzu CloudHealth之所以选择Amazon Aurora,是因为它具有丰富的功能,包括RDS代理,这对于实现迁移目标至关重要。

Aurora 是一个兼容 MySQL 和 PostgreSQL 的关系数据库,专为云而构建。Aurora 将传统企业数据库的性能和可用性与开源数据库的简单性和成本效益相结合。

RDS 代理是适用于 亚马逊关系数据库服务 (Amazon RDS) 的完全托管、高度可用的数据库 代理,它使应用程序更具可扩展性,对数据库故障更具弹性,也更安全。

在这篇文章中,我们将讨论VMware Tanzu CloudHealth如何整合数据库并将其 从基于 亚马逊弹性计算云 (Amazon EC2)C5实例的分片迁移到亚马逊Aurora 。我们还将讨论它如何帮助 VMware 将更多数据库整合到一个 Aurora 集群中,从而减少他们自行管理的数据库实例数量,实现 3:1 架构整合。项目结束时,62 个 Aurora 集群(124 个 Aurora 数据库实例、一个主数据库实例和每个集群的多可用区设置中的一个只读副本)取代了 166 个节点的分片 MySQL 数据库(332 个 HA 自管 EC2 实例)。RDS 代理集成在 Aurora 集群之前,以支持来自广泛应用程序空间的繁重应用程序连接负载。最后,与应用程序针对代理启动的连接相比,RDS 代理连接多路传输允许 VMware 将每个 Aurora 集群的连接数量减少了 10 倍,从而大大减少了数据库负载。这是整合更多数据库(3:1 架构整合)、提高应用程序性能和增强最终客户体验的关键驱动力。此外,在由 亚马逊云科技 Graviton2 处理器提供支持的 Amazon RDS R6g 实例上,性能的提高使所需的 vCPU 数量减少了 63%,从而降低了 20% 的成本。

VMware Tanzu CloudHealth 的资产数据存储:极光之前

该平台以前的数据存储架构基于自我管理的 MySQL 数据库。这些数据库存储了客户云资产数据、使用指标和运营数据。在迁移之前,他们在 C5 EC2 实例上管理 166 个 MySQL 版本 5.6 分片。每个分片都由一个主副本和一个备用副本组成,但只有主分片有操作负载。分片是在客户级别实现的,客户群位于单个数据库(MySQL 架构)上。每个架构都有唯一的名称,在迁移前平均包含 200 个客户。数据库处于持续的高负载之下,分片使用复杂的 Chef 配方进行管理,这需要大量的管理开销、性能和扩展问题。

实现云资产数据存储现代化的关键驱动力

在过去的十年中,客户群显著增长,从而增加了需要自我管理的数据库容量。这种增长还导致了数据库的运营、扩展和弹性问题。结果,VMware 开始寻找迁移到云管理数据库的选项。

以下关键因素推动了现代化的推动:

  • 摆脱单个 EC2 实例 MySQL 限制。由于负载和存储需求可变,难以预置大小合适的 EC2 实例
  • MySQL 二进制日志 副本仅用于故障转移,不用于读取扩展
  • 分片扩展需要平台维护中断窗口
  • 大型客户和合作伙伴租户入驻需要手动干预才能在分片之间取得适当的平衡
  • 166 个分片上的架构更改降低了代码部署的速度
  • 配置数据库的复杂厨师食谱需要专业知识

他们为什么迁移到 Aurora 和 RDS 代理

VMware Tanzu CloudHealth组织长期以来一直在讨论开展数据库现代化项目的必要性。作为亚马逊云科技的长期客户,他们研究了RDS系列,发现Aurora MySQL非常合适。他们考虑了几项功能来满足需求,如下图所示。

Amazon Aurora Features

亚马逊 Aurora 功能

从上面的一组功能中,以下功能对迁移很重要:

  1. 高性能和一键式计算可扩展性
  2. 存储自动扩展
  3. Amazon Aurora MySQL 并行查询
  4. 使用亚马逊 Aurora 副本进行多可用区部署
  5. 容错和自我修复存储
  6. 亚马逊 RDS 蓝/绿部署
  7. 优化的 I/O 成本

在以下部分中,我们将介绍 VMware 规划和迁移方法的各个阶段。

第 1 阶段:合规性和性能测试

VMware 使用 MySQL 慢速查询日志功能在 24 小时内捕获了大量 SQL 查询样本,并开发了一个工具来重播日志中的读取查询并捕获 Aurora 和 EC2 MySQL 的响应时间。这帮助他们转向分片整合,以优化最长时间运行的 SQL 查询、数据库实例资源(CPU、内存和 I/O)利用率和整体性能。

此阶段的结果如下:

  • 与 EC2 C5 上的 MySQL 5.6 相比,兼容 Aurora MySQL 5.7 的版本在负载下使用一个主实例和一个读取器实例的第一行响应时间快了 20%。
  • 测试中使用的确切硬件是配备 36 个 vCPU 的 c5.9xlarge,而 Graviton r6g.4xlarge 有 16 个 vCPU。由于vCPU容量不到一半,Aurora和Graviton仍然击败了EC2实例。
  • 无需更改应用程序代码(SQL 语法)即可使用 Aurora MySQL 5.7 兼容版本的升级数据库。因此,使用 Aurora MySQL 测试应用程序很容易。

在此阶段结束时,VMware团队对性能和兼容性充满信心,可以继续进行Aurora MySQL数据库迁移。

第 2 阶段:第一批 Aurora 分片和内部客户

在此阶段,VMware 向数据库群添加了第一个 Aurora 集群。然后,他们在这个分片上初始化了一些租户,进行完整的集成测试期。在此阶段,VMware还开始为Aurora MySQL构建运营环境,因为他们不再部署基于厨师的亚马逊EC2。 这个现代化阶段通过利用其他 亚马逊云科技 服务,例如 亚马逊云科技 L ambda、Amazon Cloud Watch 和 亚马逊云科技 Secrets Manager ,增强了数据库的运营。

亚马逊云科技 Secrets Manager 可帮助您在数据库证书、API 密钥和其他密钥的整个生命周期中管理、检索和轮换。

亚马逊云科技 L ambda 是一项无服务器、事件驱动的计算服务,允许您为几乎任何类型的应用程序或后端服务运行代码,而无需预置或管理服务器。您可以从 200 多个 亚马逊云科技 服务和软件即服务 (SaaS) 应用程序中触发 Lambda,并且只需按实际使用量付费。

VMware 团队还开始使用参数组设置来开发 Aurora 的最佳配置。在此期间建造的组件包括:

  • 使用 Terraform 的配置系统 可简化具有大小相关参数组设置的 Aurora 集群的创建。 Amazon Route 53 记录用于提供与其应用程序 DNS 的兼容性。它们也是自动配置的。
  • 一个 亚马逊云科技 Lambda 函数,用于对作为 Chef 食谱一部分的本地数据完整性检查脚本和本地 MySQL 初始化脚本进行现代化改造。
  • 基于 亚马逊 CloudWatch 数据的监控控制面板和警报。
  • 数据库迁移过程,使用脚本进行备份(逻辑备份方法,即 mydumper 和 myloader 迁移工具 )并将基于亚马逊 EC2 的 My SQL 数据库恢复到 Aurora MySQL 集群中。在切换之前,使用标准的 MySQL 二进制日志复制将正在进行的写入更改同步到新的 Aurora 分片。此过程还允许进行整合,因为多个 MySQL 数据库已迁移到单个 Aurora 集群上。逻辑数据库结构得以维护。
  • 在 整个组织内采用 Amazon RDS 性能洞察 来帮助诊断数据库性能问题并简化整体数据库监控流程。

第 3 阶段:开始分片迁移

在此阶段,该团队开始将客户分片迁移到 Aurora。迁移发生时,对应用程序进行了调整以利用 Aurora 架构。成就包括:

  • 修改常用数据库访问库以将读取负载转移到 Aurora 集群读取器终端节点。这允许应用程序以最少的代码更改访问读取器端点。
  • 在 Aurora 集群前集成 RDS 代理,以更好地管理连接负载并提高数据库可用性。RDS Proxy 还支持扩大规模、更改参数组和次要版本升级,停机时间几乎为零。
  • 使用 RDS 代理,VMware 得以启动整合计划,将三个 EC2 分片迁移到单个 Aurora 集群上。在这种情况下,RDS 代理连接多路传输允许显著增加每个 Aurora 集群的客户端连接数,而不会影响性能。
  • 对整个应用程序生态系统中的 MySQL 客户端连接参数进行标准化,以更好地利用 RDS 代理连接池。

第 4 阶段:迁移的最后阶段和总结

最后阶段包括以下组成部分:

  • 对所有 Aurora 集群进行指标审查,以制定最终的整合计划和适当的实例规模
  • 迁移系统中最后剩下的分片,包括一些总存储容量超过 1 TB 的最大分片
  • 继续将应用程序间的数据库读取负载重新映射到 Aurora 读取器端点
  • 购买 Amazon RDS 预留实例 以优化 Aurora 数据库实例成本
  • 在全新 Aurora 堆栈上对团队成员进行培训和教育

整合给 Aurora 带来的好处

在项目结束时,与独立的 MySQL 数据库相比,Aurora 上整合的多租户客户云资产数据库农场实现了 3:1 的整合。这是在维护所有架构且不合并单个表的情况下完成的。VMware Tanzu CloudHealth 应用程序生态系统中的所有应用程序框架均已修改为使用 Aurora 读取器端点。Terraform 中内置的新配置系统允许使用几行代码轻松创建 Aurora 集群、RDS 代理、RDS 参数组和 Route 53 条目。

以下是迁移到 Aurora MySQL 后产生的一些关键指标:

  • 迁移后 Aurora 实例数为 124 个 r6g.4xlarge 和 r6g.8xlarge Aurora Graviton2 实例,它们构成 62 个双节点集群(节点分布在 2 个可用区以实现高可用性)。这取代了 332 个 C5 实例上的 166 个 EC2 分片,所需的 vCPU 总共减少了 63%。
  • 迁移使成本降低了20%,并且随着时间的推移会继续增加。
  • RDS 代理支持繁重的应用程序连接负载,包括部署在 亚马逊弹性 Kubernetes 服务 (Amazon EK S) 集群上的密集型水平扩展应用程序。他们在负载峰值期间实现了 10:1 的连接压缩,数据库连接数保持稳定。
  • 与 MySQL 相比,Aurora 查询缓存是性能提升的重要组成部分。在所有分片中,平均有 40% 的查询被缓存。
  • 按运营人员因素计算,可节省大量资金。数据库管理团队成员可以专注于新的战略项目,而不是让以前的系统保持正常运行。减少页面和运营问题提高了团队士气和非工作时间。
  • 在停机时间最短的情况下完成了小型发动机升级。该农场目前正在最新的 Aurora 版本 2 次要版本上运行。
  • 使用 CloudWatch 和性能洞察简化监控。
  • 亚马逊云科技 的响应式支持:
    • 在核心迁移阶段, 每周与 Aurora 和 RDS 代理团队成员举行项目审查会议。
    • 提供了 SQL 查询优化建议。
    • 增强的 RDS 代理可通过架构整合更好地支持我们的用例。

吸取的教训

他们有以下收获:

  • 管理大量 Aurora 集群需要一种策略来管理集群和实例的参数组。您需要允许针对不同的实例大小进行参数调整,并且可能需要按集群进行覆盖。在他们的环境中需要调整的是常见的 MySQL 超时、缓冲区大小和最大连接参数。
  • 花点时间了解所有 Aurora 参数组选项以及它们在集群和实例级别上的含义。
  • 在进行与应用程序相关的更改和配置时,请记住 RDS 代理的性能。RDS Proxy 在连接参数之间保持一致的情况下性能最佳,可以最大限度地利用池化并减少锁定。
  • 如果应用程序不支持读写分离功能,则修改现有的旧版应用程序以利用 Aurora 读取器终端节点可能既复杂又耗时。请务必对应用程序进行适当的分析,以确保它们可以最好地使用 Aurora 集群架构。

结论

在这篇文章中,我们看到了VMware Tanzu CloudHealth如何对客户云资产数据的主数据存储进行现代化改造,以支持业务的持续增长。Aurora 上的现代化数据库解决方案具有高度的弹性、可扩展性和高性能,并节省了 20% 的成本。

考虑根据您当前的数据库工作负载要求评估 Aurora,以利用全球数据库、无服务器计算和跨 亚马逊云科技 区域灾难恢复等创新功能。此外,请查看 “ 如何规划成功的数据库现代化 ” 博客文章,了解如何正确进行这种复杂的数据库技术转型的选项和建议。


作者简介

彼得·费恩 是 VMware 云管理部门的二级参谋工程师。他在VMware Tanzu CloudHealth平台上工作,负责设计和设计其数据存储层。他非常热衷于构建和运营可扩展的 SaaS 应用程序。

Rajesh Matkar 是 亚马逊云科技 的首席合作伙伴数据库专家解决方案架构师。他与 亚马逊云科技 技术和咨询合作伙伴合作,为数据库项目提供指导和技术援助,帮助他们提高解决方案的价值。

Sahil Thapar 是一名首席解决方案架构师。他与 ISV 客户合作,帮助他们在 亚马逊云科技 云上构建高度可用、可扩展和弹性的应用程序。他目前专注于容器和机器学习解决方案。


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