【问题标题】:Do DynamoDB consumed capacity units in on-demand mode compare to provisioned capacity?DynamoDB 在按需模式下消耗的容量单位是否与预置容量相比?
【发布时间】:2020-01-30 10:50:19
【问题描述】:

现在我正在为我的 DynamoDB 表使用按需模式,因为我不知道需要多少数据。但是现在应用程序已经运行了一段时间,我可以在 CloudWatch 中看到我的表的 ConsumedReadCapacityUnits 和 ConsumedWriteCapacityUnits 的指标。

在按需模式下,我按请求付费,而在预置容量模式下,我必须为预置容量付费。如果我简单地获取(最大)消耗容量单位的指标,并将预置容量模式的价格与我当前的成本进行比较,我相信预置容量模式对我来说会便宜很多。

我的问题是,我是否可以简单地获取指标并获取已消耗容量单位的最大值(加上一些缓冲区)并将它们配置为预置容量,或者这是我的推理错误?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    您还需要考虑另外两件事:

    1. 您的吞吐量有多“突发”?
    2. 您是否使用 SDK 连接到您的数据库?

    将您的配置设置为您见过的最大吞吐量将确保您不会收到限制请求,但您可能会将配置设置得太高。 Dynamodb 实际上可以消耗比您使用 Burst Capacity 设置的更多的配置。这将适应 5 分钟内的短时间高吞吐量突发。如果您看到持续的峰值,例如您的数据库在白天很忙,但不是在晚上,您可能会考虑将您的表设置为Autoscale。在这种情况下,您可以将预置吞吐量设置得较低,Dyanmodb 将根据需要自动扩展预置。请注意,自动缩放适用于在几个小时内变化的工作负载(例如,用于处理每日高峰时段)。它不利于对不到 30 分钟内发生的事件做出反应。

    如果您使用的是官方 SDK,它们会处理限制响应,并重试任何失败的请求。这为 Dynamodb 提供了一些时间来扩展,而您的应用程序请求不会失败。

    【讨论】:

    • 谢谢。事实上,我确实有一个非常突发的设置,我的大部分数据每 15 分钟读取和写入一次,中间大部分是空闲阶段,所以 Autoscale 可能不适合。然而,所需容量似乎如此之低,我相信即使我将预置容量设置为高于当前最大值,成本也应该几乎可以忽略不计(大约是当前成本的 0.5%,这让我一开始就想知道)如果我理解错误的地方)。我也使用 SDK,所以偶尔的节流应该不是问题。
    • 是的,我怀疑你的数字有误。预置容量并没有那么便宜,尤其是对于小型工作负载。你想问他们作为一个问题并在这里发布链接,我可以看看。
    • 你说得对,我的数字有误。 WCU/RCU 的价格是按小时计算的,我是按月计算的。对不起。
    猜你喜欢
    • 1970-01-01
    • 2018-10-15
    • 2017-06-30
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多