关于 Amazon Aurora 你所不知道的一切

传统的数据库系统在性能、可靠性和扩展性上都面临诸多挑战。为了应对这些局限性,Amazon Aurora 应运而生,提供了一种全新的解决方案。

数据库是运行业务应用程序的关键组成部分。为了提供更优质的服务,它们需要具备更大的容量、更高的可靠性和更快的速度。亚马逊云服务(AWS)帮助企业轻松管理数据,从而提高客户满意度。

AWS Aurora Web服务是其中的一个典型代表。它利用集群卷来管理数据,并将其分配用于紧急备份,确保数据的安全性和可靠性。

什么是亚马逊极光?

Amazon Aurora 是一种云原生的数据库,它与开源的 MySQL 和 PostgreSQL 完全兼容。Aurora 能够支持所有开源MySQL的功能,并且与在这些数据库上运行的应用程序具有直接的兼容性。

Aurora 的设计目标是为那些需要完全托管的数据库服务的客户提供服务。它不仅拥有开源数据库的成本效益和易用性,还具备与商业数据库相媲美的卓越性能。

Aurora 的性能比传统的 MySQL 快五倍,比 PostgreSQL 快三倍。Amazon RDS负责处理配置、备份和恢复等繁琐的任务。用户无需支付前期费用,只需按月支付使用费。

Aurora 的独特之处在于,它以远低于商业数据库的成本,提供了卓越的操作能力和企业级的功能。

Aurora 在全球范围内提供了无与伦比的性能、可用性、安全性和可靠性。自2014年推出以来,Aurora 一直是AWS产品组合中增长最快的服务之一。

Amazon Aurora 有什么用?

Aurora 的快速发展受到了多个行业的强烈关注。在过去一年中,我们看到金融服务、软件和互联网、娱乐和游戏以及零售等行业对它表现出浓厚的兴趣。

许多客户选择迁移到 Aurora MySQL 和 Aurora PostgreSQL,以此来整合他们现有的 MySQL 和 PostgreSQL 数据库。此外,我们还看到不少客户从诸如 Oracle 或 Microsoft SQL Server 等传统数据库迁移到 Aurora PostgreSQL。

这些“摆脱束缚”的客户已经厌倦了支付高昂的许可费用,并将自己锁定在传统数据库的生态系统中。那些处于高增长阶段的客户,希望能够在所有地区快速、无缝地进行扩展,并能够跨AWS服务进行集成。

Amazon Aurora 的优势

以下是使用 Amazon Aurora 的优势:

可扩展性

用户可以启用自动扩展功能。当存储需求增加时,系统会自动增加存储容量。反之,当存储需求减少时,数据库的大小也会相应减小。

成本效益

用户只需为实际使用的计算能力和存储空间付费,无需支付任何前期费用或其他隐藏费用。 月度付款方式简单明了。

安全

Amazon VPC 允许用户隔离运行数据库的网络,确保数据的安全性。

可以使用 AWS Key Management Service 创建加密密钥,从而进一步保护用户的数据。

高可用性和耐用性

用户可以在多个可用区中创建 Aurora 的副本,从而提高数据的可用性。

Aurora 作为一个全球数据库,可以轻松地分布在多个 AWS 区域,从而降低本地读/写速度。

迁移支持

若要将本地数据库迁移到 Aurora,用户可以使用 pg_dump 或 MySQL dump 命令。

完全托管

Aurora 使用起来非常简单方便。用户可以轻松地通过 AWS RDS 控制台设置实例。 Aurora 使用 Amazon Cloudwatch 提供监控服务,无需额外费用。

用户无需担心配置、更新或升级等问题。 亚马逊全面掌控软件的各个方面,并进行必要的修补工作。

Amazon Aurora 的最佳功能

以下是 Amazon Aurora 的最佳功能:

可扩展性:这是 Amazon Aurora 最突出的特点之一。数据库能够根据存储需求自动调整大小。存储卷可以以 10 GB 的增量进行增加,最大可达 128TB,从而实现无缝的存储扩展。

高吞吐量:SysBench 基准测试显示,Aurora 的吞吐量提高了 5 倍。Amazon Aurora 采用了各种软硬件技术,以最大限度地利用可用内存、计算能力和网络资源。为了提高性能的一致性,输入和输出操作采用了诸如仲裁等分布式系统技术。

监控和修复实例:Amazon RDS 持续监控 Amazon Aurora 数据库以及底层 EC2 实例的运行状况和性能。如果数据库和所有相关进程出现故障,Amazon RDS 会自动重启数据库。

加密:Amazon Aurora 允许用户使用通过 AWS Key Management Service 控制和创建的密钥来加密数据库,从而提供高级别的安全性。此外,Amazon Aurora 还使用 SSL 加密来保护传输过程中的数据。

易于使用:Amazon Aurora 非常容易使用。通过 Amazon RDS 管理控制台,用户可以创建新的 Amazon Aurora 数据库实例。只需一次 API 调用或使用 CLI 命令即可完成。Amazon Aurora 数据库实例针对每种数据库实例类型预先配置了适当的参数和设置。

成本效益:用户只需为实际使用的资源付费,无需支付预付费用或其他隐藏费用。月度付款方式非常简单。

迁移支持:要将本地数据库迁移到 Aurora,用户可以使用 pg-dump 或 MySQL dump 命令。

Aurora 是完全托管的:用户可以立即开始使用它。只需使用 AWS RDS 控制台创建实例或从代码中调用 API即可。用户无需担心配置、更新或升级等问题。

亚马逊极光架构

Aurora 数据库的整个架构是建立在传统数据库管理系统(DBMS)的基础之上的。它重用了大部分DBMS组件,如事务管理器、查询执行引擎和恢复管理器。

Amazon Aurora 是一种超越传统 DBMS 的新型数据库系统。它对现有的 DBMS 进行了诸多改进,以提高其可用性、可靠性和可伸缩性。

这些改进包括:

  • 采用主从副本架构
  • 使用可复制的远程数据存储
  • 仅将更改日志保存到远程磁盘

Amazon Aurora 的架构可以横向扩展传统关系数据库的存储层。

Amazon Aurora 的主数据库实例会将重做日志传递到其存储层进行处理。存储层负责处理日志,创建和存储新的页面版本,并将所有内容备份到 S3。

图片来源:AWS

Amazon Aurora 只需要创建额外的数据库引擎实例,并在扩展期间将它们与现有的存储层连接起来。通过将这些并行处理的任务委托给存储层,消除了数据复制过程中的瓶颈。

这种架构允许创建许多新功能,例如:

  • 即时崩溃恢复:无需从上一个检查点重放日志
  • 快速故障转移:无需担心哪个副本数据库拥有最新的重做日志记录。存储层负责处理。
  • 回溯:由于存储层拥有流式重做日志,因此可以将数据“回溯”到过去的特定时间点,而无需从 S3 备份中恢复检查点。

设置亚马逊极光

以下是成功设置 Amazon Aurora 的步骤。

#1. 登录 AWS 管理控制台并打开 RDS。

#2. 点击创建数据库。

#3. 选择引擎选项为 Amazon Aurora。

#4. 选择您需要的 Aurora MySQL 版本。

#5. 创建数据库集群标识符并设置凭证,包括用户名和密码。

#6. 从下拉选项中选择实例配置,然后选择是否创建副本的选项。

#7. 选择连接选项,如下所示。

#8. 从现有的 VPC 安全组中选择或创建一个新的。

#9. 启用增强监控,选择粒度和监控角色选项。

#10. 最后,点击创建数据库。

#11. 您已成功创建 Amazon Aurora 数据库。

定价模式:Amazon Aurora

Aurora Serverless ACU v2 的每小时费用为 0.12 美元,是预配置 Aurora ACU 价格的两倍。这意味着:

  • 当前的最低运行成本是 4 个 ACU,每小时 0.48 美元或每月 350 美元。
  • 对于病态触发自动扩展功能的工作负载,半个 ACU 的最低扩展时间为 30 秒,费用为 0.0005 美元。

Aurora Serverless V2 的每月费用为 350 美元。每个自动缩放事件至少需要支付 0.0005 美元。虽然等效的 Aurora 容量每月花费 175 美元,但它不具备响应式无服务器自动缩放功能。

使用案例:Amazon Aurora

#1. 软件即服务(SaaS)

它利用了可以在存储和实例扩展方面实现灵活性的多才多艺架构。因此,Amazon Aurora 让公司能够专注于开发高质量的应用程序,而无需担心数据库的管理问题。

#2. 游戏目的

AWS Aurora 的工作方式与关系数据库相同。它提供了高吞吐量、海量存储容量、高可用性和高可靠性。

#3. 企业应用

Amazon Aurora 兼容任何已经比关系数据库更可靠的公司。与其他选项相比,Aurora 具有成本效益,因为它能够将价格降低高达 90%。

Aurora 对 MySQL 和 PostgreSQL 的兼容性

Amazon Aurora 的设计目标是实现高性能、全球可用性以及与 MySQL/PostgreSQL 的完全兼容性。标准工具让用户能够轻松地从 Aurora 迁移 MySQL 和 PostgreSQL 数据库。用户还可以使用适用于 Aurora PostgreSQL 的 Babelfish 来运行旧版的 SQL Server 应用程序,而只需进行最少的代码修改。

Amazon Aurora 使用标准的 PostgreSQL 导入/导出工具,例如 pg_dump 或 pg_restore。 用户还可以使用 Amazon RDS 或 MySQL 数据库快照来创建新的 Amazon Aurora 表。

数据库快照的创建速度通常很快,但这取决于迁移的数据量和数据格式。

亚马逊极光与亚马逊 RDS

架构设计

RDS 的架构相似之处在于,它允许用户在 Amazon EC2 上手动安装数据库引擎,但将配置和维护工作交给了 AWS。 RDS 提供了许多功能,例如自动故障转移、备份等。 RDS 使用 Amazon EBS 卷来存储日志和数据库数据。

Aurora 数据库存储系统可靠且容错。 Aurora 的数据库存储与实例是相互独立的。 Aurora 将数据存储在六个副本中,每个副本的大小为 10GB。 这些副本分布在三个可用区中。 即使用户只有一个 Aurora 实例,数据仍然拥有六个副本。

表现

RDS 使用 SSD 存储来提高 I/O 吞吐量性能。 提供了两种支持 SSD 的存储选项。 一种用于高性能 OLTP 应用程序,另一种用于通用、经济高效的用途。

在可比硬件上,Aurora 提供的性能是 PostgreSQL 的两倍,是标准 MySQL 的五倍。 Aurora 的性能始终更高、更稳定。

数据库引擎支持

RDS 与 MySQL、PostgreSQL 和 MariaDB 以及 Microsoft SQL Server 和 Oracle 兼容。

Aurora 与 PostgreSQL 和 MySQL 兼容。 这意味着用户可以在 PostgreSQL 和 MySQL 上使用现有的数据库工具和应用程序,而无需进行任何更改。

耐用性和可用性

Aurora 拥有独特的存储模型,允许以极低的恢复点目标(RPO)进行连续备份和恢复。 这使得它比 RDS 更可靠、更耐用。

Aurora 中的数据在设计上是持久的。 数据总是有多个副本。 每个 Aurora 集群都有六个存储节点,分布在三个可用区中。 即使只有一个计算节点,数据仍然拥有多个副本。

弹力

由于其架构设计,Aurora 比 RDS 更具弹性。 它可以快速从故障中恢复。 如果计算节点崩溃,Aurora 可以快速恢复。

贮存

RDS 存储自动扩展功能会将存储容量扩展到 64 TiB(SQL Server 为 16 TiB),以适应不断增长的数据库工作负载。 整个过程不会产生停机时间。

Aurora 通过将存储从最小 10 GB 增加到最大 128 TiB 来自动扩展存储。 存储以 10 GB 的增量增加,对数据库性能没有任何影响。

可扩展性

垂直扩展:RDS 和 Aurora 都允许用户将内存和计算资源扩展到最大 244 GiB RAM 和 32 个虚拟 CPU。用户可以在几秒钟内完成扩展操作。

Aurora Auto Scaling Dynamic:Aurora Auto Scaling 通过使用单主复制来动态调整 Aurora 数据库集群中可用的 Aurora 副本数量。 RDS 不支持此类自动缩放。

复制

RDS 可以用于提供最多五个副本。 复制过程也比 Aurora 慢。

Aurora 最多可以配置 15 个副本,复制只需几秒钟。 Aurora 的扩展速度更快,因为它可以快速添加新的只读副本。

故障转移

在 RDS 中,读取副本的故障转移是手动进行的,这可能会导致数据丢失。多可用区(备用实例)可用于自动执行故障转移并防止数据丢失。

为了防止数据丢失,Aurora 使用故障转移自动读取副本。 Aurora 的故障转移时间更快。

集群端点

RDS 有一个集群端点,用户可以使用它来执行写入查询。这是一个指向当前主数据库实例的 DNS 指针。在故障转移期间,RDS 通过简单的 DNS 更改将端点路由到新的主服务器。

集群端点在 Aurora 中仍然可用,用于编写查询。该端点还充当读取复制的负载均衡器。此端点可用于响应用户的读取查询。

备份

RDS 会在数据库实例的备份窗口期间自动创建并保存数据库实例的备份。 RDS 将数据库实例快照作为存储卷,备份所有数据库,而不仅仅是用户选择的数据库。

Aurora 自动备份集群卷,并在备份保留期内不断恢复数据。 Aurora 备份是连续和增量的,因此用户可以快速恢复备份保留期内的任何时间点的数据。

以下是 Amazon Aurora 与 Amazon RDS 的汇总表:

Amazon Aurora Amazon RDS
可以将存储从 10 GB 扩展到 128 TB RDS 允许所有引擎使用 64 GB,但 SQL Server 只有 16 GB
可以将内存和计算扩展到最多 32 个 vCPU,以及 244 GiB 的 RAM 与 Aurora 相同
支持 MySQL 和 PostgreSQL 支持 Microsoft SQL Server、MariaDB、Oracle Database、MySQL、PostgreSQL 和 Amazon Aurora
支持 15 个副本 支持 5 个副本
定价取决于 I/O 操作 可以免费试用,没有最低使用费

Amazon Aurora 与 DynamoDB

耐用性和可用性

DynamoDB 的每条数据都会被复制到多个物理节点。亚马逊将这些物理节点放置在多个区域(也称为可用性区域)中,以确保在发生火灾或重大停电等灾难时具备高度的耐用性和可用性。即使一个副本发生故障,操作也会继续进行。 SSD 也具有很高的可靠性和耐用性。

备份和恢复

DynamoDB 提供按需备份和时间点备份(PITR),允许用户访问数据库的任何状态。 DynamoDB 能够备份任意数量的数据。性能和可用性不受影响。备份只需很短的时间,用户不必担心备份计划或后台进程。 AWS 允许通过一次 API 调用来执行备份恢复操作。

Amazon Aurora 的备份过程类似于 DynamoDB。 它是在没有任何性能中断或数据库服务中断的情况下创建的。 Amazon 备份存储在 S3 存储桶中。 如果用户不指定备份窗口,Aurora 会自动创建 30 分钟的备份。

访问控制

DynamoDB 通过限制数据库创建和查询权限的细粒度策略来支持 IAM 用户和角色。 Amazon Aurora 也具有类似的权限方案。

但是,Aurora 还提供了与 MySQL 和 PostgreSQL 兼容的连接接口,从而可以连接数据库。

DynamoDB 是一种区域服务,不受 VPC 边界的约束。 然而,Aurora 数据库集群需要在明确定义网络边界的 VPC 中建立。 用户还可以使用 VPC 安全组来控制允许哪些设备或 Amazon EC2 实例连接到数据库实例。

下面是 Amazon Aurora 与 DynamoDB 的汇总表:

Amazon Aurora DynamoDB
支持 MySQL 和 PostgreSQL 的关系型数据库 NoSQL 数据库
多区域、单主副本 多区域、多主副本
可在 1 分钟内提升为主副本 高可用性
复制延迟小于 1 秒 复制延迟亚毫秒级

结论

总结来说,我们正步入关系数据库的新时代,而 Aurora 只是一个开始。 客户的反应是非常积极的。 许多行业的领导者,如 Capital One、Dow Jones、Netflix 和 Verizon,都在将他们的关系数据库工作负载迁移到 Aurora,包括 MySQL 和 PostgreSQL 兼容版本。