使用 Aurora Serverless v2 - Amazon Aurora

使用 Aurora Serverless v2

Aurora Serverless v2 是一种适用于 Amazon Aurora 的按需自动扩展配置。Aurora Serverless v2 帮助自动执行监控工作负载和调整数据库容量的过程。容量会根据应用程序需求自动调整。您只需为数据库集群使用的资源付费。因此,Aurora Serverless v2 可以帮助您保持在预算范围内,避免为不使用的计算资源付费。

这种自动化对于多租户数据库、分布式数据库、开发和测试系统以及其他具有高度可变且不可预测工作负载的环境尤为重要。

Aurora Serverless v2 使用案例

Aurora Serverless v2 支持很多类型的数据库工作负载。其范围涵盖从开发和测试环境到具有不可预测工作负载的网站和应用程序,再到要求高规模和高可用性的最苛刻的业务关键型应用程序。

Aurora Serverless v2 对于以下使用案例特别有用:

  • 可变工作负载 – 您运行的工作负载会突然出现无法预测的活动增加。例如,在开始下雨时显示活动涌现的流量网站。另一个例子是当您提供销售或特别促销活动时流量会增加的电子商务网站。有了 Aurora Serverless v2,您的数据库可自动扩展容量以满足应用程序的峰值负载需求,然后在活动涌现结束时再缩减。有了 Aurora Serverless v2,您不再需要为峰值或平均容量进行预置。您可以指定容量上限来应对最糟糕情况,除非确实需要该容量,否则不使用该容量。

    Aurora Serverless v2 中的扩缩粒度帮助您使容量与数据库的需求紧密匹配。对于预置的集群,扩展需要添加一个全新的数据库实例。对于 Aurora Serverless v1 集群,扩展需要将集群的 Aurora 容量单位(ACU)数增加一倍,例如从 16 个增加到 32 个或从 32 个增加到 64 个。相比之下,当只需要多一点容量时,Aurora Serverless v2 可以增加半个 ACU。根据处理工作负载增加所需的额外容量,可以增加 0.5、1、1.5、2 或额外的半个 ACU。当工作负载减少且不再需要该容量时,可以删除 0.5、1、1.5、2 或额外的半个 ACU。

  • 多租户应用程序 – 有了 Aurora Serverless v2,您无需为队列中的每个应用程序单独地管理数据库容量。Aurora Serverless v2 会为您管理各个数据库容量。

    您可为每个租户创建一个集群。这样,您就可以视情况使用克隆、快照还原和 Aurora 全局数据库等功能为每个租户增强高可用性和灾难恢复。

    根据一天中的时间、一年中的时间、促销活动等,每个租户可能有特定的忙碌和空闲时段。每个集群都有宽容量范围。这样,活动量较少的集群将产生更低的数据库实例费用。任何集群都可以快速扩展以应对活动较多的时期。

  • 新应用程序 – 您正在部署新应用程序,但不确定所需的数据库实例大小。使用 Aurora Serverless v2,您可以设置具有一个或多个数据库实例的集群,并让数据库根据应用程序的容量需求自动扩展。

  • 混合用途应用程序 – 假设您有一个在线交易处理(OLTP)应用程序,但是您会周期性地经历查询流量高峰。通过在集群中指定 Aurora Serverless v2 数据库实例的提升层,您可以将集群配置为让读取器数据库实例可以独立于写入器数据库实例进行扩展以处理额外负载。当使用高峰消退时,读取器数据库实例会缩减以匹配写入器数据库实例的容量。

  • 容量规划 – 假设您通常通过修改集群中所有数据库实例的数据库实例类来调整数据库容量,或者验证工作负载的最佳数据库容量。借助 Aurora Serverless v2,您可以避免产生此管理开销。您可以通过运行工作负载并检查数据库实例实际扩展的程度来确定适当的最小和最大容量。

    您可以将现有数据库实例从预置修改为 Aurora Serverless v2 或者从 Aurora Serverless v2 修改为预置。在这种情况下,您无需创建新集群或新数据库实例。

    使用 Aurora 全局数据库,辅助集群的容量可能不需要像主集群那样多。您可以在辅助群集中使用 Aurora Serverless v2 数据库实例。这样,如果辅助区域得到提升并接管应用程序的工作负载,集群容量就可以扩展。

  • 开发和测试 - 除了运行要求最苛刻的应用程序外,您还可以将 Aurora Serverless v2 用于开发和测试环境。借助 Aurora Serverless v2,您可以创建最低容量较低的数据库实例,而不是使用可突增的 db.t* 数据库实例类。您可以将最大容量设置得足够高,以便这些数据库实例仍然可以运行大量工作负载,而不会出现内存不足的情况。当数据库未在使用时,所有数据库实例都会缩减以避免产生不必要的费用。

    提示

    为了方便在开发和测试环境中使用 Aurora Serverless v2,在创建新集群时,AWS Management Console 提供 Easy create(轻松创建)快捷方式。如果选择 Dev/Test(开发/测试)选项,Aurora 会创建一个具有 Aurora Serverless v2 数据库实例以及开发和测试系统典型容量范围的集群。

将 Aurora Serverless v2 用于现有的已调配工作负载

假设您已在预置集群上运行 Aurora 应用程序。您可以将一个或多个 Aurora Serverless v2 数据库实例作为读取器数据库实例添加到现有集群,检查应用程序将如何与 Aurora Serverless v2 配合使用。您可以查看读取器数据库实例扩展和缩减的频率。您可以使用 Aurora 故障转移机制将 Aurora Serverless v2 数据库实例提升为写入器,并检查它如何处理读/写工作负载。这样,您可以在最短的停机时间内进行切换,而且无需更改客户端应用程序使用的端点。有关将现有群集转换为 Aurora Serverless v2 的程序的详细信息,请参阅开始使用 Aurora Serverless v2

Aurora Serverless v2 的优点

Aurora Serverless v2 适用于可变或“高峰”工作负载。对于此类不可预测的工作负载,您可能难以规划何时更改数据库容量。使用熟悉的机制(例如添加数据库实例或更改数据库实例类),您可能也难以足够快地进行容量更改。Aurora Serverless v2 提供了以下优势来帮助处理此类使用案例:

  • 比预置更简单的容量管理 – Aurora Serverless v2 减少了规划数据库实例大小和随着工作负载变化调整数据库实例大小的工作量。此外,还可以减少为集群中的所有数据库实例维持一致容量的工作量。

  • 在活动较多的时期更快、更轻松地扩展 – Aurora Serverless v2 可根据需要扩展计算和内存容量,而无需中断客户端事务或总体工作负载。借助 Aurora Serverless v2,能够使用读取器数据库实例,除了垂直扩展外,还可以帮助您利用水平扩展。能够使用 Aurora 全局数据库,这意味着您可以在多个 AWS 区域 中分布您的 Aurora Serverless v2 读取工作负载。此功能比预置集群的扩缩机制更便利。它也比 Aurora Serverless v1 中的扩缩功能更快、更精细。

  • 在活动量较少的期间经济高效 – Aurora Serverless v2 帮助您避免超额配置数据库实例。Aurora Serverless v2当数据库实例扩展时,以细粒度增量添加资源。您只需为所使用的数据库资源付费。Aurora Serverless v2 资源使用情况按秒计量。这样,当数据库实例缩减时,会立即注册减少的资源使用量。

  • 使用预置集群获得更出色的功能 – 借助 Aurora Serverless v2,您可以使用 Aurora Serverless v1 中未提供的许多 Aurora 功能。例如,借助 Aurora Serverless v2,您可以使用读取器数据库实例、全局数据库、AWS Identity and Access Management(IAM)数据库身份验证和 Performance Insights。您还可以使用比 Aurora Serverless v1 更多的配置参数。

    具体而言,借助 Aurora Serverless v2,您可以利用预置集群的以下功能:

    • 读取器数据库实例 – Aurora Serverless v2 可以利用读取器数据库实例进行横向扩展。当集群包含一个或多个读取器数据库实例时,如果写入器数据库实例出现问题,集群可以立即进行故障转移。这是一项 Aurora Serverless v1 没有提供的功能。

    • 多可用区集群 – 您可以在多个可用区(AZ)分发集群的 Aurora Serverless v2 数据库实例。设置多可用区集群有助于确保业务连续性,甚至在极少数情况下会出现影响整个可用区的问题。这是一项 Aurora Serverless v1 没有提供的功能。

    • 全局数据库 – 您可以将 Aurora Serverless v2 与 Aurora 全局数据库结合使用,以便在其他 AWS 区域 中创建集群的额外只读副本,用于灾难恢复目的。

    • RDS Proxy – 您可以使用 Amazon RDS Proxy,允许您的应用程序池化和共享数据库连接,以提高其扩展能力。

  • 比 Aurora Serverless v1 更快、更精细、中断更少的扩缩 – Aurora Serverless v2 可以更快地扩展和缩减。扩缩可以按照小至 0.5 ACU 的增量来更改容量,而不一定要将 ACU 的数量翻倍或减半。进行扩缩时通常完全不会暂停处理。扩缩不像 Aurora Serverless v1 那样涉及您必须注意的事件。可以在 SQL 语句运行和事务处于打开状态时进行扩缩,无需等待安静点。