AWS DynamoDB 定价和成本优化指南

Amazon Web Services DynamoDB是一种 NoSQL 数据库服务,非常适合需要低延迟数据访问的应用程序,例如 Web、移动、物联网和游戏应用程序。它通过快速高效地处理大量数据来提高应用程序的耐用性。它的功能包括内置缓存和安全性以及对 Web 应用程序的备份支持。由于 AWS DynamoDB 支持 ACID 事务,因此它可以在企业级扩展,从而允许开发业务关键型应用程序。

AWS DynamoDB 确实提供了免费套餐,但其付费计划的定价基于六个因素:

  • 数据存储量
  • 您读取和写入的数据量
  • 数据传输量
  • 备份和恢复您执行的操作
  • DynamoDB 流
  • 使用全局表时复制的写入请求单元数量

本文将讲解 DynamoDB 的定价结构,以及如何通过考虑上述因素来降低 DynamoDB 中的费用,以便您以最低的成本获得最佳的性能。

 

 

DynamoDB 定价

DynamoDB 的使用成本极高。有两种定价结构可供选择:预置容量和按需容量。

 

DynamoDB 预配置容量

在此 Amazon DybamoDB 定价计划中,将按操作容量单位(或读写容量单位)的使用量按小时计费。您可以通过指定管理的每个数据库表所需的最大资源量来控制成本。预配置容量提供自动扩展并动态适应流量的增加。但是,除非启用此功能,否则它不会针对数据流量的突然变化实施自动扩展。

 

DynamoDB 按需定价

此计划按请求单位(或读写请求单位)计费。您只需为您发出的请求付费,这使其成为真正的无服务器选择。不过,在处理大量生产工作负载时,这种选择可能会变得昂贵。如果您不确定预计的流量大小,按需容量方法非常适合自动扩展。

了解哪种容量最适合您的需求是使用 DynamoDB 优化成本的第一步。在做出选择之前,请考虑以下一些因素。

在以下情况下,您应使用预配置容量:

  • 您对应用程序的最大工作量有所了解
  • 您的应用程序的流量是一致的,不需要扩展(除非您启用自动扩展功能,但这会花费更多)

在以下情况下,您应使用按需容量:

  • 你不确定你的应用程序将承受多少工作量
  • 你不知道应用程序的数据流量有多一致
  • 你只想按实际使用量付费

 

DynamoDB 定价计算器

有几个选项可用于帮助估算和计算使用 AWS DynamoDB 可能需要支付的费用。我们发现,对于 DynamoDB,最好的是 AWS 自己的 AWS 定价计算器,可直接在此处找到:DynamoDB 定价计算器。使用此计算器,您可以轻松选择 DynamoDB 功能、预置容量、读/写设置,然后获得明确的估算。

 

DynamoDB 的读取和写入容量

DynamoDB 表的读取容量表示您可以从中读取多少数据。读取容量单位 (RCU) 用于衡量表的读取容量。对于大小不超过 500 KB 的对象,一个 RCU 等于每秒一次强一致性读取或每秒两次最终一致性读取。

DynamoDB 表的写入容量表示您可以向其中写入多少数据。写入容量单位 (WCU) 表示每秒写入一次(最大 1 KB)的项目。

 

 

DynamoDB 自动扩展

数据库行为可能难以衡量,这使得扩展变得困难。数据库扩展不足可能会导致灾难,而扩展过度则会导致资源浪费。DynamoDB 自动扩展功能可配置合适的读取和写入吞吐量以满足应用程序的请求率。这意味着当您的工作负载发生变化时,DynamoDB 会自动调整并动态重新分配数据库分区,以更好地适应读取吞吐量、写入吞吐量和存储的变化。

自动扩展是创建 DynamoDB 表时的默认容量设置,但您可以在任何表上激活它。在 DynamoDB 中,您可以通过指定读取和写入容量的最小和最大级别以及所需的使用率百分比来定义自动扩展。当消耗的读取或写入量连续两分钟超过所需的使用率百分比时,将激活上限警报。当流量连续十五分钟低于所需利用率(减去百分之二十)时,将触发下限警报。当两个警报都发出时,自动扩展过程开始。

 

监控 DynamoDB 资源

监控 AWS 资源(例如 DynamoDB)的延迟、流量、错误和饱和度称为资源监控。它使扩展 DynamoDB 数据库变得更加容易,因为您可以获得所需的指标,例如网络吞吐量、CPU 利用率或读/写操作。例如,在监控数据库后,您发现数据库的流量激增。这表明大量数据正在从数据库读取或写入数据库。您可以决定增加数据库的读取容量以容纳更多读取请求,或增加写入容量以容纳更多写入请求。

 

DynamoDB 成本优化

现在您已经了解了使用 AWS DynamoDB 时计费方式的一些因素,下面是一些建议,可让这些因素对您有利,并确保 DynamoDB 具有成本效益。

选择合适的容量

您可能已经知道想要采用哪种容量结构,但在做出最终选择时请记住这些要点。

 

DynamoDB 按需容量成本优化

计算表明按需表的单次请求成本比预配置表高出五到六倍。如果您的工作负载保持稳定使用且没有意外峰值,但您不确定未来的使用情况,请考虑使用启用自动缩放的预配置模式。

 

DynamoDB 预置容量成本优化

如果您使用预置容量,并且容量超过 100 个单位,考虑购买预留容量。与授予的吞吐容量相比,预留容量在三年内提供 76% 的折扣,在一年内提供 53% 的折扣。

 

查找未使用的 DynamoDB 表

未使用的 DynamoDB 表会浪费资源,并且会不必要地增加您的成本。您有两种选择来处理此问题。您可以使用按需容量模式来确保只为您发出读/写请求的数据库表付费。或者,尝试检测未使用的表并消除它们。为此,您需要检查表上的读/写操作。如果表在过去 90 天内没有读/写活动,则它为未使用的表。

 

减少 DynamoDB 备份需求

据估计,支持自动备份和删除数据的 Amazon DynamoDB 备份管道可能会大大增加您的成本。这是因为创建当前 DynamoDB 表的备份需要不断消耗 WCU 数量,检索备份表时需要消耗 RCU 数量。因此,备份表没有指定的资源大小,并且表会无限增长。请改用本机 DynamoDB 备份,它使用预置容量。这样,您就知道需要多少备份大小以及需要多少读/写资源容量。

 

使用 AWS 廉价区域

某些AWS 区域的价格比其他区域更贵。如果您不关心数据位置,请选择最便宜的区域。

最便宜的地区是 us-east-1、us-east-2 和 us-west-2,每月每 GB 0.25 美元、每小时每 WCU 0.00065 美元、每小时每 RCU 0.00013 美元。

 

总结

AWS DynamoDB 提供了灵活的定价模式和多样化的资源配置选项,满足不同规模和负载的业务需求。通过按需模式和预置容量模式的合理选择,以及使用自动分层存储、DAX 缓存和基于指标的监控优化,用户可以显著降低成本并提升性能。此外,充分利用免费套餐、保留容量以及删除未使用资源等措施,可以进一步优化 DynamoDB 的使用成本。全面理解定价机制并结合实际业务场景,能够帮助企业在控制预算的同时,最大化数据库的性能和可靠性。

更多探索

Tell me what you need