AWS 定价计算器
在单次估计中计算您的 Amazon DynamoDB 和架构成本。
立即创建您的自定义估计
使用预置容量模式,指定您的应用程序需要的每秒数据读取和写入次数。可以使用自动扩展根据指定的利用率自动调整表的容量以确保应用程序性能,同时降低成本。本定价页详细介绍了 DynamoDB 如何对 DynamoDB 的核心和可选功能收费。有关 AWS 中国区域的定价,请参阅 AWS 中国区域定价页面。
关键术语
读取容量单位 (RCU):从表中读取数据的每个 API 调用都是一个读取请求。读取请求可以是强一致性、最终一致性或事务性读取请求。对最大 4KB 的项目,一个 RCU 每秒可以执行一个强一致性读取请求。大于 4KB 的项目需要额外的 RCU。对最大 4KB 的项目,一个 RCU 每秒可以执行两个最终一致性读取请求。对最大 4KB 的项目,事务性读取请求需要两个 RCU 才能每秒执行一个读取请求。例如,对 8KB 项目的强一致性读取需要两个 RCU,对 8KB 项目的最终一致性读取需要一个 RCU,而对 8KB 项目的事务性读取需要四个 RCU。 有关详细信息,请参阅读取一致性。
写入容量单位 (WCU):将数据写入表的每个 API 调用都是一个写入请求。对最大 1KB 的项目,一个 WCU 每秒可以执行一个标准写入请求。大于 1KB 的项目需要额外的 WCU。对最大 1KB 的项目,事务性写入请求需要两个 WCU 才能每秒执行一个写入请求。例如,对 1KB 项目的标准写入请求需要一个 WCU,对 3KB 项目的标准写入请求需要三个 WCU,而对 3KB 项目的事务性写入请求需要六个 RCU。
复制的写入请求单位 (rWCU):使用 DynamoDB 全局表时,您的数据将被自动写入所选择的多个 AWS 区域。每次写入都发生在本地区域和复制区域中。
流读取请求单位:DynamoDB 流的每个 GetRecords API 调用都是一个流读取请求单位。每个流读取请求单位最多可以返回 1MB 的数据。
事务性读取/写入请求:在 DynamoDB 中,事务性读取或写入与标准读取或写入不同,因为它保证单个事务集内包含的所有操作作为一个集合成功或失败。
变更数据捕获单位:DynamoDB 可以捕获 DynamoDB 表中的项目级更改,并将这些更改复制到其他 AWS 服务,如 Amazon Kinesis Data Streams 和 AWS Glue。DynamoDB 会将这些更改捕获为委托操作,这意味着,DynamoDB 会代表您进行复制,这样您就不必管理吞吐能力。DynamoDB 对每个表写入操作(最多 1KB)收取一个变更数据捕获单位的费用。对于大于 1KB 的项目,需要额外的变更数据捕获单位。
DynamoDB 表类:DynamoDB 提供两种旨在帮助您优化成本的表类。DynamoDB 标准表类为默认设置,建议用于大部分工作负载。DynamoDB 标准 – 不频繁访问层(DynamoDB 标准 – IA)已针对表进行了优化,这些表用于存储不频繁访问的数据,其中,存储是主要成本。每个表类提供不同的数据存储以及读写请求定价。您可以选择根据表的存储要求和数据访问模式,选择最经济高效的表类。 有关 DynamoDB 表类的更多信息,请参阅 DynamoDB 开发人员指南。
DynamoDB 功能和计费概述
功能 |
功能 |
计费单位 |
|
核心功能 |
|||
|
预置写入容量 |
将数据写入表 |
WCU |
|
预置读取单位 |
从表读取数据 |
RCU |
|
数据存储 |
存储数据,包括索引值 |
GB-月 |
可选功能 |
|||
|
连续备份 |
前 35 天连续备份 |
GB-月 |
|
按需备份 |
在指定时间点创建快照备份 |
GB-月 |
|
基于备份还原 |
将表还原到特定快照或时间 |
GB |
|
全局表 |
复制数据以创建多区域、多活动表 |
rWCU |
Amazon Kinesis Data Streams 的变更数据捕获 | 捕获任何 DynamoDB 表中的项级修改,并将其复制到您选择的 Kinesis 数据流 | 变更数据捕获单位 | |
AWS Glue 的变更数据捕获 | 捕获表中的项目级数据变更,并将其复制到 AWS Glue | 变更数据捕获单位 | |
数据导出到 Amazon S3 | 将 DynamoDB 表备份从一个特定时间点导出到 Amazon S3 | GB | |
从 Amazon S3 导入数据 | 将数据从 Amazon S3 迁移并加载到新的 DynamoDB 表中 | GB | |
|
DynamoDB 流 |
在表上提供按时间顺序排列的项级更改序列 |
流读取请求单位 |
|
数据传出 |
将数据传输到其他 AWS 区域 |
GB |
与 DynamoDB 集成的计费概览
集成 |
功能 |
计费单位 |
|
|
与兼容 DynamoDB 的缓存服务 DynamoDB Accelerator(DAX)集成 |
提高了性价比,并将延迟从几毫秒缩短到几微秒 |
节点小时数 |
与 Amazon OpenSearch Service 的零 ETL 集成 | 无需构建和管理数据管道即可实现全文搜索、向量搜索、语义搜索、地理空间搜索等功能 | 导出数据量(GB) | |
与 Amazon Redshift 的零 ETL 集成 | 无需构建和管理数据管道即可对操作数据进行分析 | 导出数据量(GB) |
DynamoDB 定价
-
• 读取和写入请求
预置容量
选择预置容量模式时,指定预计您的应用程序需要的读取和写入容量。可以使用自动扩展根据指定的利用率自动调整表的容量以确保应用程序性能,同时降低成本。DynamoDB 每秒对每个写入收取一个 WCU 费用(最大 1KB),每秒对每个事务性写入收取 2 个 WCU 费用。对于读取,DynamoDB 每秒对每个强一致性读取收取一个 RCU 的费用,每秒对每个事务性读取收取两个 RCU 的费用,每秒对每个最终一致性读取收取半个 RCU 的费用(最大 4KB)。您需要为 Amazon DynamoDB 表中预置的吞吐容量(读写)付费,即使您没有完全利用预置容量,也需要付费。预置容量价格取决于您的表类。您的 DynamoDB 表的实际读写性能可能会有所不同,并且可能小于预置的吞吐容量。
预留容量
DynamoDB 预留容量可以对基本级别的预置容量做出预先承诺,从而帮助您节省预置容量成本。利用预留容量,您需支付一次性预付款,并承诺在一段时间内达到最低的预置使用量。预留容量按小时折扣费率计费。对于您预置的超出预留容量的任何容量,将按照无折扣的预置容量费率收费。预留容量适用于使用 DynamoDB 标准表类的 DynamoDB 表上的单区域预置读取和写入容量单位(RCU 和 WCU)。预留容量不适用于使用 DynamoDB 标准-IA 表类或按需容量的表。
您可以通过 AWS 管理控制台提交请求来购买 DynamoDB 预留容量。预留容量要以 100 个 WCU 或 100 个 RCU 为单位购买。无法为重复的 WCU (rWCU) 购买预留容量。购买预留容量时,必须指定 AWS 区域、数量和期限。您需要支付 (1) 一次性预付款,以及 (2) 根据您购买的 DynamoDB 预留容量,在使用期限内的小时费用。DynamoDB 预留容量还需遵守 AWS 客户协议或与我们就您使用我们的服务达成的其他协议项下适用的所有存储、数据传输和其他费用。
-
• 数据存储
不需要预置存储:DynamoDB 会不断监控表大小,以确定存储费用。DynamoDB 通过添加数据的原始字节大小以及每项存储开销(取决于您所启用的功能)来衡量可计费数据的大小。请参阅 DynamoDB 用户指南以了解详情。 数据存储价格取决于您的表类。
-
• 备份与还原
DynamoDB 提供了两种方法来备份表数据。使用时间点恢复 (PITR) 进行连续备份,可以为表提供前 35 天的连续备份。可以将表还原到前五周内任何指定秒的状态。按需备份可以创建表快照,以便长期存档,帮助您满足企业和政府的监管要求。
连续备份 (PITR)
DynamoDB 根据针对其启用此功能的每个 DynamoDB 表的大小(表数据和本地二级索引)对 PITR 进行收费。DynamoDB 会在一个月内持续监控启用了 PITR 的表的大小,以确定备份费用,并继续向您收费,直到您禁用每个表上的 PITR 为止。
按需备份
DynamoDB 根据表的存储大小(表数据和本地二级索引)对按需备份进行收费。每次备份的大小是在每次备份请求时确定的。每月计费的总备份存储大小是 DynamoDB 表的所有备份的总和。DynamoDB 会在整个月内持续监控按需备份的大小,以确定您的备份费用。
您可以使用 DynamoDB 或 AWS Backup 创建和管理按需备份。要了解更多信息,请参阅使用按需备份和还原。借助 AWS Backup,您可以集中和自动执行各种 AWS 服务中的数据保护。此外,AWS Backup 还提供有跨账户和跨区域按需备份复制、低成本存储层、备份标记和备份加密等高级功能,这些功能独立于其源数据,可以帮助满足业务连续性要求和优化备份成本。跨区域数据传输需要支付其他费用。有关这些费用的更多信息,请参阅 AWS Backup 定价。
* 仅 AWS Backup 托管的按需备份支持冷备份存储。您可以从 AWS 管理控制台选择使用 AWS Backup。
传输到冷存储的备份最短需存储 90 天,未满 90 天删除的备份会产生按比例支付的费用,该费用等于剩余天数的存储费用。
还原表
从按需备份或 PITR 还原表根据为每个请求还原的总数据大小(表数据、本地二级索引和全局二级索引)进行收费。
* 仅 AWS Backup 托管的按需备份支持从冷备份存储还原。您可以从 AWS 管理控制台选择使用 AWS Backup。冷备份存储不适用于使用时间点恢复 (PITR) 的持续备份。
-
• 全局表
DynamoDB 根据在每个副本表上使用的资源对全局表收费。按复制的 WCU 而不是标准的 WCU 衡量对全局表的写入请求。复制时所消耗的复制 WCU 数量取决于您正在使用的全局表的版本。如需了解更多信息,请参阅管理全局表的最佳实践和要求。 定价取决于您的表类。读取请求和数据存储均按表(非全局表)计费。如果您添加表副本以在新区域中创建或扩展全局表,DynamoDB 将在所添加的区域中按表还原的每 GB 数据收取费用。对于包含数据的表,跨区域复制和添加副本还会因数据传出而产生收费。有关详细信息,请参阅本定价页面的“数据传输”部分。
-
• Amazon Kinesis Data Streams 的变更数据捕获
DynamoDB 会按更变数据捕获单位对 Amazon Kinesis Data Streams 的变更数据捕获收费。DynamoDB 对每个写入操作(最多 1KB)收取一个变更数据捕获单位的费用。您只需为应用程序执行的写入操作付费,而不必管理表中的吞吐容量。
即使您将 DynamoDB 变更复制到 Kinesis 数据流,Kinesis Data Streams 收费仍适用。有关更多信息,请参阅 Amazon Kinesis Data Streams 定价。
-
• 热吞吐量
默认情况下,热吞吐量值对所有 Amazon DynamoDB 表和索引均可见。这些值会在您增加预置吞吐量或按需消耗量时自动调整,无需支付额外费用。但是,如果您选择手动增加这些值,则需支付额外费用。
当您通过为读取和写入设置新的热吞吐量值来请求预热表或索引时,DynamoDB 会根据新值与表或索引可以支持的当前热吞吐量之间的差值来收取费用。您需要按区域费率支付一次性费用,即读取热吞吐量每增加一个单位,需支付一个读取容量单位(RCU),写入热吞吐量每增加一个单位,需支付一个写入容量单位(WCU)。这些费用适用于 DynamoDB 标准表类和标准 - 不频繁访问表类。
如果您对全局表副本进行预热以进行读取和/或写入操作,则所有副本都将预热,以匹配相同的热吞吐量值。您将需要为全局表配置中的每个 AWS 区域付费。
示例:假设您在美国东部(弗吉尼亚州北部)区域有一个 DynamoDB 标准表,其当前热吞吐量为每秒 12000 个读取单位和每秒 4000 个写入单位。对于即将到来的峰值事件,您预计表每秒需要 10 万个读取单位,因此将其设置为新的读取热吞吐量值。您将需要为额外的 8.8 万个读取单位(10 万和 1.2 万之间的差值)支付一次性费用,费率为 11.44 美元(8.8 万个单位 × 每个 RCU 0.00013 美元)。无论您是在 DynamoDB 标准表类还是标准-不频繁访问表类中预热表或索引来进行读取或写入,此计费结构均适用。如果此表是全局表设置的一部分,且在三个区域 [包括美国东部(弗吉尼亚州北部)] 有副本,则所有三个副本都将预热,以支持每秒 10 万个读取单位的热吞吐量。除了美国东部(弗吉尼亚州北部)的费用外,您还需要按照全局表配置中每个区域的相应费率付费。
-
• AWS Glue 的变更数据捕获
DynamoDB 会按变更数据捕获单位对 AWS Glue 的变更数据捕获收费。DynamoDB 对每个写入操作(最多 1KB)收取一个变更数据捕获单位的费用。您只需为应用程序执行的写入操作付费,而不必管理表中的吞吐能力。
即使您将 DynamoDB 变更复制到 AWS Glue 目标数据库,AWS Glue 收费仍适用。有关更多信息,请参阅 AWS Glue 定价。
-
• 数据导出到 Amazon S3
使用此功能可将数据从 DynamoDB 连续备份(时间点恢复)导出到 Amazon Simple Storage Service (Amazon S3)。支持的输出数据格式为 DynamoDB JSON 和 Amazon Ion。您可以使用 Amazon Athena、Amazon SageMaker 和 AWS Lake Formation 等 AWS 服务分析导出的数据。
您可以在完整导出和增量导出之间进行选择。完整导出根据创建备份时每个 DynamoDB 表(表数据和本地二级索引)在指定时间点的大小收费。增量导出根据连续备份以生成增量导出输出时处理的数据大小收费。 对于在 Amazon S3 中存储导出的数据以及向您的 Amazon S3 存储桶发出的 PUT 请求,需要支付额外费用。有关这些费用的更多信息,请参阅 Amazon S3 定价。
-
• 从 Amazon S3 导入数据
Amazon DynamoDB 数据导入可以一个简单且高效的方法来在 Amazon S3 与 DynamoDB 表之间移动数据,无需写入任何代码。您可以在 AWS 区域和账户之间复制表格,以帮助迁移数据和构建新应用程序,促进团队之间的数据共享和协作,并帮助简化灾难恢复和业务连续性规划。数据导入定价基于 Amazon S3 中的未解压文件大小。 请查看从 S3 导入,了解详细信息。 支持的输入数据格式为 CSV、DynamoDB JSON 和 Amazon Ion。
对于存储您的源数据以及向您的 Amazon S3 存储桶发出的 GET 请求,Amazon S3 也会收取费用。有关 Amazon S3 费用的更多信息,请参阅 Amazon S3 定价。
-
• 与 DynamoDB Accelerator(DAX)集成
DAX 是一项与 Amazon DynamoDB 兼容的缓存服务。DynamoDB 按小时收取相关 DAX 容量费用,运行 DAX 实例时无需签订长期合约。定价是按消耗的节点小时数计算的,取决于您选择的实例类型。运行未满一小时的节点,按一小时计费。定价规则适用于 DAX 集群中的所有单个节点。例如,如果您有一个三节点 DAX 集群,您将按小时为每个单独的节点(总计三个节点)支付相关费用。
同一可用区内的 Amazon Elastic Compute Cloud (Amazon EC2) 与 DAX 之间的数据传输免费。在位于同一 AWS 区域、不同可用区的 Amazon EC2 实例和 DAX 代码之间传输数据时,收取标准 Amazon EC2 数据传输费用。但是,您只需要向 Amazon EC2 实例传入或传出的数据付费。DAX 节点本身传入或传出的流量并不需要支付 DAX 数据传输费用。
-
• DynamoDB 流
DynamoDB 按读取请求单位收取从 DynamoDB 流读取的数据的费用。每个 GetRecords API 调用是按 DynamoDB 流读取请求单位进行收费,并且最多可从 DynamoDB 流返回 1MB 的数据。流读取请求单位不同于 DynamoDB 表上的读取请求。对于 AWS Lambda 作为 DynamoDB 触发器的一部分所调用的 GetRecords API 调用,您不需要付费。您也无需为 DynamoDB 全局表调用的 GetRecords API 调用付费。
-
• 数据传输
数据传入和传出是指传入和传出 DynamoDB。DynamoDB 对入站数据传输不收费,对于在同一 AWS 区域内 DynamoDB 与其他 AWS 服务之间传输的数据,也不收费(即 0.00 USD/GB)。跨 AWS 区域(例如在美国东部 [弗吉尼亚北部] 区域的 DynamoDB 和欧洲 [爱尔兰] 区域的 Amazon EC2 之间)传输数据,则传输双方均需要付费。作为 AWS 免费套餐的一部分,您将会获得所有 AWS 服务之间每月共计 1GB 的免费数据传输,AWS GovCloud(美国)地区除外。有关更多信息,请参阅 AWS 免费套餐。如果每月数据传输量超出 500 TB,请联系我们。
DynamoDB 免费套餐
AWS 免费套餐允许您免费实际体验 AWS 服务。下列 DynamoDB 优势包括在 AWS 免费套餐中。每种优势基于区域和付款人账户按月计算。
- 对于使用 DynamoDB 标准表类的表,预置容量为 25 个 WCU 和 25 个 RCU
- 对于使用 DynamoDB 标准表类的表,数据存储为 25GB
- 对于使用两个 AWS 区域中部署的 DynamoDB 标准表类的全局表,25 个 rWCU
- 250 万个来自 DynamoDB Streams 的流读取请求
- 适用于所有 AWS 服务的共计 1GB 的数据传出量(前 12 个月为 15GB)
DynamoDB 定价示例
-
• 基本示例
该示例演示了如何使用预置容量模式计算支持 Auto Scaling 的表的价格。Auto Scaling 会根据实际使用的容量不断设置预置容量,以使实际利用率保持接近目标利用率。
假设您在美国东部(弗吉尼亚北部)地区创建一个新的 DynamoDB 标准表,其中目标利用率设置为默认值 70%,最小容量单位为 100 个 RCU 和 100 个 WCU,最大容量设置为 400 个 RCU 和 400 个 WCU(请参阅 DynamoDB 中的限制)。为简单起见,假设每次用户与您的应用程序交互时,系统会执行 1 次 1KB 的写入和 1 次 1KB 的强一致性读取。
在前 10 天,假设使用的 RCU 和 WCU 在 1 到 70 之间变化。Auto Scaling 不会触发任何扩展活动,您在每小时内需支付的费用为 0.078 USD(100 个预置 WCU 为 0.065 USD [0.00065 USD * 100],100 个 RCU 为 0.013 USD [0.00013 USD * 100])。
现在假设第 11 天使用的容量增加到 100 个 RCU 和 100 个 WCU。Auto Scaling 开始触发扩展活动,将预置容量增加到 143 个 WCU 和 143 个 RCU(100 已使用容量 ÷ 143 预置容量 = 69.9%)。每小时的账单是 0.11109 USD(143 个 WCU 为 0.0925 USD,143 个 RCU 为 0.01859 USD)。
在第 21 天,假设使用的容量减少到 80 个 RCU 和 80 个 WCU。Auto Scaling 开始触发缩减活动,将预置容量减少到 114 个 WCU 和 114 个 RCU(80 已使用容量 ÷ 114 预置容量 = 70.2%)。每小时的账单是 0.08952 USD(114 个 WCU 为 0.0741 USD,114 个 RCU 为 0.01482 USD)。
当月的费用为 66.86 USD,具体如下:
第 1 天到第 10 天:18.72 USD(每小时 0.078 USD x 24 小时 x 10 天)
第 11 天到第 20 天:26.66 USD(每小时 0.11109 USD × 24 小时 × 10 天)
第 21 天到第 30 天:21.48 USD(每小时 0.08952 USD x 24 小时 x 10 天)
AWS 免费套餐包括使用 DynamoDB 标准表类的表中的 25 个 WCU 和 25 个 RCU,可以将您的月度费用降低 14.04 USD。
25 个 WCU x 每小时 0.00065 USD x 24 小时 x 30天 = 11.70 USD
25 个 RCU x 每小时 0.00013 USD x 24 小时 x 30天 = 2.34 USD
数据存储:假设您的表在月初占用 25GB 的存储空间,然后在月底增加到 29GB,基于对表大小的连续监控平均占用空间为 27GB。表类已设置为 DynamoDB 标准,因此,AWS 免费套餐中包含前 25GB 的存储空间。对其余 2GB 存储空间收取每 GB 0.25 USD 的费用,所以本月的表存储成本为 0.50 USD。
您本月的总账单将为 53.32 USD,其中包括 52.82 USD 的读写容量费用和 0.50 USD 的数据存储空间费用。
-
• 详细示例
该示例演示了如何通过预置容量模式计算支持 Auto Scaling 的表的价格。Auto Scaling 会根据实际使用的容量不断设置预置容量,以使实际利用率保持接近目标利用率。
假设您在美国东部(弗吉尼亚北部)地区创建一个新表,其中目标利用率设置为默认值 70%,最小容量单位为 100 个 RCU 和 100 个 WCU,最大容量设置为 400 个 RCU 和 400 个 WCU(请参阅 DynamoDB 中的限制)。Auto Scaling 将根据这些限值运行,并且不会将预置容量缩减到最小值以下,或扩展到最大值以上。表创建之后,Auto Scaling 将开始预置最小容量单位。为简单起见,假设每次用户与您的应用程序交互时,系统会执行 1 次 1KB 的写入和 1 次 1KB 的强一致性读取。
在表创建后的第一个小时内,假设已使用的 RCU 和 WCU 在 1 到 70 之间变化。在 70% 的目标利用率内,实际利用率将相应地在 1%(1 已使用容量 ÷ 100 预置容量的百分比)和 70%(70 已使用容量 ÷ 100 预置容量的百分比)之间变化。Auto Scaling 不会触发任何扩展活动,您在此小时内需支付的费用为 0.078 USD(100 个预置 WCU 为 0.065 USD [0.00065 USD * 100],100 个 RCU 为 0.013 USD [0.00013 USD * 100])。
在第二个小时内,假设已使用容量增加到 100 个 RCU 和 100 个 WCU,这将导致实际利用率提高到 100%(100 已使用容量 ÷ 100 预置容量的百分比),远高于 70% 的目标利用率。Auto Scaling 开始触发扩展活动,以增加预置容量,使实际利用率更接近 70% 的目标利用率。结果为 143 个 WCU 和 143 个 RCU 的预置容量(100 已使用容量 ÷ 143 预置容量 = 69.9%)。第二个小时需支付的费用为 0.1154 USD(143 个 WCU 为 0.09295 USD,143 个 RCU 为 0.01859 USD)。
在第三个小时内,假设已使用容量减少到 80 个 RCU 和 80 个 WCU,这将导致实际利用率减少到 56%(80 已使用容量 ÷ 143 预置容量的百分比),远低于 70% 的目标利用率。Auto Scaling 将开始触发缩减活动,以减少预置容量,使实际利用率更接近 70% 的目标利用率,因此要预置的容量为 114 个 WCU 和 114 个 RCU(80 已使用容量 ÷ 114 预置容量的百分比 = 70.2%)。第三个小时需支付的费用为 0.08892 USD(114 个 WCU 为 0.0741 USD,114 个 RCU 为 0.01482 USD)。
为简单起见,假设您消耗的容量保持不变,为 80 个 RCU 和 80 个 WCU。您的表还预置了 114 个 WCU 和 114 个 RCU,每日费用为 2.1341 USD,细分为:
114 个 WCU x 每小时 0.00065 USD x 24 小时 = 1.7784 USD
114 个 RCU x 每小时 0.00013 USD x 24 小时 = 0.3557 USD
您的当月费用为 64.04 USD:
第 1 天的总费用:每天 2.14578 USD
第 1 个小时的费用:每小时 0.078 USD
第 2 个小时的费用:每小时 0.1154 USD
第 3-24 个小时的费用:每小时 0.08892 USD
第 2-30 天的费用:每天 2.1341 USD
AWS 免费套餐包括使用 DynamoDB 标准表类的表中的 25 个 WCU 和 25 个 RCU,可以将您的月度费用降低 14.04 USD:
25 个 WCU x 每小时 0.00065 USD x 24 小时 x 30天 = 11.70 USD
25 个 RCU x 每小时 0.00013 USD x 24 小时 x 30天 = 2.34 USD
数据存储:假设您的表在月初占用 25GB 的存储空间,然后在月底增加到 29GB,基于对表大小的连续监控平均占用空间为 27GB。 表类已设置为 DynamoDB 标准,因此,AWS 免费套餐中包含前 25GB 的存储空间。对其余 2GB 存储空间收取每 GB 0.25 USD 的费用,所以本月的表存储成本为 0.50 USD。
备份和还原:如果为期 30 天的一个月内所有按需备份存储的总和为 60GB,则每月的备份费用为 (0.10 USD x 60GB) = 6.00 USD/月。但是,如果您在每月周期中删除 10 天 15GB 的按需备份数据,您需要支付以下费用:(0.10 USD x 60GB) - (0.10 USD x 15GB x 20/30) = 5.00 USD/月。
现在假设除了执行按需备份之外,您还可以使用持续备份。您的表大小为 29GB,因而每月费用为 (0.20 USD x 29GB) = 5.80 USD/月。
如果您需要在一个月内还原一次 29GB 的表,则还原费用为 (0.15 USD x 29GB) = 4.35 USD。
Kinesis Data Streams 变更数据捕获:现在,假设您对 Kinesis 数据流启用流式处理,以使用 Amazon Kinesis 服务处理数据变更。同样,假设您的写入吞吐量与前面的示例一致。您的应用程序每秒执行 80 次 1KB 的写入操作。DynamoDB 每捕获到 1KB 的 Kinesis 数据流写入操作,便会收取一个变更数据捕获单位的费用。在一个月内,产生的变更数据捕获单位为:(80 x 3600 x 24 x 30) = 2.0736 亿。您每月的费用为:(0.10 USD x 2.0736 亿/100 万)= 20.74 USD。
数据导出到 Amazon S3:我们假设您想要将表备份导出到 Amazon S3 进行分析。如果指定时间点的表大小为 29GB,则产生的导出费用为:(0.10 USD x 29 GB)= 2.90 USD。
与 DynamoDB Accelerator(DAX)集成:DAX 是一项与 Amazon DynamoDB 兼容的缓存服务。您已确定需要加快应用程序的响应速度并决定使用 DynamoDB Accelerator(DAX)服务。您查看可用的硬件规范,并确定 t2.small 实例类型的三节点集群满足您的需求。您在第 26 天启用 DAX。DynamoDB 每小时收费 0.12 USD(0.04 USD x 3 个节点),本月最后 5 天共计 14.40 USD(0.12 USD x 120 小时)。
全局表:全局表:现在,假定您在美国西部(俄勒冈州)区域中创建灾难恢复副本表。假定您在美国西部(俄勒冈州)区域中添加副本,您的表大小为 25 GB,则产生的表还原收费为 3.75 USD (0.15 USD x 25 GB)。添加此副本还会产生 25 GB 的数据传输,将在下面的“数据传输”部分中详述。同样,假设您的容量需求与前面的示例一致。Auto Scaling 会继续为您的应用程序的吞吐量需求预置 114 个 WCU 和 114 个 RCU,但现在还必须预置 rWCU,用于写入两个副本表。预置的 rWCU 数量等于两个区域中应用程序写入所需的 rWCU 总数。在这种情况下,您现在每秒向美国东部(弗吉尼亚北部)和美国西部(俄勒冈)这两个区域执行 80 次写入,因而最小预置容量为 160 个 rWCU(弗吉尼亚北部的 80 个 rWCU + 俄勒冈的 80 个 rWCU = 160 个 rWCU)。Auto Scaling 预置 229 个 rWCU (160 rWCU/70%),以将实际利用率维持在预置容量的 70%。如需了解更多信息,请参阅管理全局表的最佳实践和要求。您在每个区域中每小时预置的前 25 个 rWCU 包含在使用 DynamoDB 标准表类的表的 AWS Free Tier 中,因而每小时费用为 0.11635 USD,或为期 30 天的月费用为 83.77 USD。您还在美国西部(俄勒冈州)区域的复制表中另外存储了 27GB 的数据。在每个 AWS 区域中,使用 DynamoDB 标准表类的表的 AWS 免费套餐中包含前 25GB 的存储空间。对其余 2GB 存储空间收取每 GB 0.25 USD 的费用,所以本月额外的表存储成本为 0.50 USD。
DynamoDB 流:现在假设您启用 DynamoDB 流并构建应用程序,以针对流数据每秒执行一次读取请求。在一个月的过程中,这会产生 2592000 个 Streams 读取请求,其中前 2500000 个读取请求包含在 AWS 免费套餐中。您只需为剩余的 92000 个读取请求付费,即每 100000 个读取请求单位 0.02 USD。
数据传输:由于您现在为了全局表实现而正在 AWS 区域之间传输数据,DynamoDB 会对从区域传出的数据收费,但不会对入站数据传输收费。假设每 1KB 每秒恒定写入 80 次,则在区域之间的数据传输中每秒产生 80KB,因而产生每月 198GB(每秒 80 KB x 当月 30 天共 2,592,000 秒)的跨区域数据传输。在美国西部(俄勒冈)区域中添加副本会额外产生 25 GB 的数据传输。如果您已在其他 AWS 服务上使用 AWS 免费套餐数据传输限额,则需要支付 20.07 USD (0.09 USD x [198 GB + 25 GB]) 的数据传输费用。
总的来说,您的单区域 DynamoDB 表的每月总费用为:
- 预置容量:50.00 USD
- 数据存储:0.50 USD
- 按需备份:5.00 USD
- 持续 (PITR) 备份:5.80 USD
- 表还原:4.35 USD
- Amazon Kinesis Data Streams 的变更数据捕获:20.74 USD
- 数据导出到 Amazon S3:2.90 USD
- 与兼容 Amazon DynamoDB 的缓存服务 DynamoDB Accelerator(DAX)集成:14.40 USD
- DynamoDB Streams:0.02 USD
总费用:103.71 USD
添加美国西部(俄勒冈)区域后您的每月 DynamoDB 总费用为:
- 预置读取容量:10.68 USD
- 数据存储(弗吉尼亚北部):0.50 USD
- 按需备份:5.00 USD
- 持续 (PITR) 备份:5.80 USD
- 表还原(弗吉尼亚北部):4.35 USD
- Amazon Kinesis Data Streams 的变更数据捕获:20.74 USD
- 数据导出到 Amazon S3:2.90 USD
- 与兼容 Amazon DynamoDB 的缓存服务 DynamoDB Accelerator(DAX)集成:14.40 USD
- DynamoDB Streams:0.02 USD
- 全局表的表还原(俄勒冈):3.75 USD
- 全局表复制的写入容量:83.77 USD
- 全局表数据存储(俄勒冈州):0.50 USD
- 数据传输:20.07 USD
总费用:172.48 USD
-
• 使用不同表类的示例
本此示例中,我们将演示如何通过选择最适合您表的存储和数据访问模式的 DynamoDB 表类来降低表的月度费用。
假设您在美国东部(弗吉尼亚北部)地区创建一个表。您的表已征用 1TB 历史数据。这些数据为不频繁访问数据,但需要在用户需要时立即提供给用户。现在,假设您的数据存储到月末增长至 1.4TB, 平均为 1.2TB(基于对表大小的持续监控)。您的表已有稳定的可预测流量模式。因此,您将它预置为 160 个 WCU 和 160 个 RCU,因为知道一个月内的使用量不会超过预置容量的 70%。
首先,我们将会估算使用 DynamoDB 标准表类的表的月度费用。
使用 DynamoDB 标准表类的月度费用
将表类设置为 DynamoDB 标准时,计费方式如下:
数据存储:使用 DynamoDB 标准表类时,AWS 免费套餐中包含前 25GB 的存储空间。对其余 1.175TB 存储空间收取每 GB 0.25 USD 的费用,所以本月的表存储成本为 293.75 USD。
预置容量:对于使用 DynamoDB 标准表类的表,AWS 免费套餐包含 25 个 WCU 和 25 个 RCU。计费方式如下:
对于预置写入容量,135 个 WCU x 0.00065 USD/小时 x 24 小时 x 10 天 = 63.18 USD,
对于预置读取容量,135 个 RCU x 0.00013 USD/小时 x 24 小时 x 10 天 = 12.63 USD。
简单来说,使用 DynamoDB 标准表类的月度总费用如下:
- 预置容量:75.82 USD
- 数据存储:293.75 USD
使用 DynamoDB 标准表类的月度总费用为 369.57 USD。
使用 DynamoDB 标准 – IA 表类的月度费用
如先前所示,如果使用 DynamoDB 标准表类,则存储成本高于预置容量成本的 50%。当存储为使用 DynamoDB 标准表类的主要成本(大于预置容量成本的 50%)时,您可以切换为 DynamoDB 标准 – IA 表类,从而优化成本。如果工作负载相同,假设您在下个月初将表类切换为 DynamoDB 标准 – IA。计费方式如下:
数据存储:1.2TB 存储按 0.10 USD/GB 收费,因此,表当月的存储成本为 120.00 USD。
预置容量:对于预置写入容量,
您需要支付 160 个WCU x 0.00081 USD/小时 x 24 小时 x 10 天 = 92.16 USD,
对于预置读取容量,160 个 RCU x 0.00016 USD/小时 x 24 小时 x 10 天 = 18.43 USD。简单来说,使用 DynamoDB 标准 – IA 表类的月度总费用如下:
- 预置容量:110.59 USD
- 数据存储:120.00 USD
使用 DynamoDB 标准 – IA 表类的月度总费用为 230.59 USD。将表切换为 DynamoDB 标准 – IA 可以将表的月度总费用降低 37.6%,也就是 138.97 USD。