了解 Amazon DynamoDB 备份计费
本指南详细介绍了 DynamoDB 如何对备份进行计费。我们将列出影响总体成本的各个组成部分,并提供清晰解释和实际示例。
DynamoDB 提供按需备份和时间点故障恢复(PITR)备份,来协助保护 DynamoDB 数据免受灾难事件的影响,并提供数据归档以实现长期保留。
工作方式
DynamoDB 按需备份是按月计费的。如果您在一个月内的任一天进行备份,系统会显示一笔根据当月剩余天数计算的备份费用(例如:在 27 日创建备份,那么当月只需支付剩余几天的费用,系统将在 27 日一次性收取)。
如果您在接下来的几个月保留之前创建的备份,系统始终会在每月第 1 天收取整月的备份费用。如果您在月底之前删除了备份,系统将根据实际使用量调整费用。
例如,如果您在 7 月 27 日创建了一个备份,并在整个 8 月一直保留该备份,那么该备份的费用将如下所示:
-
7 月 27 日收取 7 月剩余天数的费用
-
8 月 1 日收取整个 8 月的费用
-
系统会在该备份存在的每个后续月份的第 1 天收取费用
-
如果在下个月 15 日删除了备份,则收费将调整为仅收取备份存在 15 天的费用,仍在第 1 天收取
维护 DynamoDB 表的备份时,您可能会发现当月第 1 天显示的 DynamoDB (Region)-TimedBackupStorage-ByteHrs
使用量指标费用似乎异常高。此外,如果您在新月份开始时查看该指标,并将其与之前的计费周期进行比较,可能会观察到使用量似乎出现了较大峰值的情况。这是设计使然。每月第 1 天,系统会对任何现有 DynamoDB 备份收取整月的使用费。对于当月删除的任何 DynamoDB 备份,系统将按比例计算其使用费,以反映实际使用情况。因此,您可能会看到整个月的费用(在第 1 天收取)有所减少。这是因为保留策略会向执行的备份应用过期或手动删除。下面的场景将对此进行探讨。
DynamoDB 备份计费示例
以下示例是您月初可能会在 Cost Explorer 中看到的内容:
请注意,与前几个月相比,2 月 1 日的峰值似乎要大得多。我们来分析一下发生这种情况的原因。
“每月计费的总备份存储大小是所有 DynamoDB 表备份的总和。DynamoDB 会在整月持续监控按需备份的大小,以确定您的备份费用。”
这就解释了为什么账单上总是显示每月第 1 天的使用量有一个较大峰值。对于任何进入新月份的现有备份,系统会在第 1 天收取整月的费用。换句话说,如果您有 300 个 DynamoDB 备份进入新月份,系统会在当月第 1 天对所有 300 个备份都收取整月的使用费。
相比之下,当月进行的任何新备份都将在备份当天显示费用峰值,因为这笔费用是按当月剩余天数收取。
为什么本月第 1 天的使用量似乎比前几个月的使用量高得多,如果我删除备份会怎么样?
为了回答这个由两部分组成的重要问题,我们使用以下信息来设置一个示例场景:
-
月长:30 天
-
DynamoDB 备份频率:10 个/天,300 个/月
-
DynamoDB 备份保留策略:30 天
-
DynamoDB 每个备份成本:2 美元/天,60 美元/月
-
上个月第 1 天总计(
TimedBackupStorage-ByteHrs
,在本月第 1 天结账):9300 美元 -
上个月总计(
TimedBackupStorage-ByteHrs
):18600 美元 -
本月第 1 天总计(
TimedBackupStorage-ByteHrs
,在第 1 天结账):18000 美元 -
DynamoDB 使用量逐月变化:无
根据上述信息,我们可以看到上个月创建了 300 个备份,其策略是将备份保留 30 天。在新月份第 1 天,所有这些备份仍会保留,因为它们的保留期尚未到期。但是,随着时间一天天的过去,最旧的备份集将开始丢弃,如下所示:
新月份 | 第 1 天 | 第 2 天 | 第 3 天 | 第 4 天 | 第 5 天 |
---|---|---|---|---|---|
上个月执行的备份总数 | 300 | 290 | 280 | 270 | 260 |
-
在第 1 天,可以看到有 300 个备份,每个备份每月 60 美元,总共对
TimedBackupStorage-ByteHrs
收取 18000 美元。相比之下,上个月整月总共收取 18600 美元。 -
在第 2 天,其中的 10 个备份将过期并丢弃。发生这种情况时,对这些备份收取的费用将调整为根据实际使用量,而不是假设使用量。因此,这 10 个备份的费用(之前在第 1 天收取的 600 美元,10 个备份 x 30 天)将调整为降至 20 美元(10 个备份 x 1 天)。
-
之后的一天,下一个包含 10 个备份的数据块将过期并丢弃,其使用量从 30 天缩短为 2 天,费用降至 40 美元(10 个备份 x 2 天)。
随着时间一天天的过去,我们将看到这个大于前一个月的峰值开始缩小。如果我们扩展到涵盖整个月,将观察到以下情况:
300 个备份,每数据块 10 个 | 第 1 天 | 第 10 天 | 第 20 天 | 第 30 天 |
---|---|---|---|---|
数据块 1 | 600 美元 | 20 美元 | 20 美元 | 20 美元 |
数据块 2 | 600 美元 | 40 美元 | 40 美元 | 40 美元 |
数据块 3 | 600 美元 | 60 美元 | 60 美元 | 60 美元 |
数据块 4 | 600 美元 | 80 美元 | 80 美元 | 80 美元 |
数据块 5 | 600 美元 | 100 美元 | 100 美元 | 100 美元 |
数据块 6 | 600 美元 | 120 美元 | 120 美元 | 120 美元 |
数据块 7 | 600 美元 | 140 美元 | 140 美元 | 140 美元 |
数据块 8 | 600 美元 | 160 美元 | 160 美元 | 160 美元 |
数据块 9 | 600 美元 | 180 美元 | 180 美元 | 180 美元 |
数据块 10 | 600 美元 | 600 美元 | 200 美元 | 200 美元 |
数据块 11 | 600 美元 | 600 美元 | 220 美元 | 220 美元 |
数据块 12 | 600 美元 | 600 美元 | 240 美元 | 240 美元 |
数据块 13 | 600 美元 | 600 美元 | 260 美元 | 260 美元 |
数据块 14 | 600 美元 | 600 美元 | 280 美元 | 280 美元 |
数据块 15 | 600 美元 | 600 美元 | 300 美元 | 300 美元 |
数据块 16 | 600 美元 | 600 美元 | 320 美元 | 320 美元 |
数据块 17 | 600 美元 | 600 美元 | 340 美元 | 340 美元 |
数据块 18 | 600 美元 | 600 美元 | 360 美元 | 360 美元 |
数据块 19 | 600 美元 | 600 美元 | 380 美元 | 380 美元 |
数据块 20 | 600 美元 | 600 美元 | 600 美元 | 400 美元 |
数据块 21 | 600 美元 | 600 美元 | 600 美元 | 420 美元 |
数据块 22 | 600 美元 | 600 美元 | 600 美元 | 440 美元 |
数据块 23 | 600 美元 | 600 美元 | 600 美元 | 460 美元 |
数据块 24 | 600 美元 | 600 美元 | 600 美元 | 480 美元 |
数据块 25 | 600 美元 | 600 美元 | 600 美元 | 500 美元 |
数据块 26 | 600 美元 | 600 美元 | 600 美元 | 520 美元 |
数据块 27 | 600 美元 | 600 美元 | 600 美元 | 540 美元 |
数据块 28 | 600 美元 | 600 美元 | 600 美元 | 560 美元 |
数据块 29 | 600 美元 | 600 美元 | 600 美元 | 580 美元 |
数据块 30 | 600 美元 | 600 美元 | 600 美元 | 600 美元 |
当月第 1 天总计(美元) | 18000 美元 | 13500 美元 | 10400 美元 | 9300 美元 |
每天都有一个新数据块丢弃,系统会根据该数据块存在的天数调整其使用量,而不是按整月计算使用量。因此,到月底,第 1 天观察到的费用将从最初的 18000 美元降至预期的 9300 美元。将这个数字与当月新创建的备份(计费表与上表类似,但顺序相反)费用相结合,可得出月度支出与上个月的 18600 美元一致。