Amazon Aurora 是一种关系数据库服务,既具有高端商用数据库的速度和可用性,又具有开源数据库的简单性和成本效益。在相同硬件上运行时,MySQL 兼容版本的 Aurora 提供比标准 MySQL 更高的吞吐量,而且无需修改就能运行现有 MySQL 应用程序和工具。
高性能和可扩展性
提高吞吐量
Amazon Aurora 使用各种不同的软件和硬件技术来确保数据库引擎能够充分利用可用计算、内存和联网。I/O 操作使用 Quorum 等分布式系统技术来提高性能一致性。
一键式计算扩展
使用 Amazon RDS API 或在亚马逊云科技管理控制台中单击几下,便能扩展计算和内存资源,为扩大或减小部署规模提供支持。计算扩展操作通常在几分钟内完成。
存储自动扩缩
Aurora 会自动扩展 I/O 以满足要求最苛刻的应用程序的需求。随着存储需求的增长,Aurora 还会增加数据库卷的大小。您的卷将以 10GB 的增量增长,最多可增长到 128TiB。您无需为数据库预置多余的存储空间来处理未来的增长。对数据库集群使用 Amazon Aurora I/O 优化版配置时,当 I/O 支出超过 Aurora 数据库支出的 25% 时,Aurora 还可以节省高达 40% 的成本。要了解更多信息,请访问 Amazon Aurora 存储和可靠性。
低延迟只读副本
通过创建最多 15 个数据库 Aurora 副本,提高读取吞吐量以支持大容量应用程序请求。Amazon Aurora 副本与源实例共享相同的底层存储,从而降低成本并避免在副本节点处执行写入操作。这样可以释放更多的处理能力来处理读取请求和减少副本滞后时间(通常可降低至单数位毫秒)。Aurora 提供一个读取器终端节点,应用程序可以直接连接,不必跟踪副本的添加和删除。Aurora 还支持自动伸缩功能,通过自动添加和删除副本来响应您指定的性能指标的变化。
Aurora 支持跨区域只读副本。跨区域副本为您的用户提供快速本地读取,并且每个区域可以具有 15 个额外 Aurora 副本以进一步扩展本地读取。您可以使用外部 MySQL 数据库设置自己的二进制日志复制。
无服务器配置
Aurora Serverless 是一种面向 Aurora 的按需自动伸缩配置,其中,数据库将根据您应用程序的需求来自动启动、关闭以及扩展或缩减容量。 利用 Aurora Serverless,您可以在云中运行数据库,而无需管理任何数据库实例。
自定义数据库终端节点
借助自定义终端节点功能,您可以在不同数据库实例集之间分配工作负载并对其执行负载均衡。例如,您可以预置一组 Aurora 副本以使用具有更高内存容量的实例类型,以便运行分析工作负载。然后,自定义终端节点可以帮助您将分析工作负载路由到这些经过适当配置的实例,同时使集群中的其他实例与此工作负载隔离。
Parallel Query
Amazon Aurora Parallel Query 提供对当前数据的更快分析查询。它可以将查询速度提高多达 2 个数量级,同时保持核心事务工作负载的高吞吐量。通过将查询处理向下推送到 Aurora 存储层,它不仅获得了大量计算能力,还减少了网络流量。使用 Parallel Query 可在同一个 Aurora 数据库中互不干扰地运行事务和分析工作负载。
高可用性和持久性
实例监控和修复
Amazon RDS 可持续监控您的 Amazon Aurora 数据库和底层 EC2 实例的运行状况。发生数据库故障时,Amazon RDS 将自动重启数据库及相关进程。Amazon Aurora 不需要对数据库重做日志进行崩溃恢复回放,因此大大缩短了重启时间。它还将数据库缓冲区缓存与数据库进程隔离,从而在数据库重启时保留缓存。
包含 Aurora 副本的多可用区部署
出现实例故障时,Amazon Aurora 使用 RDS 多可用区技术自动执行故障转移到您在三个可用区任何一个中创建的一个 Amazon Aurora 副本(最多可创建 15 个)。如果没有预置 Amazon Aurora 副本,当出现故障时,Amazon RDS 将尝试为您自动创建一个新的 Amazon Aurora 数据库实例。 使用适用于 MySQL 的亚马逊云科技 JDBC 驱动程序(一种可以用作 MySQL Connector/J 驱动程序的嵌入式替代品的开源驱动程序)将故障转移时间降至最低。
Global Database
对于全球分布的应用程序,您可以使用 Global Database,其中单个 Aurora 数据库可以跨多个亚马逊云科技中国区域,以实现快速本地读取和快速灾难恢复。Global Database 使用基于存储的复制来跨多个亚马逊云科技中国区域复制数据库,典型延迟小于 1 秒。您可以使用辅助区域作为备份选项,以防您需要从区域性降级或中断中快速恢复。可以在不到 1 分钟的时间内将辅助区域中的数据库提升为完全读/写功能。
容错和自我修复存储
每 10GB 的数据库卷组块都能在三个可用区间用六种方法进行复制。Amazon Aurora 使用容错存储,它能够以透明方式应对最多两个数据副本丢失的情况,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对最多三个副本丢失的情况。Amazon Aurora 存储还具有自我修复能力,可连续扫描数据块和磁盘有无出错并自动更换。
自动、连续、增量备份和时间点还原
Amazon Aurora 的备份功能可为您的实例实现时间点恢复。这样,您就能够将数据库还原到保留期内任何一秒钟的状态,最多可还原到前五分钟的状态。您的自动备份保留期最长可配置为 35 天。自动备份存储在 Amazon S3 中,其设计持久性为 99.999999999%。Amazon Aurora 备份具有自动、增量和连续性,且对数据库性能没有影响。
数据库快照
数据库快照是用户启动的对您存储在 Amazon S3 中的实例的备份,它们将会被保留到您明确删除它们为止。它们利用自动增量快照来减少所需的时间和存储空间。您可以根据需要随时从数据库快照创建新实例。
Backtrack
您可使用 Backtrack 将数据库快速倒回之前的时间点,而不需要利用备份还原数据。这使您可以快速从用户错误(例如删错表格或行)中恢复。当您启用 Backtrack 后,Aurora 将保留指定的 Backtrack 持续时间段内的数据记录。例如,您可以将 Backtrack 设置为最高可以将数据库回退 72 小时。Backtrack 在几秒钟内即可完成,即使针对大型数据库也是如此,因为无需复制任何数据记录。您可以向前和向后回溯,以找到错误发生前的时间点。
Backtrack 对于开发和测试也十分有用,特别是测试删除或以其他方式导致数据无效的情形下。只需回溯到原始数据库状态,您就可以运行其他测试。您可以创建一个通过 API 调用 Backtrack 的脚本,然后再运行测试,以便轻松地将其集成到您的测试框架中。
高度安全
网络隔离
Amazon Aurora 在 Amazon VPC 中运行,这样您可以将数据库隔离在自己的虚拟网络中,并使用行业标准的加密 IPsec VPN 与您的本地 IT 基础设施连接。要了解有关 VPC 中的 Amazon RDS 的更多信息,请参阅 Amazon RDS 用户指南。此外,使用 Amazon RDS,您可以配置防火墙设置并控制对数据库实例的网络访问。
资源级权限
Aurora 与 Amazon Identity and Access Management (IAM) 集成,并使您能够控制您的 Amazon IAM 用户和组可对特定 Aurora 资源(如数据库实例、数据库快照、数据库参数组、数据库事件订阅、数据库选项组)采取的操作。此外,您还可以标记您的 Aurora 资源,并控制您的 IAM 用户和组可以对具有相同标签(和标签值)的资源组采取的操作。有关 IAM 集成的更多信息,请参阅 IAM 数据库身份验证文档。
加密
Amazon Aurora 允许您使用通过 Amazon Key Management Service (KMS) 创建和控制的密钥加密您的数据库。在使用 Amazon Aurora 加密来运行的数据库实例上,静态存储于底层存储的数据都将加密,同一集群中的自动备份、快照和副本也是如此。Amazon Aurora 使用 SSL (AES-256) 保护动态数据安全。
高级审计
Amazon Aurora 允许您记录数据库事件,且对数据库性能的影响最小。稍后可以对日志进行分析,以实现数据库管理、安全、治理、监管合规和其他目的。您还可以通过将审计日志发送到 Amazon CloudWatch 来监控活动。
完全托管
易于使用
您可以轻松入门 Amazon Aurora。只需使用 Amazon RDS 管理控制台或一个 API 调用或 CLI 即可启动新的 Amazon Aurora 数据库实例。Amazon Aurora 数据库实例预先配置了适合您选择的数据库实例类的参数和设置。您可以在几分钟内启动数据库实例并连接应用程序,无需进行额外配置。数据库参数组提供对数据库的精细控制和微调。
Amazon RDS 蓝绿部署
Amazon RDS 蓝绿部署让您能够在 Amazon Aurora MySQL 兼容版上更安全、更简单、更快速地进行数据库更新,而不造成数据丢失。只需几个步骤,蓝绿部署即可创建一个映射生产环境的模拟环境,并使用逻辑复制保持两个环境同步。您可以在不影响生产工作负载的情况下进行更改,例如进行主要/次要版本升级、架构修改和参数设置更改。
提升模拟环境时,蓝绿部署会阻止对蓝色和绿色环境的写入,直至完成切换。蓝绿部署使用内置的一套切换防护机制,这一套防护机制会在提升时间超过允许的最长停机时间时使提升超时、检测复制错误、检查实例运行状况等。
监控和指标
Amazon Aurora 可为您的数据库实例提供 Amazon CloudWatch 指标,且无需额外费用。您可以使用亚马逊云科技管理控制台查看您的数据库实例的超过 20 个关键运营指标,包括计算、内存、存储、查询吞吐量、缓存点击率和活动连接数。此外,您还可以使用增强监控收集运行数据库的操作系统实例的各项指标。最后,您可以将 Amazon RDS 性能详情(一种数据库监控工具,可方便地检测数据库性能问题并采取纠正措施)与简单易懂的控制面板配合使用,以可视化方式呈现数据库负载。
自动软件修补
Amazon Aurora 将使用最新的补丁保持您的数据库处于最新状态。您可以通过数据库引擎版本管理控制是否以及何时修补实例。Aurora 尽可能使用零停机修补:如果出现合适的时段,则会就地更新实例,在修补过程中,应用程序会话将保留并且数据库引擎会重启,从而导致吞吐量短暂(大约 5 秒)下降。
数据库事件通知
Amazon Aurora 可通过电子邮件或短信通知您重要的数据库事件,例如自动故障转移。您可以使用亚马逊云科技管理控制台或 Amazon RDS API 订阅与 Amazon Aurora 数据库相关的 40 多种不同的数据库事件。
快速数据库克隆
Amazon Aurora 支持快速、高效的克隆操作,可在几分钟内完整克隆数 TB 的数据库集群。克隆可用于实现许多目的,其中包括应用程序开发、测试、数据库更新以及运行分析查询。如果数据立即可用,将能够大幅加快软件开发和升级项目,并提高分析准确度。
您只需点击几下即可完成 Amazon Aurora 数据库的克隆,且不会发生任何存储费用,除非您使用额外的空间来存储数据的更改。
数据库启动/停止
只需点击几下即可手动停止和启动 Amazon Aurora 数据库,从而可以轻松、经济地将 Aurora 用于无需数据库始终运行的开发和测试目的。停止数据库不会删除数据。有关更多详细信息,请参阅启动/停止文档。
迁移支持
Amazon Aurora 将企业级安全性、性能、高可用性和持久性与 MySQL 的低成本和易用性结合在一起。这使其成为将工作负载从昂贵的商用数据库迁移到亚马逊云科技时的绝佳迁移目标。MySQL 的功能使其成为各种数据库工作负载的最佳数据库,适合从简单事务应用程序到具有复杂 SQL 和存储过程的复杂 OLTP 和 OLAP 工作负载。
可将标准的 MySQL 导入和导出工具与 Amazon Aurora 配合使用。您还可以从 Amazon RDS for MySQL 数据库快照中轻松创建新的 Amazon Aurora 数据库。基于数据库快照的迁移操作通常在一个小时内完成,但具体根据所迁移的数据量和格式而异。
您还可以在 Aurora MySQL 数据库和在亚马逊云科技内部或外部运行的外部 MySQL 数据库之间设置基于二进制日志的复制。
成本效益
仅按实际使用量付费
Aurora 无需预先承诺。您按启动的每个实例支付每小时费用,使用完一个 Amazon Aurora 数据库实例后,您可以将其删除。您无需预置多余的存储空间作为安全裕度,只需按实际使用的存储空间支付费用即可。要查看更多详细信息,请访问 Amazon Aurora 定价页面。
任何规模下的价格可预测性
无论应用程序的 I/O 消耗量如何,Aurora 都可以根据您的性价比和价格可预测性需求在两个配置选项之间进行选择,从而灵活地优化数据库支出。这两个配置选项是 Aurora I/O 优化版和 Aurora 标准版。这两个选项都不需要预付 I/O 或存储配置,而且两者都可以扩展 I/O 以支持要求最苛刻的应用程序。
Aurora I/O 优化版是一种数据库集群配置。它帮助客户提高 I/O 密集型工作负载(如支付处理系统、电子商务系统和金融应用程序)的性价比。如果您的 I/O 支出超过 Aurora 数据库总支出的 25%,则使用 Aurora I/O 优化版,您可以为 I/O 密集型工作负载节省高达 40% 的成本。使用 Aurora I/O 优化版,您需要为数据库实例和存储付费。读取和写入 I/O 操作不收取任何费用,因此不管 I/O 可变性如何,所有应用程序都具有价格可预测性。
Aurora 标准版是一种数据库集群配置,可为绝大多数 I/O 使用率从低到中的应用程序提供经济实惠的定价。使用 Aurora 标准版,您可以为数据库实例、存储空间和按请求付费的 I/O 付费。
优化 I/O 成本
对于需要进行大量分析的应用程序,I/O 成本通常是数据库成本的最大来源。I/O 操作由 Aurora 数据库引擎依靠基于 SSD 的虚拟化存储层执行。每个数据库页面读取操作计为一个 I/O。Aurora 数据库引擎依靠存储层发出读取,以获取不在缓冲区缓存中的数据库页面。每个数据库页面在 Aurora PostgreSQL 兼容版中为 8KB,在 Aurora MySQL 兼容版中为 16KB。
Aurora 旨在消除不必要的 I/O 操作,以降低成本并确保资源可用于提供读/写流量。只有将事务日志记录推送到存储层,完成持久性写入时,才消耗写入 I/O 操作。写入 I/O 操作以 4KB 为单位进行计数。例如,1024 字节的事务日志记录计为一个 I/O 操作。然而,当事务日志小于 4KB 时,并发写入操作可通过 Aurora 数据库引擎批量进行,以便优化 I/O 消耗。与传统数据库引擎不同,Aurora 从不将修改后的数据库页面推送到存储层,进一步节省了 I/O 消耗。
您可以在亚马逊云科技管理控制台看到 Aurora 实例消耗的 I/O 操作数量。要查询 I/O 消耗,请转到控制台的 RDS 部分,查看您的实例列表,选择 Aurora 实例,然后在监控部分查找“计费的读取操作”和“计费的写入操作”指标。
将数据库集群配置为 Aurora 标准版配置时,您需要为读取和写入 I/O 操作付费。将数据库集群配置为 Aurora I/O 优化版后,您无需为读取和写入 I/O 操作付费。有关 I/O 操作定价的更多信息,请访问 Amazon Aurora 定价页面。
开发人员生产力
机器学习
Aurora 直接从数据库提供机器学习功能,让您可以通过熟悉的 SQL 编程语言将基于 ML 的预测添加到您的应用程序中。通过 Aurora 与亚马逊云科技机器学习服务之间的简单、优化且安全的集成,您可以访问一系列 ML 算法,而无需构建自定义集成或移动数据。
RDS 代理支持
Aurora 可以与 Amazon RDS 代理(完全托管的高可用数据库代理)结合使用,使应用程序更加可扩展,更能灵活地处理数据库故障,并且更具安全性。RDS 代理允许应用程序汇集和共享与数据库建立的连接,从而提高数据库效率和应用程序的可扩展性它通过在保留应用程序连接的同时自动连接新数据库实例来缩短故障转移时间。它通过与 Amazon IAM 和 Amazon Secrets Manager 的集成来增强安全性。