このガイドでは、DynamoDB のバックアップの請求の仕組みについて説明します。全体のコストに影響を与えるさまざまな要素を詳述し、明確な説明と実用的な例を提供します。
DynamoDB では、災害イベントから DynamoDB データを保護するためのオンデマンドバックアップとポイントインタイムリカバリ (PITR) バックアップ、さらに長期保存のためのデータアーカイブを利用できます。
仕組み
DynamoDB のオンデマンドバックアップは毎月請求されます。月の特定の日にバックアップを取得した場合、そのバックアップに対する料金はその月の残りの日数に基づいて計算され、1 回分の料金として課金されます(例: 27 日にバックアップを作成した場合、その月の残り数日分の料金が計算され、27 日の 1 回分の料金として適用されます)。
以前に取得したバックアップを以降の月も保持する場合、そのバックアップに対する月額料金が 1 日に適用されます。月末より前にバックアップが削除された場合、料金は実際の使用量に基づいて調整されます。
例えば、7 月 27 日にバックアップを作成し、8 月中維持した場合、そのバックアップには以下の料金が発生します。
-
7 月の残りの日に対する 7 月 27 日の料金
-
8 月全体に対する 8 月 1 日の料金
-
バックアップを維持する翌月以降の 1 日の料金
-
翌月の 15 日にバックアップが削除された場合、そのバックアップの料金は使用された 15 日分のみに調整され、やはり 1 日に適用されます。
DynamoDB テーブルのバックアップが維持されている場合、DynamoDB (Region)-TimedBackupStorage-ByteHrs
使用量の費用のメトリクスが、毎月 1 日に異常に高いように見えることがあります。さらに、新しい月の開始時にこのメトリクスをチェックし、以前の請求サイクルと比較すると、使用量の大幅な急増が見られる場合があります。これは仕様です。毎月 1 日に、既存の DynamoDB バックアップには、月全体の使用料が適用されます。その月に削除された DynamoDB バックアップは、実際の使用量を反映するために、使用コストが日割り計算されます。その結果、1 日に適用された料金が 1 か月を通じて減少することがあります。これは、保持ポリシーによる有効期限の適用や、引き継がれたバックアップに対する手動削除が行われるためです。これは、以下のシナリオで詳しく説明します。
DynamoDB バックアップの請求例
以下は、月の初めに Cost Explorer に表示される可能性のある例です。

2 月 1 日が、前月に比べて使用量が急増しています。これが発生する理由を詳しく見てみましょう。
「毎月請求されるバックアップストレージの合計サイズは、DynamoDB テーブルのすべてのバックアップの合計です。DynamoDB は、オンデマンドバックアップのサイズを 1 か月間継続的にモニタリングして、バックアップ料金を決定します」
これが、請求書が毎月 1 日に一貫して使用量の急増を示している理由です。新しい月に入る既存のバックアップには、1 日に 1 か月分の料金が適用されます。つまり、DynamoDB バックアップが 300 個ある状態で新しい月に入ると、300 個すべてのバックアップについて、その月の 1 日に 1 か月分の料金が適用されます。
一方で、月の途中で新たに取得されたバックアップについては、そのバックアップが取得された日に料金が急増して表示されます。これは、その月の残り期間に対する料金が適用されるためです。
なぜ当月の使用量が月の初日に前月よりも大幅に高く見えるのですか?また、バックアップを削除した場合はどうなりますか?
この重要な 2 つの質問に答えるために、次の情報を使用してシナリオ例をセットアップします。
-
月の長さ: 30 日
-
DynamoDB バックアップ頻度: 10/日、300/月
-
DynamoDB バックアップ保持ポリシー: 30 日間
-
DynamoDB バックアップあたりのコスト: 1 日 2 ドル、月 60 ドル
-
前月 1 日の合計 (
TimedBackupStorage-ByteHrs
、当月 1 日にチェック): 9,300 ドル -
前月の合計 (
TimedBackupStorage-ByteHrs
): 18,600 ドル -
現在の月初合計 (
TimedBackupStorage-ByteHrs
、1 日に確認): 18,000 ドル -
月単位の DynamoDB 使用量の変更: なし
上記の情報を見ると、前月に 300 件のバックアップが作成され、30 日間保持するポリシーも作成されたことがわかります。新しい月の 1 日には、これらのバックアップのリカバリ期間はまだ終了していないため、すべてそのまま残ります。しかし、以下に示すように、日が経つにつれて最も古いバックアップセットが次第に削除されていくことになります。
新しい月 | 1 日目 | 2 日目 | 3 日目 | 4 日目 | 5 日目 |
---|---|---|---|---|---|
前月のバックアップの持ち越し合計 | 300 | 290 | 280 | 270 | 260 |
-
1 日には、1 回のバックアップあたり月額 60 USD で 300 件のバックアップが表示され、合計 18,000 ドルの
TimedBackupStorage-ByteHrs
が適用されます。これは、前月の合計が 18,600 ドルであったのとは対照的です。 -
2 日に、これらのバックアップのうち 10 個が期限切れになり、削除されます。この場合、これらのバックアップに適用される料金は、想定使用量ではなく実際の使用量に調整されます。その結果、1日には 600 ドル (10 個のバックアップ × 30日) として適用されていた料金が、20 ドル (10 個のバックアップ × 1 日) に調整されます。
-
翌日には次の 10 個のバックアップが期限切れとなり削除され、その使用期間が 30 日から 2 日に短縮されることで、料金は 40 ドル (10個のバックアップ × 2日) に減額されます
日が経つごとに、前月よりも大きかった料金の急増が次第に減少していくのがわかります。これを1 か月全体で見ると、次のような結果になります。
10 個のブロックで 300 個のバックアップ | 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 USD | 100 USD | 100 USD |
ブロック 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 USD |
ブロック 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 |
月の初日の合計 (ドル) | $18,000 | $13,500 | $10,400 | $9,300 |
毎日新しいブロックが削除されると、その使用量は 1 か月分の全期間ではなく、実際に存在していた日数に基づいて調整されます。その結果、1日に確認された料金は、月末までに当初の18,000 ドルから想定されていた 9,300 ドルにまで減少します。この金額に、月内に新しく作成されたバックアップ (上記と似た請求テーブルを持つが、パターンは逆) が加算されることで、前月の18,600 ドルに近い月額費用となります。