AWS Dynamo 不会自动缩减

Posted

技术标签:

【中文标题】AWS Dynamo 不会自动缩减【英文标题】:AWS Dynamo not auto-scaling back down 【发布时间】:2018-06-03 07:09:59 【问题描述】:

这是我在桌子上设置的参数:

这是我看到的容量随时间变化的情况。

为什么它保持在 25 个写入单元?它不应该降到 5 个写入单元(最小集)吗?

【问题讨论】:

【参考方案1】:

那是因为AWS DynamoDB AutoScaling documentation 的这个注释:

目前,如果您的表的已用容量变为零,Auto Scaling 不会缩减您的预置容量。作为一种解决方法,您可以向表发送请求,直到 Auto Scaling 缩减到最小容量,或者更改策略以将最大预置容量降低到与最小预置容量相同。

在您的情况下,消耗的容量在 8:00 到 10:00 之间下降到 0,因此预置容量保持在 25。

【讨论】:

要详细说明解决方法,您可以使用计划的 Lambda 函数来执行名义上的操作,例如每分钟删除一次不存在的密钥,以确保自动缩放将继续工作。这将消耗容量并且可能不是针对所有工作负载,但我之前在一个表上使用过它,该表的负载在工作日结束时基本上从 50 个写入单位变为 0,并一直保持在 0 到第二天早上。通过安排名义上的写入,它能够将表缩小到 1 个写入单位,从而节省资金。 当然,随着最近发布的 OnDemand 容量,您现在只需将容量管理方案切换为 On Demand,该表几乎总是适合您需要的任何使用模式,您只需按实际情况付费查询,而不是预测查询。【参考方案2】:

如果您的表的消耗容量变为零,Dynamo DB 的 Auto Scaling 现在将缩减您的预置容量。这一期待已久的公告于 2018 年 11 月 8 日发布。官方文档尚未更新。

Reference

我测试过它可以工作:

【讨论】:

以上是关于AWS Dynamo 不会自动缩减的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse 迁移到 AWS Dynamo DB

如何在 AWS lambda 函数中设置 dynamo db 触发器

使用 AWS Appsync 和 GraphQL 查询 Dynamo DB 中的多个表

如何将现有的 dynamo db 与 AWS Amplify 和 graphql 一起使用

Dynamo DB 中的 AWS AppSync 简单 graphql 解析器无法正常工作,这让我发疯

无法在{tableName}查询Dynamo