

# Amazon DynamoDB のバックアップの請求について
<a name="backup-restore-billing"></a>

このガイドでは、DynamoDB のバックアップの請求の仕組みについて説明します。全体のコストに影響を与えるさまざまな要素を詳述し、明確な説明と実用的な例を提供します。

DynamoDB では、災害イベントから DynamoDB データを保護するためのオンデマンドバックアップとポイントインタイムリカバリ (PITR) バックアップ、さらに長期保存のためのデータアーカイブを利用できます。

## 仕組み
<a name="backup-restore-billing-how-it-works"></a>

DynamoDB のオンデマンドバックアップは毎月請求されます。月の特定の日にバックアップを取得した場合、そのバックアップに対する料金はその月の残りの日数に基づいて計算され、1 回分の料金として課金されます（例: 27 日にバックアップを作成した場合、その月の残り数日分の料金が計算され、27 日の 1 回分の料金として適用されます）。

以前に取得したバックアップを以降の月も保持する場合、そのバックアップに対する月額料金が 1 日に適用されます。月末より前にバックアップが削除された場合、料金は実際の使用量に基づいて調整されます。

例えば、7 月 27 日にバックアップを作成し、8 月中維持した場合、そのバックアップには以下の料金が発生します。
+ 7 月の残りの日に対する 7 月 27 日の料金
+ 8 月全体に対する 8 月 1 日の料金 
+ バックアップを維持する翌月以降の 1 日の料金

DynamoDB テーブルのバックアップが維持されている場合、`DynamoDB (Region)-TimedBackupStorage-ByteHrs` 使用量の費用のメトリクスが、毎月 1 日に異常に高いように見えることがあります。さらに、新しい月の開始時にこのメトリクスをチェックし、以前の請求サイクルと比較すると、使用量の大幅な急増が見られる場合があります。これは仕様です。毎月 1 日に、既存の DynamoDB バックアップには、月全体の使用料が適用されます。その月に削除された DynamoDB バックアップは、実際の使用量を反映するために、使用コストが日割り計算されます。その結果、1 日に適用された料金が 1 か月を通じて減少することがあります。これは、保持ポリシーによる有効期限の適用や、引き継がれたバックアップに対する手動削除が行われるためです。これは、以下のシナリオで詳しく説明します。

同様に、新しいバックアップを作成すると、月内により小さいスパイクが発生し、作成日から月の残りの分までの使用料が作成日に適用されます。

## DynamoDB バックアップの請求例
<a name="backup-restore-billing-example"></a>

以下は、月の初めに Cost Explorer に表示される可能性のある例です。

![Cost Explorer の DynamoDB 請求チャートを示す画像。](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/ddb-backups-billing-ce.png)


2 月 1 日が、前月に比べて使用量が急増しています。これが発生する理由を詳しく見てみましょう。

[DynamoDB 料金ページ](https://aws.amazon.com/dynamodb/pricing/on-demand/)から：

*「毎月請求されるバックアップストレージの合計サイズは、DynamoDB テーブルのすべてのバックアップの合計です。DynamoDB は、オンデマンドバックアップのサイズを 1 か月間継続的にモニタリングして、バックアップ料金を決定します」*

これが、請求書が毎月 1 日に一貫して使用量の急増を示している理由です。新しい月に入る既存のバックアップには、1 日に 1 か月分の料金が適用されます。つまり、DynamoDB バックアップが 300 個ある状態で新しい月に入ると、300 個すべてのバックアップについて、その月の 1 日に 1 か月分の料金が適用されます。

当月中に作成した新しいバックアップには、作成日から月末までの使用料が発生します。

**バックアップを月半ばに削除した場合はどうなりますか?**

考慮すべきシナリオをいくつか示します。

1. 前月からのバックアップを当月の 15 日に削除した場合、バックアップの使用料は、依然として初日に適用されますが、使用量は前月適用の 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 日には、これらのバックアップのリカバリ期間はまだ終了していないため、すべてそのまま残ります。しかし、以下に示すように、日が経つにつれて最も古いバックアップセットが次第に削除されていくことになります。


**DynamoDB テーブルバックアップの削除**  

| 新しい月 | 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 か月全体で見ると、次のような結果になります。


**DynamoDB バックアップ料金 (月の初日) の進行状況**  

| 10 個のブロックで 300 個のバックアップ | 1 日 | 10 日 | 20 日 | 30 日 | 
| --- | --- | --- | --- | --- | 
| ブロック 1 | 600 USD | 20 USD | 20 USD | 20 USD | 
| ブロック 2 | 600 USD | 40 USD | 40 USD | 40 USD | 
| ブロック 3 | 600 USD | 60 USD | 60 USD | 60 USD | 
| ブロック 4 | 600 USD | 80 USD | 80 USD | 80 USD | 
| ブロック 5 | 600 USD | 100 USD | 100 USD | 100 USD | 
| ブロック 6 | 600 USD | 120 USD | 120 USD | 120 USD | 
| ブロック 7 | 600 USD | 140 USD | 140 USD | 140 USD | 
| ブロック 8 | 600 USD | 160 USD | 160 USD | 160 USD | 
| ブロック 9 | 600 USD | 180 USD | 180 USD | 180 USD | 
| ブロック 10 | 600 USD | 600 USD | 200 USD | 200 USD | 
| ブロック 11 | 600 USD | 600 USD | 220 USD | 220 USD | 
| ブロック 12 | 600 USD | 600 USD | 240 USD | 240 USD | 
| ブロック 13 | 600 USD | 600 USD | 260 USD | 260 USD | 
| ブロック 14 | 600 USD | 600 USD | 280 USD | 280 USD | 
| ブロック 15 | 600 USD | 600 USD | 300 USD | 300 USD | 
| ブロック 16 | 600 USD | 600 USD | 320 USD | 320 USD | 
| ブロック 17 | 600 USD | 600 USD | 340 USD | 340 USD | 
| ブロック 18 | 600 USD | 600 USD | 360 USD | 360 USD | 
| ブロック 19 | 600 USD | 600 USD | 380 USD | 380 USD | 
| ブロック 20 | 600 USD | 600 USD | 600 USD | 400 USD | 
| ブロック 21 | 600 USD | 600 USD | 600 USD | 420 USD | 
| ブロック 22 | 600 USD | 600 USD | 600 USD | 440 USD | 
| ブロック 23 | 600 USD | 600 USD | 600 USD | 460 USD | 
| ブロック 24 | 600 USD | 600 USD | 600 USD | 480 USD | 
| ブロック 25 | 600 USD | 600 USD | 600 USD | 500 USD | 
| ブロック 26 | 600 USD | 600 USD | 600 USD | 520 USD | 
| ブロック 27 | 600 USD | 600 USD | 600 USD | 540 USD | 
| ブロック 28 | 600 USD | 600 USD | 600 USD | 560 USD | 
| ブロック 29 | 600 USD | 600 USD | 600 USD | 580 USD | 
| ブロック 30 | 600 USD | 600 USD | 600 USD | 600 USD | 
| 月の初日の合計 (ドル) | 18,000 USD | 13,500 USD | 10,400 USD | 9,300 USD | 

毎日新しいブロックが削除されると、その使用量は 1 か月分の全期間ではなく、実際に存在していた日数に基づいて調整されます。その結果、1日に確認された料金は、月末までに当初の18,000 ドルから想定されていた 9,300 ドルにまで減少します。この金額に、月内に新しく作成されたバックアップ (上記と似た請求テーブルを持つが、パターンは逆) が加算されることで、前月の18,600 ドルに近い月額費用となります。