AWS DynamoDB 预置容量定价模型如何运作?
How does AWS DynamoDB provisioned capacity pricing model work?
阅读 AWS 文档和其他类似问题的答案后,DynamoDB 预配置容量模型定价对我来说仍然有些不清楚。
如 AWS 文档中所述:"You will be charged for the throughput capacity (reads and writes) you provision in your Amazon DynamoDB tables, even if you do not fully utilize the provisioned capacity. The actual reads and writes performance of your DynamoDB tables may vary and may be less than the throughput capacity that you provision."
根据 this answer 的最后一部分关于一个类似的问题:"Lastly, with Dynamo you pay for the capacity that you reserve, not what you consume. So as long as your table is not being throttled, even when you go slightly over the provisioned capacity (which Dynamo allows in certain cases) you will not be charged extra.".
但是,我在任何地方都没有找到关于定价如何基于数据 read/write 费率的简单解释,该费率可以超过为 table 设置的当前 Read/Write 容量单位值或会发生什么如果 table read/write 操作根据请求被限制。如果我创建一个 table 并且将 Read Capacity Unit 和 Write Capacity Unit 都设置为 5 并且禁用自动缩放功能,那么 DynamoDB 服务在所有情况下的费用是否都按以下等式计算?
charges = (provisioned RCU * Hours used + provisioned WCU * Hours used) + Storage costs
这意味着,无论 RCU/s 和 WCU/s 使用情况和限制如何。
一个例子:根据我的理解,Scan
请求将 return 上述 table 中的所有项目,例如,包含 80 个项目将超过预配置的吞吐量(大小为每个项目小于 4 KB,table 中所有项目的总大小约为 160 KB),因此获取数据需要大约 8 秒(160 KB /(5 读取容量单位 * 4 KB) ) 请求受到限制,否则 DynamoDB 将允许突发容量消耗并更快地处理扫描。
但在这两种情况下,该请求都将作为配置读取容量过度使用而额外收费,因为配置容量基本上是一种限制 read/write 操作率的方法。这个假设正确吗?还是 table 限制主题以收取额外费用?那么强制数据read/write速率限制的方法是什么?
您可以在 this AWS re:invent 2018 talk.
中找到关于如何实施 DynamoDB 的预配置定价(以及许多其他有趣的东西)的非常好的介绍
简短的回答是,如果您使用预配置定价(并禁用自动缩放),您将完全支付您预配置的价格(加上磁盘和网络等其他费用)-不多也不少。亚马逊会限制你,这样你就无法获得(平均)超过你支付的请求率。亚马逊还将努力(在上面的演讲中有所描述)确保您得到的东西不会比您支付的价格少 (演讲解释了为什么这不容易实现,过去用户确实抱怨过)。即使您确实设法每秒获得比您预配的更多的请求,您也不会被收取额外费用。亚马逊只会记住它为您提供的服务更多,并且您可能会在接下来的几秒钟内收到更少的服务请求。
Amazon 有几种限制您的方式:它可以延迟请求,它可以使 ProvisionedThroughputExceededException
的请求失败,它可以 return 减少 Scan
的商品,或者它可以 return 部分 批处理操作成功,例如 BatchGetItem
。在所有这些情况下,您的客户端库都会帮助您并稍后自动完成请求,并带有指数退避。
您提到自动缩放是您没有使用的选项。但您可能仍然有兴趣了解它的作用。由于预置容量可以随时更改,自动缩放可帮助您根据当前需求选择正确的预置容量,方法是在接近限制时增加预置容量,或在远离限制时降低预置容量。
This blog post 是对如何结合自动扩展和 预留 容量(您承诺一整年的一些配置容量)和 按需 容量(您根本不需要提供),以获得他们声称的更优惠的价格。
阅读 AWS 文档和其他类似问题的答案后,DynamoDB 预配置容量模型定价对我来说仍然有些不清楚。
如 AWS 文档中所述:"You will be charged for the throughput capacity (reads and writes) you provision in your Amazon DynamoDB tables, even if you do not fully utilize the provisioned capacity. The actual reads and writes performance of your DynamoDB tables may vary and may be less than the throughput capacity that you provision."
根据 this answer 的最后一部分关于一个类似的问题:"Lastly, with Dynamo you pay for the capacity that you reserve, not what you consume. So as long as your table is not being throttled, even when you go slightly over the provisioned capacity (which Dynamo allows in certain cases) you will not be charged extra.".
但是,我在任何地方都没有找到关于定价如何基于数据 read/write 费率的简单解释,该费率可以超过为 table 设置的当前 Read/Write 容量单位值或会发生什么如果 table read/write 操作根据请求被限制。如果我创建一个 table 并且将 Read Capacity Unit 和 Write Capacity Unit 都设置为 5 并且禁用自动缩放功能,那么 DynamoDB 服务在所有情况下的费用是否都按以下等式计算?
charges = (provisioned RCU * Hours used + provisioned WCU * Hours used) + Storage costs
这意味着,无论 RCU/s 和 WCU/s 使用情况和限制如何。
一个例子:根据我的理解,Scan
请求将 return 上述 table 中的所有项目,例如,包含 80 个项目将超过预配置的吞吐量(大小为每个项目小于 4 KB,table 中所有项目的总大小约为 160 KB),因此获取数据需要大约 8 秒(160 KB /(5 读取容量单位 * 4 KB) ) 请求受到限制,否则 DynamoDB 将允许突发容量消耗并更快地处理扫描。
但在这两种情况下,该请求都将作为配置读取容量过度使用而额外收费,因为配置容量基本上是一种限制 read/write 操作率的方法。这个假设正确吗?还是 table 限制主题以收取额外费用?那么强制数据read/write速率限制的方法是什么?
您可以在 this AWS re:invent 2018 talk.
中找到关于如何实施 DynamoDB 的预配置定价(以及许多其他有趣的东西)的非常好的介绍简短的回答是,如果您使用预配置定价(并禁用自动缩放),您将完全支付您预配置的价格(加上磁盘和网络等其他费用)-不多也不少。亚马逊会限制你,这样你就无法获得(平均)超过你支付的请求率。亚马逊还将努力(在上面的演讲中有所描述)确保您得到的东西不会比您支付的价格少 (演讲解释了为什么这不容易实现,过去用户确实抱怨过)。即使您确实设法每秒获得比您预配的更多的请求,您也不会被收取额外费用。亚马逊只会记住它为您提供的服务更多,并且您可能会在接下来的几秒钟内收到更少的服务请求。
Amazon 有几种限制您的方式:它可以延迟请求,它可以使 ProvisionedThroughputExceededException
的请求失败,它可以 return 减少 Scan
的商品,或者它可以 return 部分 批处理操作成功,例如 BatchGetItem
。在所有这些情况下,您的客户端库都会帮助您并稍后自动完成请求,并带有指数退避。
您提到自动缩放是您没有使用的选项。但您可能仍然有兴趣了解它的作用。由于预置容量可以随时更改,自动缩放可帮助您根据当前需求选择正确的预置容量,方法是在接近限制时增加预置容量,或在远离限制时降低预置容量。 This blog post 是对如何结合自动扩展和 预留 容量(您承诺一整年的一些配置容量)和 按需 容量(您根本不需要提供),以获得他们声称的更优惠的价格。