通过应用程序 Auto Scaling 管理 Amazon Keyspaces 吞吐容量 - Amazon Keyspaces(针对 Apache Cassandra)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过应用程序 Auto Scaling 管理 Amazon Keyspaces 吞吐容量

许多数据库工作负载本质上是周期性的,或者难以提前进行预测。例如,考虑一个大多数用户在白天处于活跃状态的社交网络应用程序。数据库必须能够处理白天活动,但夜间不需要相同级别的吞吐量。

另一个示例是面临快速采用的新移动游戏应用程序。如果此游戏变得极受欢迎,它可能会超出可用的数据库资源,从而导致性能降低并使客户感到不满。这些类型的工作负载通常需要手动干预来扩展或缩减数据库资源,以便响应不断变化的使用量级别。

Amazon Keyspaces (针对 Apache Cassandra) 通过自动调整吞吐容量以响应实际应用程序流量,帮助您为可变工作负载高效预置吞吐容量。Amazon Keyspaces 使用 AWS 应用程序 Auto Scaling 服务代表您增加和减少表的读取和写入容量。有关应用程序 Auto Scaling 的更多信息,请参阅应用程序 Auto Scaling 用户指南

注意

要快速开始使用 Amazon Keyspaces 自动扩展,请参阅使用 AWS 管理控制台管理 Amazon Keyspaces 自动扩展策略。您无法使用 Cassandra 查询语言 (CQL) 管理 Amazon Keyspaces 扩展策略。要了解如何以编程方式管理 Amazon Keyspaces 扩展策略,请参阅以编程方式管理 Amazon Keyspaces 扩展策略

Amazon Keyspaces 自动扩展的工作方式

下图高度概述了 Amazon Keyspaces 自动扩展管理表的吞吐容量的方式。

要为表启用自动扩展,请创建扩展策略. 扩展策略指定是要扩展读取容量还是写入容量(或二者),并为表指定最小的和最大的预置容量单位设置。

扩展策略还定义了 目标利用率. 目标利用率是在某个时间点上使用的容量单位与预置容量单位的比率(以百分比表示)。自动扩展使用目标跟踪 算法向上或向下调整表的预置吞吐量以响应实际工作负载。这样做的目的是使实际容量利用率保持在目标利用率或接近目标利用率。

您可以为读取和写入容量设置介于 20% 和 90% 之间的自动扩展目标利用率值。默认的目标利用率为 70%。如果您的流量快速变化,并且您希望容量能够尽快开始扩展,则可以将目标利用率设置为较低的百分比。如果您的应用程序流量变化较慢,并且您希望降低吞吐量成本,则也可以将目标利用率设置为较高的百分比。有关扩展策略的更多信息,请参阅应用程序的目标跟踪扩展策略 Auto Scaling 。

创建扩展策略时,Application Auto Scaling 将代表您创建两对 Amazon CloudWatch 警报。每对警报均表示预置和使用的吞吐量设置的上限和下限。当表的实际使用率在一段持续时间内偏离目标使用率时,将触发这些 CloudWatch 警报。要了解有关 Amazon CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

当触发某个 CloudWatch 警报时,Amazon Simple Notification Service ( Amazon SNS ) 会向您发送通知(如果您已启用它)。然后,CloudWatch 警报会调用 Application Auto Scaling 来评估您的扩展策略。这反过来会向 Amazon Keyspaces 发出 Alter Table 请求,以相应地向上或向下调整表的预置容量。要了解有关 Amazon SNS 通知的更多信息,请参阅设置 Amazon SNS 通知

Amazon Keyspaces 通过增加(或减少)表的预置吞吐容量来处理 Alter Table 请求,使它接近目标利用率。

注意

仅当实际工作负载在几分钟的持续时段内保持提高(或降低)时,Amazon Keyspaces 自动扩展才会修改预置吞吐量设置。应用程序 Auto Scaling 目标跟踪算法寻求长期使目标使用率保持或接近选定值。表的内置突增容量将容纳活动的短时间突增峰值。

使用说明

在开始使用 Amazon Keyspaces 自动扩展之前,您应了解以下事项:

  • Amazon Keyspaces 自动扩展可根据您的扩展策略根据需要随时增加读取容量或写入容量。所有 Amazon Keyspaces 配额都将保持有效,如Amazon Keyspaces(针对 Apache Cassandra)的配额中所述,用于 Amazon Keyspaces (Amazon Keyspaces)。

  • Amazon Keyspaces 自动扩展不会阻止您手动修改预置的吞吐量设置。这些手动调整不会影响附加到扩展策略的任何现有 CloudWatch 警报。

  • 如果您使用 AWS 管理控制台创建具有预置的吞吐容量的表,则默认情况下将启用 Amazon Keyspaces 自动扩展。您可以随时修改自动扩展设置。有关更多信息,请参阅 使用 AWS 管理控制台管理 Amazon Keyspaces 自动扩展策略.

  • 如果您使用 AWS CloudFormation 创建扩展策略,则应从 AWS CloudFormation管理扩展策略,以便堆栈与堆栈模板同步。如果您从 Amazon Keyspaces 或 Application Auto Scaling 更改扩展策略,则在重置堆栈时,这些策略将由 AWS CloudFormation 堆栈模板中的原始值覆盖。

  • 如果表的消耗容量突然变为零,则 Amazon Keyspaces 自动扩展不会缩减预置容量。作为解决方法,如果您预计流量将降为零,或者您的应用程序会继续发送低级别的读/写流量,直到Auto Scaling缩减至最小容量,则可以手动调整预置容量。