服务
关于
CloudProse博客
聚光灯

DynamoDB定价:按需,自动伸缩,已配置还是保留?

最灵活的数据库'不要仅仅停留在数据上
瑞安·布朗(Ryan Brown)Trek10
瑞安·斯科特·布朗 | 2019年3月8日

如今,FinDev和通过应用程序的资金流是一个热门话题- 严翠亚历山大·西莫维奇(Aleksandar Simovic) 双方最近都对该主题进行了讨论。大多数无服务器服务的按请求付费模型使生成详细的模型成为可能,这些模型详细说明了每增加一个用户或每笔交易需要为应用程序支付多少费用。在 Lyft最近提交的S-1档案 他们宣布未来使用AWS(2019-2021)的年度总成本为8000万美元。

该表未反映AWS安排的2019年1月补遗,但当事方根据该补遗修改了总承诺金额和时间。根据修订后的安排,我们承诺在2019年1月至2021年12月之间总共花费至少3亿美元,在三年中每年至少花费8000万美元用于AWS服务。

8000万美元是一笔巨款,但按每单位成本细分,总计0.14美元。作为售货成本(COGS)的一部分,这意味着基础结构成本与付款处理者进行信用卡交易的成本大致相当。这种框架对于了解每用户成本方面的云账单非常重要。

Aleksandar的文章 他使用这张图表来说明每个应用程序组件的成本,这引起了我对DynamoDB定价的兴趣-1.25美元/百万美元的价格。


DynamoDB自成立以来,在原始的预配置江苏体彩模型的基础上增加了3个附加定价模型。对于任何生命 涉及对AWS公告的痴迷阅读,让我们回顾一下DynamoDB中的定价选项。

按需江苏体彩

按需定价是最简单的定价模式-您需要为存储和请求付费,仅此而已。没有江苏体彩规划或预测。您需要为每百万次写入支付1.25美元,并为每百万次读取支付0.25美元。这是“简单”在本文结尾的地方。

预配江苏体彩

DynamoDB的第一种也是最常见的定价方法是按江苏体彩付费。这不是 相当 每次使用付费,但已接近尾声。您需要为DynamoDB表提供一定的吞吐量,例如100个读取江苏体彩单位(RCU),这可以实现每秒100次高度一致的4KB读取。预配置江苏体彩的费用分解方式有所不同,因为您要为江苏体彩付费(无论是否使用),这不是按使用量付费。

此外,DynamoDB还会鼓励您进行过度配置,以免受到限制。如果您在一秒钟内消耗的资源超过了预配置的100个RCU,DynamoDB可以拒绝进一步的请求(最终用户),这些请求使数据看起来不可用。取决于您的应用程序,这可以,也可以通过缓存,重试或其他技术来解决。

要确定每百万个请求的费用,我们可以进行数学运算,以找出一个RCU小时(0.00013美元)可以收到多少个请求。一小时3600秒,即每次读取$ 0.0000000361,即每百万0.0361美元。对于我们按需为DynamoDB按需支付的0.25美元/百万美元,这看起来并不好。

预留的预配江苏体彩

很像 预留实例 在EC2中,DynamoDB中的保留江苏体彩使您可以享受折扣价,从而可以预先承诺一定数量的使用量。费用与“预配置江苏体彩”的单位相同,但是您以100个RCU或WCU的单位购买一年或三年的预订。

与标准配置江苏体彩相比,一年预订可节省53%,三年预订可节省76%。这些保留仅是一种计费结构,因此您可以正常使用预配置江苏体彩,并且节省额将自动应用。相比之下,一年的预留费用为$ 0.0166 /百万,三年的预留费用为$ 0.0083 /百万。

DynamoDB AutoScaling

由于实际应用程序很少具有统一的用法,因此为了节省成本,有必要根据您的使用情况上下扩展DynamoDB 预配江苏体彩。 DynamoDB自动缩放 向CloudWatch指标添加自动响应,以根据需求的变化增加和减少江苏体彩。

生活中没有什么是免费的,您将通过两种方式为DynamoDB Autoscaling付费:

  1. 原始标准/保留的预置江苏体彩
  2. CloudWatch警报每个警报的费用为$ 0.10,每个读/写需要8个警报。这意味着8个基本警报,再加上每个全局二级索引8个。

自动缩放费用不会根据交易次数来缩放。对于为10个RCU和10个WCU和两个GSI配置的表,您需要为$ 5.81的DynamoDB江苏体彩支付$ 1.60的CloudWatch警报。

在低端使用时,AutoScaling可以消除您因按需按使用按需付费表所节省的大部分成本。如果您的DynamoDB花费在数百美元左右,则与购买较少的超额配置江苏体彩可能节省的费用相比,这些警报的百分比成本微不足道。

支付闲置资金是任何资本流动类型定价的祸根。自动缩放可帮助您跟踪利用率的预配置江苏体彩(所支付的金额)。

直数学

为了比较不同的定价模型,我们将不同的模型分解为一个通用单位-每百万个读取(和写入)江苏体彩单位的成本。为了说明按需按使用付费的事实,我们必须得出不同利用率下的每个请求成本。

江苏体彩类型RCU每小时费用千次曝光出价CPM @ 50%利用率节省50%的利用率节省20%的利用率
一经请求0.0001800$ 0.2500$ 0.2500-246.15%-38.46%
已配置0.0001300$ 0.0361$ 0.07220.00%0.00%
保留1年0.0000597$ 0.0166$ 0.033254.06%54.06%
保留3年0.0000299$ 0.0083$ 0.016677.01%77.01%

从RCU表中可以看出,您显然需要为按需付费。在100%的利用率下,一百万个按需读取的费用是相同预配置读取的费用的六倍。

对于实际使用情况,100%的使用率是梦dream以求的,因此我们需要尝试更实际的水平进行相同的计算。如果使用率足够高,以至于您使用的是预配置江苏体彩的50%,那么从预配置中节省的费用看起来就不太极端了。您仍然可以按需支付250%的费用,但是江苏体彩规划的负担已经转移到AWS上,您可以专注于其他工作。

江苏体彩类型WCU每小时费用CPM WCUCPM @ 50%利用率节省50%的利用率节省20%的利用率
一经请求$ 0.00090$ 1.2500$ 1.2500-246.15%-38.46%
已配置$ 0.00065$ 0.1806$ 0.36110.00%0.00%
保留1年$ 0.00030$ 0.0838$ 0.167653.60%53.60%
保留3年$ 0.00015$ 0.0418$ 0.083676.85%76.85%

WCU的情况大体相同,在大多数情况下,WCU节省与RCU节省之间的差异不到百分之一。对于极其不可预测或规划不良的DynamoDB架构,按需江苏体彩仅比利用率为20%的预配置江苏体彩贵38%。

按需定价的轻松选择

开发环境是按需能力的最明显受益者。当您仅使用测试环境时,如果没有运行测试,仅需为存储付费即可。便宜的测试环境意味着您可以创建更多的测试环境,并支持每个开发人员拥有各自独立的环境,而不会产生失控的成本。

至关重要的环境是另一个受益者。通过按需定价,您可以 完全消除 根据配置的江苏体彩进行节流。要在不按需进行此操作的情况下,可能必须在所有表和GSI上设置两倍的基本负载,以确保峰值不会超出表或索引的突发江苏体彩限制。 任何 如果GSI江苏体彩不足,可能会导致表写入受到限制。

使用时 稀疏索引 由于不同的索引对江苏体彩的要求可能千差万别,而且很容易被过度配置,因此管理的挑战也随之增加。

最后的清晰度

在权衡不同的定价模型时,有一些经验法则可用于简化成本比较过程。

  1. DynamoDB的成本是否与其他基础架构相形见??如果成本差异可忽略不计,则按需使用将节省您进行江苏体彩规划和优化的工作。
  2. 您是否有可预测的用法,包括用法减少的可能性很小?购买足以满足您当前需求的预留江苏体彩,并随着应用程序的增长增加购买量。
  3. 使用情况全天都有变化,但没有突然的峰值吗?自动缩放非常适合周期性工作负载,以提高所配置江苏体彩的利用率。
  4. 你不确定吗从按需江苏体彩开始,并观察利用率,使用这些课程来设置预配置江苏体彩的级别。

避免江苏体彩规划的复杂性是DynamoDB 一经请求最引人注目的方面之一。希望通过手头的定价分析,您现在可以权衡无形和人事成本与基础架构成本,并根据您的环境做出决定。

作者
瑞安·布朗(Ryan Brown)Trek10
瑞安·斯科特·布朗