Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Aurora Serverless 的工作方式

在没有 Aurora Serverless 的情况下使用 Amazon Aurora 时,您可以选择数据库实例类大小并创建 Aurora 副本以提高读取吞吐量。如果您的工作负载发生变化,您可以修改数据库实例类大小并更改 Aurora 副本的数量。此模型在数据库工作负载是可预测时运行良好,因为您可以根据预期工作负载手动调整容量。

不过,在某些环境中,工作负载可能是间歇性和不可预测的。可能存在可能仅持续几分钟或几小时的大量工作负载的时间段以及少量活动或甚至无活动的长时间段。例如,一些进行间歇性销售活动的零售网站、根据需要生成报告的报告数据库、开发和测试环境以及具有不确定要求的新应用程序。在这些情况及很多其他情况下,可能很难在正确的时间配置正确的容量。这还可能会在您为未使用的容量付费时产生更高的成本。

对于 Aurora Serverless,您可以创建数据库终端节点,而无需指定数据库实例类大小。可以设置最小容量和最大容量。对于 Aurora Serverless,数据库终端节点可以连接到代理队列,后者将工作负载路由到一组自动扩展的资源。借助代理队列,连接是持续存在的,这是因为 Aurora Serverless 自动根据最小和最大容量规范扩展资源。数据库客户端应用程序无需更改为使用代理队列。Aurora Serverless 会自动管理连接。扩展的速度非常快,因为它使用随时准备好为请求提供服务的“热”资源池。存储和处理是分开的,因此处理容量可以缩减至零(此时,您只需支付存储费用)。

Aurora Serverless 引入了适用于 Aurora 数据库集群的新 serverless 数据库引擎模式。非无服务器数据库集群使用 provisioned 数据库引擎模式。

Aurora Serverless 架构

下图提供了 Aurora Serverless 架构的概览。


                  Aurora Serverless 架构

您可指定 Aurora 容量单位 (ACU),而不是配置和管理数据库服务器。每个 ACU 是处理和内存容量的组合。数据库存储从 10 GiB 自动扩展到 64 TiB,标准 Aurora 数据库集群中的存储也是如此。

可以指定最小和最大 ACU。最小 Aurora 容量单位 是数据库集群可缩减到的最低 ACU。最大 Aurora 容量单位 是数据库集群可扩展到的最高 ACU。根据您的设置,Aurora Serverless 自动创建 CPU 使用率、连接和可用内存阈值的扩展规则。

Aurora Serverless 管理 AWS 区域中的热资源池以最大程度地减少扩展时间。在 Aurora Serverless 将新资源添加到 Aurora 数据库集群时,它使用代理队列将活动客户端连接切换到新资源。在任何给定时间,您都只需为您的 Aurora 数据库集群中正在主动使用的 ACU 付费。

对 Aurora Serverless 进行 Auto Scaling

分配给您的 Aurora Serverless 数据库集群的容量根据客户端应用程序生成的负载(CPU 使用率和连接数)进行扩展和缩减。它还在 5 分钟内没有任何连接时扩展到零容量。

如果满足任何 以下条件,Aurora Serverless 数据库集群将进行扩展:

  • CPU 使用率高于 70%

  • 使用的连接数超过 90%

只有在满足所有 以下条件时,Aurora Serverless 数据库集群才会进行缩减:

  • CPU 使用率低于 30%

  • 使用的连接数不到 40%

扩展的冷却时间为自上一次扩展操作起 3 分钟内。缩减的冷却时间为自上一次扩展操作起 15 分钟内。

扩展点 是数据库可安装启动扩展操作的时间点。在以下条件下,Aurora Serverless 可能无法找到扩展点:

  • 正在执行长时间运行的查询或事务

  • 正在使用临时表或表锁定

这些情况下,Aurora Serverless 将尝试扩展数据库集群 5 次。在 5 次尝试均失败后,将取消扩展操作。

您可以在 AWS 管理控制台中详细查看数据库集群的扩展事件。您还可以使用 Amazon CloudWatch 的 ServerlessDatabaseCapacity 指标监控分配给数据库集群的当前容量。

自动暂停和恢复 Aurora Serverless

您可以选择在无任何活动的指定时间段内暂停 Aurora Serverless 数据库集群。在暂停数据库集群之前指定无任何活动的时间长度。默认值为 5 分钟。还可以禁用暂停数据库集群。

暂停数据库集群后,不会发生任何计算或内存活动,而且您只需支付存储费用。如果暂停 Aurora Serverless 数据库集群时请求数据库连接,数据库集群将自动恢复并处理连接请求。

注意

如果暂停数据库集群超过 7 天,则可能会使用快照对数据库集群进行备份。在这种情况下,数据库集群会在有请求连接到它时进行还原。

Aurora Serverless 和数据库集群参数组

数据库集群参数组使用预配置和 Serverless 数据库集群的方式存在一些差异。对于 Aurora Serverless 数据库集群,您只能修改以下集群级参数:

  • character_set_server

  • collation_server

  • lc_time_names

  • lower_case_table_names

  • time_zone

如果修改其他集群级参数,则更改将无效,并且 Aurora Serverless 数据库集群会使用这些参数的默认值。您可以运行 describe-engine-default-cluster-parameters 命令或 RDS API 操作 DescribeEngineDefaultClusterParameters 以查看集群级参数支持的引擎模式。

注意

实例级参数不适用于 Aurora Serverless。

在修改与 Aurora Serverless 数据库集群关联的数据库集群参数组时,以下内容适用:

  • 在更改可使用 Aurora Serverless 修改的集群级参数并保存数据库集群参数组时,将立即应用更改,而无论以下设置如何:

  • 对于 Aurora Serverless,将忽略数据库集群参数组状态 pending-reboot。Aurora Serverless 数据库集群将更改立即应用于数据库集群参数组,而无需停机。

  • 要将更改应用于数据库集群参数组,Aurora Serverless 将在数据库集群处于活动状态时为当前容量启动无缝扩展,或者在数据库集群暂停时恢复该集群。

有关参数组的信息,请参阅使用数据库参数组和数据库集群参数组

Aurora Serverless 和故障转移

目前,Aurora Serverless 数据库集群是在单个可用区 (AZ) 中创建的。如果该可用区变得不可用,Aurora 将在不同的可用区中重新创建该集群。

配置为快速故障转移的 Aurora 预配置集群将在大约 60 秒内恢复。虽然 Aurora Serverless 不支持快速故障转移,但它支持自动多可用区故障转移。Aurora Serverless 故障转移需要的时间比 Aurora 预配置集群长。当前未定义 Aurora Serverless 故障转移时间,因为它取决于给定 AWS 区域中的其他可用区的需求和容量可用性。

Aurora Serverless 和快照

Aurora Serverless 集群的集群卷始终是加密的。您可以选择加密密钥,但无法禁用加密。因此,您无法执行加密的快照不允许的操作。例如,您无法将 Aurora Serverless 集群的快照复制到不同的 AWS 区域中。