在AWS上提升你的MySQL数据库性能

在 AWS 上提升你的 MySQL 数据库性能

关键要点

  • 云托管数据库可利用灵活性、可扩展性和架构的便利性。
  • Amazon 的 MySQL 服务始于 2009 年,经过多年创新,现在支持数十万客户。
  • AWS 提供多种功能,包括多可用区(Multi-AZ)配置、Aurora 服务器无缝扩展和加强的故障恢复能力。
  • 集成机器学习与数据分析的功能已大幅简化工作流程。

在过去的十五年里,云托管数据库的发展使我们能够利用云的灵活性、可扩展性和架构灵活性。开源数据库迅速推动了这种转型,成为现代数据战略的重要组成部分。亚马逊从 2009 年推出Amazon Relational Database Service (Amazon RDS) forMySQL 开始了与开源数据库的旅程。MySQL是最受欢迎的开源数据库引擎之一,推动了早期互联网的发展,并继续是众多企业构建简单直观的 Web 应用程序的首选。AWS 在 MySQL领域拥有丰富的创新历史,而这篇文章则展示了我们的能力以及我们如何在幕后协同工作。

AWS 在 MySQL 的创新

MySQL 作为第一个在 上线后,与 和 一同推出了。 Amazon RDS for MySQL使您能够专注于应用程序开发,管理繁琐的数据库管理任务,包括备份、升级、软件修补程序、性能改进、监控、扩展和复制。 是为云而设计的关系数据库管理系统,具有完全的 MySQL 和 PostgreSQL 兼容性。Aurora 以十分之一的成本提供商业级数据库的性能和可用性。经过多年的创新,数十万客户在 AWS 上运行着他们的 MySQL数据库。AWS 当前有超过 100 万个托管 MySQL 实例。我们继续观察到,客户正在迁移现有的 MySQL 工作负载,并在 AWS 上使用托管 MySQL 构建新的工作负载。以下图表是 AWS 自 2009 年起在管理 MySQL 领域的创新历史概览。

![AWS MySQL创新历史](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/12/13/DBBLOG-3678_1.continuous- 删除)

通过 Amazon RDS for MySQL,您可以将计算与存储结合,选项为每个主实例创建多达 15 个只读副本,最多可与级联副本支持 155个副本。您可以利用多达 99.95% 的可用性和 。选择带有一个待命实例的 Multi-AZ配置时,Amazon RDS 控制面板会通过物理同步复制在主 (Amazon EBS) 卷与次级 EBS 卷之间部署一个二级待命实例,并在 1-2分钟内完成故障转移。以下示意图展示了 Multi-AZ 架构。

![Multi-AZ架构](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/12/13/DBBLOG-3678_2.RDS- 删除)

您还可以使用两个可读待命实例的 Multi-AZ 配置,以提供来自次级实例的额外读取容量,将故障转移时间缩短至 25-75秒,并提高写入性能。如需更多信息,请参阅 。

客户告诉我们,他们在传统自我管理数据库中遇到了扩展和生命周期管理问题。因此,我们创新并推出了 Aurora,其中计算和存储解耦,允许您拥有独立的生命周期。Aurora 于 2019 年获得了 SIGMOD 系统奖,旨在为云环境根本性 redesign关系数据库存储。对于架构的深入分析,请参阅 。Aurora 提供 99.99% 的可用性,您的数据在三个可用区间以六种方式复制,且无额外成本。Aurora的计算和存储层分离的架构还使我们能够增加增强 MySQL 能力的功能,例如立即启动 、支持多个地区架构的 ,及适合需要纵向扩展能力的应用程序的 。

![Aurora架构](https://d2908q01vomqb2.cloudfront.net/887309d048beef83ad3eabf2a79a64a389ab1c9f/2023/12/13/DBBLOG-3678_3.aurora- 删除)

我们的客户依赖于开源数据库的安全性与长期稳定性。与上游开源社区的协作对我们如何构建和运营数据库服务至关重要。我们通过为 MySQL 和 MariaDB引擎以及更广泛的生态系统做出贡献,例如 、 和 来与社区合作。我们最近为 MySQL开源的创新包括 和 MySQL 的审计插件。MariaDB 基金会最近 为 MariaDB 的主要贡献者。如需了解 AWS 最近对 MariaDB 的赞助,请访问 。

在接下来的部分中,我们将讨论 Amazon RDS for MySQL 和 Amazon Aurora MySQL的一些关键功能。这些功能涵盖了可扩展性、可用性、数据组合集成和性价比四个方面,这些都是选择适合您工作负载的云数据库时的重要标准。

可扩展性

AWS 上的托管 MySQL 既提供横向扩展也支持纵向扩展。除了轻松启动副本,客户还可以选择以多种其他方式扩展,下面讨论的是其中的一些方式。

Aurora Serverless v2 (Amazon Aurora MySQL)

我们的客户需要根据变化的工作负载模式纵向扩展其应用程序的能力。传统的纵向扩展方法是有干扰的,因为它需要停机时间来将实例更改为更大的大小。AuroraServerless V2 解决了这一纵向扩展的挑战,无需停机,便可无缝地扩展 Aurora数据库实例的计算能力。它会根据应用程序的需求自动上下扩展容量。您可以在云中运行数据库,而无需管理任何数据库实例。Aurora Serverless v2支持在集群中多个无服务器实例、混合集群配置(在同一集群中分别配置的无服务器和预配置实例)、细粒度的扩展和收缩、多可用区能力,以及 Aurora 全球数据库。

如果您有兴趣了解 Aurora Serverless v2 如何响应应用需求进行上下扩展,请查看下面的 (27分钟处)。为了启用无服务器功能,AWS 会管理一组计算实例,并持续监控可能需要更多资源的数据库进程,如 CPU、内存和网络,以便随时上下扩展。一旦识别出需要,AWS会自动将数据库实例从繁忙主机移动至空闲主机,而这一过程不会造成干扰。我们观察到,季节性需求的客户、具有多租户应用程序的 ISV 和 CPU利用率较低的较小客户群从 Aurora Serverless 中获益最大。

Aurora 全球数据库 (Amazon Aurora MySQL)

大多数客户,尤其是在金融服务等高度受监管行业的客户,具有严格的灾难恢复要求,以满足其合规性义务。在发生故障时,从一个区域切换到另一个区域的应用程序可非常耗时,可能导致过大的数据损失。为了实现管理灾难恢复,减少 RPO 和 RTO,而不会对生产工作负载产生负面性能影响,我们推出了 。Aurora全球数据库为全球分布的应用程序设计,允许单个 Aurora数据库跨多个区域部署。它的多区域架构可以支持希望在故障期间快速恢复其数据和应用程序的企业。这种架构意味着您的数据和应用程序始终受到区域范围故障的保护,此外 Aurora 还提供了内置的可用性功能来保护区域内。

与基于 binlog 的复制不同,区域之间的物理复制确保您的数据保持同步,并对主数据库集群的性能影响最小。

尽管灾难恢复是一个主要用例,Aurora 全球数据库也适用于分布式应用程序或需要读取扩展的客户。您可以使用 Aurora全球数据库将读取流量卸载到其他区域,从而释放主区域的负担。您也可以在 Amazon Aurora MySQL上使用写入转发,简化端点管理并在次级区域发出写入事务。Aurora 全球数据库会将这些事务转发到主区域,首先在主区域提交。

Aurora 全球数据库还提供 (没有计算节点的次级区域)或与 Aurora Serverless v2配合的全球数据库配置(次级或主区域中的实例可以采用无服务器模式,从而更快扩展而不是旋转新的实例),以帮助您找到价格与性能之间的最佳平衡。

提供两个可读待命的 Multi-AZ (Amazon RDS for MySQL)

Amazon RDS for MySQL 提供支持两个可读待命实例的 Multi-AZ 集群部署。这两个待命 DB实例也可以提供读取流量,而不需要附加其他只读副本 DB实例。此部署选项非常适合当工作负载需要更低写入延迟、自动故障转移以及更多读取容量时。此配置支持比只有一个待命实例的 Multi-AZ DB实例部署高出两倍的事务提交速度,而不会影响数据持久性。该配置的自动故障转移通常在 35 秒内完成。

数据组合集成

托管 MySQL 与多个 AWS 服务集成。在本节中,我们讨论一些我们的数据组合集成。

Aurora 机器学习集成 (Amazon Aurora MySQL)

Amazon Aurora MySQL 与 原生集成。Amazon SageMaker 是一项完全托管的服务,集合了一套广泛的工具,以支持任何用例的高性能、低成本机器学习(ML)。借助 SageMaker,您可以使用笔记本、调试器、分析器、管道、MLOps 等工具进行高效构建、训练和部署 ML模型,全部在一个集成开发环境(IDE)中。SageMaker 支持管理要求,并简化对您 ML 项目的访问控制和透明性。此外,您可以构建自己的 FM(在海量数据集上进行训练的大型模型),并使用专用工具来微调、实验、重新训练和部署 FM。SageMaker提供数百个可预训练模型的访问权限,包括可公开使用的 FM,您可以轻松地通过几个步骤进行部署。

此集成将将托管 MySQL 中的事务数据移动到 SageMaker 的步骤数量减半,使您能够为任何用例构建、训练和部署 ML模型。借助这种内置集成,您无需花费时间编写代码来访问数据库,以格式化数据以便用于 ML 模型。相反,您可通过运行简单的 SQL 查询来调用您选择的 ML模型,然后将模型结果应用于您的应用程序。该集成在近年来生成式 AI 用例快速增长的情境下特别有价值。

Amazon Aurora MySQL 与 Amazon Redshift 的零 ETL 集成 (Amazon Aurora MySQL 和

Amazon RDS for MySQL)

Amazon Aurora 和 Amazon RDS 支持与 (AWS 的云数据仓库)的 ,以在近实时中通过 Amazon Redshift 使用 Aurora 中的 PB 级事务数据进行分析和 ML。 Aurora 中的事务数据写入后数秒立即可在 Amazon Redshift中使用,无需手动构建和维护复杂的数据管道来执行提取、转换和加载(ETL)操作。截至目前,这种集成已在 Amazon Aurora MySQL中正式可用,并且在 Amazon RDS for MySQL 客户中处于预览阶段。

性价比

在本节中,我们讨论一些许多增强功能,这些功能为我们的客户提供更好的性价比。

Aurora I/O 优化配置 (Amazon Aurora MySQL)

于 2023 年 5 月推出。这种新配置为 I/O密集型应用程序的客户提供优化的性价比和可预测的定价。Aurora I/O 优化提供了更高的性能,从而增加吞吐量并减少您的最苛刻工作负载的延迟。使用 Aurora I/O 优化,您无需为读取和写入 I/O 操作付费--只需为您的数据库实例和存储使用付费,从而使您能够轻松预测数据库开支。如果您的 I/O支出超过总支出的 25%,您可以使用此配置节省高达 40% 的数据库成本。随着 IOPS 使用量的提高,I/O 成本节省也会呈线性增加。

优化读取和写入 (Amazon Aurora MySQL 和 Amazon RDS for MySQL)

通过推出 ,AWS 能够消除涉及 MySQL 的双写缓冲区的两步写入过程,通常用于维护 16 KiB页面写入时的一致性。这仅可通过配备内置硬件能力的 实现,以确保 MySQL 的 16 KiB 页面写入的完整性。因此,Amazon RDS for MySQL 现在提供比自我管理的 MySQL 高出 2倍的写入吞吐量。作为我们进行优化写入工作的一部分,我们还识别了额外的写入吞吐量改进,可以为您的应用程序提供高达 3倍的增量写入吞吐量。要使用优化写入功能,您必须选择 ,并使用 MySQL 版本 8.0.30 及以上版本。

利用本地 NVMe 实例存

Leave a Reply

Required fields are marked *