DynamoDB Auto Scaling 使用 AWS Application Auto Scaling 服务代表您动态调整预置的吞吐容量,以响应实际的流量模式。这将允许表或全局二级索引增大其预置的读取和写入容量以处理突增流量,而不进行限制。当工作负载减小时,Application Auto Scaling 将减少吞吐量,这样您将无需为未使用的预置容量付费。
DynamoDB Auto Scaling 的工作方式
注意
要快速开始使用 DynamoDB Auto Scaling,请参阅将 AWS 管理控制台 与 DynamoDB Auto Scaling 结合使用。
下图高度概述了 DynamoDB Auto Scaling 管理表的吞吐容量的方式:
以下步骤汇总了上图中所示的 Auto Scaling 流程:
-
为 DynamoDB 表创建 Application Auto Scaling 策略。
-
DynamoDB 将使用的容量指标发布到 Amazon CloudWatch。
-
如果表使用的容量在特定时段内超出目标使用率 (或低于目标使用率),则 Amazon CloudWatch 将触发警报。您可以在 AWS 管理控制台上查看警报并使用 Amazon Simple Notification Service (Amazon SNS) 接收通知。
-
CloudWatch 警报调用 Application Auto Scaling 来评估扩展策略。
-
Application Auto Scaling 发出
UpdateTable
请求以调整表的预置吞吐量。 -
DynamoDB 处理
UpdateTable
请求,并动态增加(或减少)表的预置的吞吐容量,使它接近目标使用率。
为了解 DynamoDB Auto Scaling 的工作方式,假定您有一个名为 ProductCatalog 的表。由于很少将数据批量加载到表中,因此不会出现大量写入活动。不过,表会遇到大量的读取活动,此活动随时间的推移而变化。通过监控 ProductCatalog 的 Amazon CloudWatch 指标,您确定表需要 1200 个读取容量单位(避免在活动到达峰值时出现 DynamoDB 限制读取请求的情况)。您还确定,在读取流量达到其最低值时,ProductCatalog 至少需要 150 个读取容量单位。
在 150 到 1200 个读取容量单位的范围内,您确定 70% 的目标使用率将适合 ProductCatalog 表。目标使用率 是使用的容量单位与预置容量单位的比率(以百分比表示)。Application Auto Scaling 使用其目标跟踪算法来确保按需调整 ProductCatalog 的预置读取容量,以便使用率达到或接近 70%。