Amazon Aurora 功能

为什么选择 Amazon Aurora?

Amazon Aurora 是一种关系数据库服务,既有高端商用数据库的高速度和可用性,也有开源数据库的简单性和成本效益。Aurora 与 MySQL 和 PostgreSQL 完全兼容,使现有应用程序和工具无需修改即可运行。

高性能和高可扩展性

根据 SysBench 等标准基准进行的测试表明,其吞吐量最高可达到存储 MySQL 的 5 倍,在类似硬件上运行时,其吞吐量是类似硬件上运行的原版 PostgreSQL 的 3 倍。Aurora 使用各种不同的软件和硬件技术来确保数据库引擎能够充分利用可用计算、内存和联网。I/O 运算使用 Quorum 等分布式系统技术来提高性能一致性。

Amazon Aurora Serverless 是一种面向 Aurora 的按需自动扩缩配置,其中的数据库将根据应用程序的需求自动启动、关闭以及扩展或缩减容量。 利用 Amazon Aurora Serverless,您可以在云中运行数据库,而无需管理任何数据库实例。 还可以在现有或新的数据库集群中将 Aurora Serverless v2 实例与预置实例搭配使用。

您可以使用 Amazon Relational Database Service(Amazon RDS)API 或 AWS 管理控制台扩展预置的实例,以提高或降低部署能力。计算扩展操作通常可在几分钟之内完成。

您可以通过创建多达 15 个 Amazon Aurora 副本,增加读取吞吐量以支持大量应用程序请求。 Aurora 副本与源实例共用同一个底层存储,从而降低成本并消除在副本节点执行写入操作的需要。这将释放更多的处理能力来提供读取请求并降低副本滞后时间,通常可降低到几毫秒。Aurora 提供一个读取器终端节点,应用程序可以直接连接,不必跟踪副本的添加和删除。它还支持自动扩展功能,通过自动添加或删除副本来响应您指定的性能指标的变化。要了解更多信息,请访问将 Amazon Aurora 自动扩缩功能与 Aurora 副本配合使用

Aurora 支持跨区域只读副本。跨区域副本为您的用户提供快速本地读取,并且每个区域可以具有 15 个额外 Aurora 副本以进一步扩展本地读取。有关详细信息,请参阅 Amazon Aurora Global Database

借助自定义端点功能,您可以在不同数据库实例集之间分配工作负载并对其执行负载均衡。例如,您可以预置一组 Aurora 副本以使用具有更高内存容量的实例类型,以便运行分析工作负载。然后,自定义端点可以帮助您将工作负载路由到这些经过适当配置的实例,同时使集群中的其他实例与此工作负载隔离。

Amazon Aurora 并行查询可加快对当前数据的分析查询。它可以将查询速度提高多达两个数量级,同时保持核心事务工作负载的高吞吐量。通过将查询处理下移至 Aurora 存储层,它不仅获得了大量计算能力,还减少了网络流量。使用并行查询在同一个 Aurora 数据库中互不干扰地运行事务和分析工作负载。并行查询适用于兼容 MySQL 的 Aurora。

Amazon DevOps Guru 是一款由机器学习(ML)支持的云运营服务,可以提高应用程序的可用性。使用 Amazon DevOps Guru for RDS,您可以用机器学习 (ML) 支持的洞察轻松检测和诊断性能相关的关系数据库问题,并在几分钟内解决问题,而不是花费几天时间。开发人员和开发运维工程师可以使用 DevOps Guru for RDS 自动识别性能问题的根本原因,并获得解决问题的智能建议,无需数据库专家的帮助。

要开始使用,只需转到 Amazon RDS 管理控制台并打开 Amazon RDS 性能详情。启用性能详情后,请前往 Amazon DevOps Guru 控制台,以便为 Amazon Aurora 资源、其他受支持的资源或您的整个账户启用 DevOps Guru。

高可用性和持久性

Amazon RDS 持续监控您的 Aurora 数据库和底层 Amazon Elastic Compute Cloud(Amazon EC2)实例的运行状况。发生数据库故障时,Amazon RDS 将自动重启数据库及相关进程。Aurora 不需要对数据库重做日志进行崩溃恢复回放,这大大缩短了重启时间。它还会将数据库缓冲缓存与数据库进程隔离开来,这样缓存在数据库重启时就不会丢失。

实例失效时,Aurora 将使用 Amazon RDS Multi-AZ技术,自动失效转移到最多 15 个 Aurora 副本中的一个(您在 3 个可用区中的任意一个内创建的副本)。如果未预置任何 Aurora 副本,在发生故障的情况下,Amazon RDS 将尝试为您自动创建新的 Aurora 数据库实例。通过将社群 MySQL 和 PostgreSQL 驱动程序替换为开源的简易兼容的 AWS JDBC Driver for MySQLAWS JDBC Driver for PostgreSQL 最大限度减少故障转移时间。您还可以使用 RDS Proxy 降低故障转移时间和提高可用性。发生失效转移时,Amazon RDS 代理将请求直接路由到新的数据库实例,以将失效转移时间最高降低 66%,同时保留应用程序连接。

Aurora 的数据库存储卷分为 10 GiB 区块并跨三个可用区进行复制,每个可用区保存每次写入的 2 个副本。Aurora 存储具有容错能力,能以透明方式应对多达两个数据副本的丢失,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本的丢失。Aurora 存储还具有自我修复能力,可连续扫描数据块和磁盘是否存在任何错误,并自动更换。

借助 Aurora 的备份功能,您可以对实例进行时间点恢复。这样,您就能够将数据库还原到保留期内任何一秒钟的状态,最多可还原到前 5 分钟的状态。自动备份保留期最长可配置为 35 天。自动备份存储在 Amazon Simple Storage Service(Amazon S3)中,该服务设计具有 99.999999999% 的持久性。Aurora 备份是自动、递增且连续的,对数据库性能没有影响。

数据库快照是用户对您存储在 Amazon S3 中的实例发起的备份,将保留到您明确删除它们之前。它们利用自动化的增量快照减少所需时间和存储。您可以在需要时随时从数据库快照创建新实例。

您可使用回溯功能将数据库快速倒回之前的时间点,而不需要利用备份还原数据。这使您可以快速从用户错误(比如删错表格或行)中恢复。当您启用回溯后,Aurora 将保留指定的回溯持续时间段内的数据记录。例如,您可以将回溯设置为最高可以将数据库回退 72 小时。回溯在几秒钟内即可完成,即使针对大型数据库也是如此,因为无需复制任何数据记录。您可以向前和向后追溯,以找到错误发生前的时间点。

回溯对于开发和测试也十分有用,特别是测试删除或以其他方式导致数据无效的情形下。直接回退到原始数据库状态,轻松开始新的测试运行。您可以创建一个通过 API 调用回溯的脚本,然后再运行测试,以便轻松地将其集成到您的测试框架中。回溯适用于兼容 MySQL 的 Aurora。

高度安全

Aurora 在 Amazon Virtual Private Cloud(Amazon VPC)中运行,这将帮助您将数据库隔离在自己的虚拟网络中,并使用行业标准的加密 IPsec VPN 与您的本地部署 IT 基础设施连接。要了解有关 Amazon VPC 中的 Amazon Relational Database Service(RDS)的更多信息,请参阅 Amazon RDS 用户指南。此外,在使用 Amazon RDS 时,您可以配置防火墙设置并控制对数据库实例的网络访问。

Aurora 可与 AWS Identity and Access Management(IAM)集成,并允许您控制您的 IAM 用户和组可以对特定 Aurora 资源(例如,数据库实例、数据库快照、数据库参数组、数据库事件订阅、数据库选项组)执行的操作。此外,您还可以为 Aurora 资源添加标签,并控制您的 IAM 用户和组可以对各组具有相同标签(和标签值)的资源执行的操作。有关 IAM 集成的更多信息,请参阅 IAM 数据库身份验证文档

Aurora 将帮助您记录数据库事件,并且对数据库性能的影响最小。您日后可以对日志进行分析以执行数据库管理、确保安全性、进行管理、确保合规性等。您还可以通过将审核日志发送到 Amazon CloudWatch 来监控活动。

Amazon GuardDuty 为 Aurora 提供威胁检测,可帮助您识别对存储在 Aurora 数据库中的数据的潜在威胁。 GuardDuty RDS Protection 分析和监控您账户中现有和新数据库的登录活动,并使用定制的 ML 模型来准确检测对 Aurora 数据库的可疑登录。如果检测到潜在威胁,GuardDuty 会生成一个安全检测结果,其中包括数据库详细信息和有关可疑活动的丰富上下文信息。Aurora 与 GuardDuty 的集成提供了对数据库事件日志的直接访问,而无需修改数据库,而且其设计不会对数据库性能产生影响。

经济高效

适用于 Aurora PostgreSQL 的 Aurora 优化型读取为具有延迟敏感型应用程序和大型工作集的客户提供了一种极具性价比的替代方案,可满足其业务 SLA。客户还可以更灵活地扩展数据集,而无需频繁扩大数据库实例以获得更大的内存容量。优化型读取包括性能增强功能,例如分层缓存和临时对象。

分层缓存可为操作控制面板、异常检测和基于矢量的相似性搜索等需要大量读取的 I/O 密集型应用程序提供高达 8 倍的查询延迟改进和高达 30% 的成本节省。这些好处是通过自动将从内存数据库缓冲区缓存中逐出的数据缓存到本地存储中,从而加快对该数据的后续访问来实现的。分层缓存仅适用于具有 Aurora I/O 优化版配置的 Aurora PostgreSQL。

临时对象通过将 Aurora PostgreSQL 生成的临时表放置在本地存储上来实现更快的查询处理,从而提高涉及排序、哈希聚合、高负载联接和其他数据密集型操作的查询的性能。

完全托管

您可以十分轻松地开始使用 Aurora。只需使用 Amazon RDS 管理控制台或一个 API 调用或 CLI 即可启动新的 Aurora 数据库实例。Aurora 数据库实例为您所选择的数据库实例类预配置了合适的参数和设置集。您在几分钟之内即可启动数据库实例并连接应用程序,而无需其他配置。数据库参数组可以提供对数据库的精细控制和微调功能。

Aurora 提供您的数据库实例的 Amazon CloudWatch 指标,您无需支付额外费用。您可以使用 AWS 管理控制台查看有关您的数据库实例的 20 多个关键运营指标,包括计算、内存、存储、查询吞吐量、缓存点击率以及活动连接。此外,您还可以使用增强监控收集运行数据库的操作系统实例的各项指标。您可以将 Amazon RDS 性能详情(一种数据库监控工具,可方便地检测数据库性能问题并采取纠正措施)与简单易懂的控制面板配合使用,以可视化方式呈现数据库负载。最后,您还可以使用 Amazon DevOps Guru for RDS 轻松检测性能问题,自动识别性能问题的根本原因,并获得智能建议以帮助解决问题,而无需数据库专家的帮助。

Amazon RDS 蓝绿部署可让您在 Aurora MySQL 兼容版和 Aurora PostgreSQL 兼容版上进行更安全、更简单、更快速的数据库更新,且不丢失任何数据。蓝绿部署可以通过简单几步创建一个暂存环境,该环境镜像生产环境,并使用逻辑复制保持两个环境的同步。您可以在不影响生产工作负载的情况下进行更改,如主要/次要版本升级、架构修改和参数设置更改。

在提升暂存环境时,蓝绿部署会阻止任何对蓝色和绿色环境的写入,直到切换完成。蓝绿部署采用内置的切换防护机制,如果超出最大可忍受的停机时间、检测到复制错误或检查实例运行状况等,则将超时。

Aurora 会使用最新的补丁来使您的数据库保持最新状态。您可以通过数据库引擎版本管理来控制是否修补您的实例以及何时修补。Aurora 尽可能使用零停机修补:如果出现合适的时段,则会更新实例,在修补过程中,应用程序会话将保留并且数据库引擎会重新启动,只会导致吞吐量短暂(大约 5 秒)下降。

Aurora 可通过电子邮件或短信通知您重要的数据库事件,例如自动失效转移。您可以使用 AWS 管理控制台或 Amazon RDS API 订阅与您的 Aurora 数据库相关的 40 多种不同的数据库事件。

Aurora 支持快速高效的克隆操作,可在数分钟内克隆完整的数 TB 数据库集群。克隆可用于实现许多目的,其中包括应用程序开发、测试、数据库更新,以及运行分析查询。如果数据立即可用,将能够大幅加快软件开发和升级项目,并提高分析准确度。

您只需执行几个步骤即可完成 Aurora 数据库的克隆,且不会发生任何存储费用,除非您使用额外的空间来存储数据的更改。

只需执行几个步骤即可手动停止和启动 Aurora 数据库。从而可以轻松、经济地将 Aurora 用于无需数据库始终运行的开发和测试环境。停止数据库不会删除数据。有关详细信息,请参阅启动/停止文档

零 ETL 集成

Amazon Aurora 与 Amazon Redshift 的零 ETL 集成使您无需构建和维护复杂的数据管道来执行提取、转换、加载(ETL)操作,而是可以使用 Amazon Redshift 对来自 Aurora 的 PB 级事务数据进行近乎实时的分析和机器学习(ML)。事务数据在写入 Aurora 后几秒钟内就会自动连续复制,并在 Amazon Redshift 中无缝提供。

一旦数据在 Amazon Redshift 中可用,您就可以立即开始分析数据并应用数据共享、实体化视图和 Amazon Redshift ML 等高级功能来获得全面的预测性洞察。可以整合来自多个 Aurora 数据库集群的多个表,并将数据复制到一个 Amazon Redshift 数据仓库中,以便跨越多个应用程序和数据来源进行统一的分析。同时使用 Aurora ServerlessAmazon Redshift Serverless 时,您可以对事务数据生成近乎实时的分析,而无需管理数据管道的任何基础设施。阅读我们关于使用 Aurora 与 Amazon Redshift 的零 ETL 集成的文档。

生成式人工智能

Aurora 提供的功能使机器学习(ML)和生成式人工智能(AI)模型能够实时处理存储在 Aurora 中的数据,而无需移动数据。 借助兼容 Amazon Aurora PostgreSQL 的版本,您可以通过 pgvector 扩展访问向量数据库功能来存储、搜索、索引和查询 ML 嵌入。

向量嵌入是一种数字表示法,表示文本、图像和视频等内容的语义含义。生成式人工智能和其他 AI/ML 系统使用嵌入将此内容输入的语义含义捕获到大型语言模型(LLM)中。您可以在 Aurora 数据库中存储来自 ML 和 AI 模型的嵌入,例如来自 Amazon BedrockAmazon SageMaker 的嵌入。阅读我们关于 Aurora PostgreSQL 扩展版本的文档。

Amazon Aurora PostgreSQL 可作为 Amazon Bedrock 的知识库,将您组织的私有数据来源连接到基础模型(FM),并在其上启用自动检索增强生成(RAG)工作流程。这样,您的 FM 就能更加了解您的特定领域和组织。阅读我们关于如何使用 Aurora PostgreSQL 作为 Amazon Bedrock 知识库的文档。

Aurora 机器学习(Aurora ML)还简化了向 Aurora 数据库添加生成式人工智能模型预测的过程。 Aurora ML 将 ML 模型作为 SQL 函数公开,允许您使用标准 SQL 来调用 ML 模型、向其传递数据并将预测、文本摘要或情绪作为查询结果返回。借助 Aurora ML,您可以通过定期调用 SageMaker 或 Amazon Bedrock 模型以返回最新的嵌入,通过 pgvector 扩展实时向您的 Aurora PostgreSQL 数据库添加新嵌入。

迁移支持

可将标准的 MySQL 导入和导出工具与 Aurora 配合使用。您还可以从 Amazon RDS for MySQL 数据库快照中轻松创建新的 Aurora 数据库。基于数据库快照的迁移操作一般在一个小时内完成,但具体根据所迁移数据的量和格式而异。

或者,AWS Database Migration Service(AWS DMS)在 DMS 控制台中提供内置原生工具,以实现无缝迁移。由于无需预置或扩展复制实例,您只需单击几下即可启动数据库迁移,并且只需按小时为所用时间付费。

您还可以在 Aurora MySQL 兼容版数据库和在 AWS 内部或外部运行的外部 MySQL 数据库之间设置基于二进制日志的复制。

标准的 PostgreSQL 导入和导出工具可与 Aurora 配合使用(包括 pg_dump 和 pg_restore)。Aurora 还支持从 Amazon RDS for PostgreSQL 导入快照,以及使用 AWS Database Migration Service(AWS DMS)进行复制。

Aurora 为将数据库工作负载移出商业数据库提供了理想的环境。Aurora 具有与商用数据库引擎相当的功能,并提供了大多数企业数据库工作负载所需的企业级性能、持久性和高可用性。AWS Database Migration Service(AWS DMS)可以通过 DMS 架构转换和 DMS 无服务器等托管功能,帮助加快向 Aurora 的数据库迁移。DMS 架构转换将自动评测和转换架构和源对象,使其与目标 Aurora 集群兼容。同时,DMS Serverless 可自动预置、监控和扩展迁移资源。

适用于 Aurora PostgreSQL 的 Babelfish 是 Aurora PostgreSQL 兼容版本的一项新功能,让 Aurora 能够理解来自为 Microsoft SQL Server 编写的应用程序命令。借助 Babelfish,Aurora PostgreSQL 现在可以理解 Microsoft SQL Server 专有的 SQL 语言 T-SQL,并支持相同的通信协议,因此您最初为 SQL Server 编写的应用程序现在可以与 Aurora 一起使用,并且所需进行的代码更改更少。 因此,修改 SQL Server 2005 或更高版本上运行的应用程序并将其移动到 Aurora 所需的工作量将减少,从而可实现更快、风险更低且更具成本效益的迁移。Babelfish 是 Aurora 的内置功能,无需额外费用。在 RDS 控制台中,您只需执行几个步骤即可在 Aurora 集群上启用 Babelfish。

开发人员生产力

Aurora 直接从数据库提供机器学习功能,让您可以通过熟悉的 SQL 编程语言将基于 ML 的预测添加到您的应用程序中。通过 Aurora 与 AWS 机器学习服务之间的简单、优化且安全的集成,您可以访问一系列 ML 算法,而无需构建自定义集成或移动数据。了解有关 Aurora 机器学习的更多信息。

Aurora 可以与完全托管式高可用数据库代理 Amazon RDS 代理结合使用,使应用程序更加可扩展,更能灵活地处理数据库故障,并且更具安全性。RDS Proxy 可使应用程序池化和共享已建立的数据库连接,从而提高数据库效率和应用程序的可扩展性。它通过在保留应用程序连接的同时自动连接新数据库实例来缩短故障转移时间。它通过与 AWS IAMAWS Secrets Manager 集成来增强安全性。

数据 API 是一种易于使用、安全的 HTTPS API,用于对 Aurora 数据库执行 SQL 查询,从而加速现代应用程序的开发。数据 API 消除了安全连接到 Aurora 数据库所需的网络和应用程序配置任务,这使得访问 Aurora 就像进行 API 调用一样简单。数据 API 无需使用数据库驱动程序和客户端连接池软件。它还通过自动池化和共享数据库连接提高了应用程序的可扩展性。数据 API 通过与 AWS IAMAWS Secrets Manager 集成来增强安全性。

开发人员可以通过使用 AWS SDK 构建的应用程序调用数据 API。数据 API 还为 AWS AppSync GraphQL API 提供对 Aurora 数据库的访问权限。