オンデマンドキャパシティーモードを利用している場合、料金は、アプリケーションがテーブルにおいて実行したデータの読み込み/書き込みリクエストに対して発生します。ワークロードの拡大や縮小は DynamoDB によってその場で対応されるため、お客様はアプリケーションの読み込み/書き込みスループットの予測を指定する必要がありません。このページでは、DynamoDB の主な機能とオプションの機能について、料金体系を詳しく説明します。AWS 中国リージョンでの料金については、AWS 中国リージョンの料金ページを参照してください。
重要な用語
読み込みリクエスト単位: テーブルからデータを読み込むための API コールは、読み込みリクエスト単位で課金されます。DynamoDB の読み込みリクエストは、強力な整合性のある読み込み、結果整合性のある読み込み、トランザクション読み込みのいずれかとなります。強力な整合性のある読み込みリクエスト (4 KB まで) には、読み込みリクエストが 1 単位必要です。4 KB を超える項目については、読み込みリクエスト単位が追加で必要になります。サイズが 4 KB 以下の項目であれば、結果整合性のある読み込みリクエストには読み込みリクエストが 0.5 単位必要で、トランザクション読み込みリクエストには読み込みリクエストが 2 単位必要です。例えば、8 KB の項目の強力な整合性のある読み込みリクエストには読み込みリクエストが 2 単位、8 KB の項目の結果整合性のある読み込みには読み込みリクエストが 1 単位、8 KB の項目のトランザクション読み込みには読み込みリクエストが 4 単位必要です。詳細については、読み取り整合性を参照してください。
書き込みリクエスト単位: テーブルにデータを書き込むための API コールは、書き込みリクエスト単位で課金されます。標準の書き込みリクエスト 1 単位で、1 KB までの項目を書き込むことができます。1 KB を超える項目については、書き込みリクエスト単位が追加で必要になります。トランザクション書き込みには、書き込みリクエストが 2 単位必要です。例えば、1 KB の項目の書き込みリクエストには書き込みリクエストが 1 単位、3 KB の項目の書き込みリクエストには書き込みリクエストが 3 単位、3 KB の項目のトランザクション書き込みには書き込みリクエストが 6 単位必要です。
レプリケート書き込みリクエスト単位: DynamoDB グローバルテーブルを使用する場合、選択した複数の AWS リージョンに対してデータが自動的に書き込まれます。ローカルリージョンで書き込みが発生する度に、レプリケート先のリージョンでも書き込みが発生します。
ストリーム読み込みリクエスト単位: DynamoDB ストリームに対する GetRecords API コール 1 回につき、ストリーム読み込みリクエストが 1 単位必要です。ストリーム読み込みリクエスト 1 単位で、1 MB までのデータを読み込むことができます。
トランザクション読み込み/書き込みリクエスト: DynamoDB では、トランザクション読み込み/書き込みは標準的な読み込み/書き込みとは異なります。トランザクション読み込み/書き込みでは、1 つのトランザクションセットに含まれるすべての操作を 1 つのセットとし、成否判定を行うためです。
変更データキャプチャ単位: DynamoDB は、DynamoDB テーブルの項目レベルの変更をキャプチャし、Amazon Kinesis Data Streams や AWS Glue などの他の AWS サービスに複製することができます。DynamoDB はこれらの変更を委任された操作としてキャプチャします。つまり、DynamoDB がユーザーに代わってレプリケーションを実行するため、スループットキャパシティを管理する必要がありません。DynamoDB は、テーブルへの書き込みごとに 1 つの変更データキャプチャ単位に対して請求を行います (最大 1 KB)。1 KB を超える項目については、変更データキャプチャ単位が追加で必要になります。
DynamoDB テーブルクラス: DynamoDB は、コストの最適化に役立つように設計された 2 つのテーブルクラスを提供します。DynamoDB Standard テーブルクラスはデフォルトであり、大多数のワークロードに推奨されます。DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA) テーブルクラスは、頻繁にアクセスされないデータを保存するテーブルであって、ストレージが主なコストとなっているテーブル向けに最適化されています。各テーブルクラスは、データストレージと読み取りおよび書き込みリクエストについて異なる料金を採用しています。テーブルのストレージ要件とデータアクセスパターンに基づいて、最も費用対効果の高いテーブルクラスを選択できます。 DynamoDB テーブルクラスの詳細については、DynamoDB デベロッパーガイドを参照してください。
DynamoDB の機能と請求の概要
機能 |
内容 |
請求単位 |
|
主な機能 |
|||
|
書き込みリクエスト |
テーブルにデータを書き込む |
書き込みリクエスト単位 |
|
読み込みリクエスト |
テーブルからデータを読み込む |
読み込みリクエスト単位 |
オプションの機能 |
|||
|
継続的バックアップ |
過去 35 日間のバックアップを継続的に取得する |
GB 月単位 |
|
オンデマンドバックアップ |
過去のある時点におけるスナップショットバックアップを取得する |
GB 月単位 |
|
バックアップからの復元 |
特定のスナップショットまたは時間のテーブルを復元する |
GB |
|
グローバルテーブル |
データを複製して、マルチリージョンかつマルチアクティブなテーブルを作成する |
レプリケート書き込みリクエスト単位 |
Amazon Kinesis Data Streams の変更データキャプチャ | テーブル項目レベルのデータ変更をキャプチャし、Kinesis Data Streams に複製する | 変更データキャプチャ単位 | |
AWS Glue の変更データキャプチャ | テーブル項目レベルのデータ変更をキャプチャし、AWS Glue に複製する | 変更データキャプチャ単位 | |
Amazon S3 へのデータエクスポート | DynamoDB テーブルのバックアップを特定の時点から Amazon S3 にエクスポートする | GB | |
Amazon S3 からのデータインポート | Amazon S3 から新しい DynamoDB テーブルにデータを移行してロードする | GB | |
|
DynamoDB Streams |
テーブルの項目レベルの変更に関する時系列シーケンスを提供する |
ストリーム読み込みリクエスト単位 |
|
データ転送 (アウト) |
他の AWS リージョンにデータを転送する |
GB |
DynamoDB 統合の請求概要
統合 |
機能 |
請求単位 |
|
|
DynamoDB 互換キャッシングサービスである DynamoDB Accelerator (DAX) との統合 |
料金パフォーマンスを向上させ、レイテンシーをミリ秒からマイクロ秒に短縮 |
ノード時間 |
Amazon OpenSearch Service とのゼロ ETL 統合 | データパイプラインを構築して管理することなく、全文検索、ベクトル検索、セマンティック検索、地理空間検索などを有効化 | エクスポート量 (GB) | |
Amazon Redshift とのゼロ ETL 統合 | データパイプラインを構築して管理することなく、運用データの分析を有効化 | エクスポート量 (GB) |
DynamoDB の料金
-
• 読み込み/書き込みリクエスト
DynamoDB テーブルにオンデマンドキャパシティーモードを選択している場合、アプリケーションが実行する読み込みと書き込みに対してのみ課金されます。テーブルのスループット容量を管理することなく、必要に応じて API コールを実行できます。DynamoDB では、ワークロードで一貫性と低レイテンシーを実現できるよう、ハードウェアリソースが自動的に管理されます。書き込み (1 KB まで) については、1 回につき書き込みリクエストが 1 単位発生し、トランザクション書き込みでは 1 回につき書き込みリクエストが 2 単位発生します。読み込みについては、強力な整合性のある読み込み (4 KB まで) 1 回につき 1 単位、トランザクション読み込み 1 回につき 2 単位、結果整合性のある読み込み 1 回につき 0.5 単位の読み込みリクエストが発生します。 読み取り/書き込みリクエストの料金は、テーブルクラスによって異なります。
-
• データストレージ
ストレージのプロビジョンは不要です。DynamoDB では、テーブルのサイズが継続的にモニタリングされ、ストレージ料金が決定されます。DynamoDB は、データの生のバイトサイズに加えて、有効にした機能に応じた項目ごとのストレージオーバーヘッドを追加することにより、請求対象となるデータのサイズを測定します。詳細については、DynamoDB デベロッパーガイドをご覧ください。データストレージの料金は、テーブルクラスによって異なります。
-
• バックアップと復元
DynamoDB では、テーブルデータのバックアップに 2 つの方法を利用できます。継続的バックアップでは、ポイントインタイムリカバリ (PITR) により、テーブルの過去 35 日間のバックアップを継続的に取得します。過去 5 週間以内であれば、秒単位で指定した状態にテーブルを復元できます。オンデマンドバックアップでは、長期間保存するアーカイブとしてテーブルのスナップショットを作成します。この方法は、企業や政府の規制要件を満たすうえで役立ちます。
継続的バックアップ (PITR)
DynamoDB の PITR に対して発生する料金は、PITR が有効になっている各 DynamoDB テーブル (テーブルデータおよびローカルセカンダリインデックス) のサイズに基づいて決まります。DynamoDB では、PITR が有効なテーブルのサイズが毎月継続的にモニタリングされ、バックアップ料金が決定されます。課金は、各テーブルの PITR が無効になるまで続きます。
オンデマンドバックアップ
DynamoDB のオンデマンドバックアップに対して発生する料金は、テーブル (テーブルデータおよびローカルセカンダリインデックス) のストレージサイズに基づいて決まります。各バックアップのサイズは、バックアップのリクエスト時に毎回判定されます。毎月の課金対象となるバックアップストレージの合計サイズは、DynamoDB テーブルのすべてのバックアップを合計したサイズです。DynamoDB では、オンデマンドバックアップのサイズが毎月継続的にモニタリングされ、バックアップ料金が決定されます。
DynamoDB または AWS Backup を使用して、オンデマンドバックアップを作成および管理できます。詳細については、オンデマンドのバックアップと復元を使用する をご覧ください。AWS Backup を利用することで、AWS のサービス全体でデータ保護を一元化および自動化できます。AWS Backup は、クロスアカウントおよびクロスリージョンのオンデマンドバックアップのコピー、低コストのストレージ階層、バックアップのタグ付け、およびソースデータから独立したバックアップの暗号化などの高度な機能も提供します。これらは、ビジネス継続性の要件を満たし、バックアップコストを最適化するのに役立ちます。リージョン間のデータ転送には追加料金が適用されます。これらの料金の詳細については、AWS Backup の料金を参照してください。
* コールドバックアップストレージは、AWS Backup によってのみ管理されるオンデマンドバックアップ向けにサポートされています。AWS マネジメントコンソールから AWS Backup の使用をオプトインできます。
コールドストレージに移行されたバックアップの保存期間は最低で 90 日間です。90 日間が経過する前にバックアップが削除された場合、その 90 日間の残りの日数についてのストレージ料金に等しい按分金額が請求されます。テーブルの復元
オンデマンドバックアップや PITR からテーブルを復元する際に発生する料金は、各リクエストで復元されるデータ (テーブルデータ、ローカルセカンダリインデックス、グローバルセカンダリインデックス) の合計サイズに基づいて決まります。
* コールドバックアップストレージからの復元は、AWS Backup によってのみ管理されるオンデマンドバックアップ向けにサポートされています。AWS マネジメントコンソールから AWS Backup の使用をオプトインできます。コールドバックアップストレージは、ポイントインタイムリカバリ (PITR) を使用した連続バックアップには適用できません。
-
• グローバルテーブル
DynamoDB グローバルテーブルにオンデマンドキャパシティーモードを選択している場合、各レプリカテーブルでアプリケーションが使用するリソースに対してのみ料金が発生します。グローバルテーブルに対する書き込みリクエストは、標準書き込みリクエスト単位ではなく、レプリケート書き込みリクエスト単位で計算されます。レプリケーションで消費される書き込みリクエスト単位の数は、使用しているグローバルテーブルのバージョンに依存します。詳細については、グローバルテーブルを管理するためのベストプラクティスと要件を参照してください。 読み取りリクエストとデータストレージは、グローバルテーブルではないテーブルで一貫して請求されます。料金はテーブルクラスによって異なります。新しいリージョンにグローバルテーブルを拡張するためテーブルの複製を追加する場合、追加したリージョンでのテーブル復元に対し、復元されたデータの 1 GB 単位で DynamoDB により課金されます。クロスリージョンレプリケーションおよびデータを含むテーブルへのレプリカの追加にも、データ転送 (アウト) の料金が発生します。詳細については、この料金ページの「データ転送」セクションを参照してください。
-
• Amazon Kinesis Data Streams の変更データキャプチャ
DynamoDB は、変更データキャプチャ単位での Amazon Kinesis Data Streams の変更データキャプチャに対して請求を行います。DynamoDB は、書き込みごとに 1 つの変更データキャプチャ単位に対して請求を行います (最大 1 KB)。お客様にはテーブルのスループット容量を管理することなく、アプリケーションが実行する書き込みに対してのみ料金をお支払いいただきます。
DynamoDB の変更を Kinesis Data Streams に複製する場合でも、Kinesis Data Streams の料金が適用されます。詳細については、Amazon Kinesis Data Streams の料金をご覧ください。 -
• ウォームスループット
デフォルトでは、すべての Amazon DynamoDB テーブルとインデックスにウォームスループット値が表示されます。これらの値は、プロビジョンドスループットやオンデマンドの消費量を増やした場合、追加料金なしで自動的に調整されます。ただし、これらの値を手動で増やす場合は、追加料金が適用されます。
読み取りと書き込みの新しいウォームスループット値を設定して、テーブルまたはインデックスを事前にウォームアップするようにリクエストすると、DynamoDB は、テーブルまたはインデックスがサポートできる現在のウォームスループットと新しい値との差に基づいて請求を行います。読み取りウォームスループットが 1 単位増加するごとに 1 つの読み取りキャパシティー単位 (RCU)、書き込みウォームスループットが 1 単位増加するごとに 1 つの書き込みキャパシティー単位 (WCU) のリージョンレートで 1 回限りの料金が発生します。これらの料金は、DynamoDB 標準テーブルクラスと標準低頻度アクセステーブルクラスの両方に適用されます。
グローバルテーブルレプリカを読み取り、書き込み、またはその両方で事前にウォームアップすると、すべてのレプリカが同じウォームスループット値に一致するように事前にウォームアップされます。グローバルテーブル設定の一部である各 AWS リージョンで課金されます。
例: 米国東部 (バージニア北部) リージョンに DynamoDB 標準テーブルがあり、現在のウォームスループットは 12,000 読み取り単位/秒、4,000 書き込み単位/秒であるとします。次のピークイベントでは、テーブルに 1 秒あたり 100,000 の読み取り単位が必要になると予想されるため、これを新しい読み取りウォームスループット値として設定します。追加の 88,000 読み取り単位 (100,000 と 12,000 の差) に対して、11.44 USD (RCU あたり 88,000 単位 × 0.00013 USD) のレートで 1 回限りの料金が発生します。この請求体系は、DynamoDB 標準テーブルクラスまたは標準低頻度アクセステーブルクラスのいずれにおいても、テーブルまたはインデックスを事前にウォームアップして読み取りや書き込みを行うかどうかに関係なく適用されます。このテーブルが、米国東部 (バージニア北部) などの 3 つのリージョンのレプリカを含むグローバルテーブル設定の一部である場合、3 つのレプリカはすべて、1 秒あたり 100,000 読み取り単位というウォームスループットをサポートするように事前にウォームアップされます。米国東部 (バージニア北部) での請求に加えて、グローバルテーブル設定に含まれる各地域のそれぞれの料金で請求が行われます。 -
• AWS Glue の変更データキャプチャ
DynamoDB は、変更データキャプチャ単位での AWS Glue の変更データキャプチャに対し、請求を行います。DynamoDB は、書き込みごとに 1 つの変更データキャプチャ単位に対して請求を行います (最大 1 KB)。テーブルのスループットキャパシティを管理することなく、アプリケーションが実行する書き込みに対してのみ料金をお支払いいただきます。
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 インスタンスの実行に長期間の契約は必要ありません。料金はノード時間単位で発生し、選択したインスタンスタイプによって変わります。1 時間未満のノード時間は、1 時間分として課金されます。料金は、DAX クラスター内の個別のノードすべてに対して適用されます。例えば、3 つのノードで構成される DAX クラスターを使用している場合、各ノード (合計 3 つ) に対して時間単位で課金されます。
同じアベイラビリティーゾーン内での Amazon Elastic Compute Cloud (Amazon EC2) と DAX の間のデータ転送は無料です。Amazon EC2 インスタンスと、同じ AWS リージョンの異なるアベイラビリティーゾーンにある DAX ノードの間でデータを転送した場合は、標準の Amazon EC2 データ転送料金が適用されます。ただし、料金が発生するのは、Amazon EC2 インスタンスとの間のデータ転送のみです。DAX ノード自体で送受信されるトラフィックに対して DAX データ転送料金が発生することはありません。
DAX T3 インスタンスは無制限モードで実行されるので、連続する 24 時間での平均 CPU 使用率がインスタンスのベースラインを超えた場合に追加料金が発生します。CPU クレジットは vCPU 時間あたり 0.096 USD で課金されます。すべてのサイズの T3 インスタンスの CPU クレジット料金は、すべての AWS リージョンで同じ金額が適用されます。
-
• DynamoDB ストリーム
DynamoDB では、DynamoDB ストリームからのデータの読み込みに対し、読み込みリクエスト単位での料金が発生します。GetRecords API コールが実行される度に、読み込みリクエスト 1 単位が課金され、1 MB までのデータが DynamoDB ストリームから読み込まれます。ストリーム読み込みリクエスト単位は、DynamoDB テーブルの読み込みリクエストとは異なる特別な単位です。DynamoDB トリガーの一環として AWS Lambda によって行われる GetRecords API コールに、料金はかかりません。DynamoDB グローバルテーブルによって行われる GetRecords API コールにも、料金はかかりません。
-
• データ転送
データ転送 (受信) は DynamoDB へのデータ転送、データ転送 (送信) は DynamoDB からのデータ転送のことです。DynamoDB のインバウンドのデータ転送には課金されません。また、DynamoDB と同じ AWS リージョン内の他の AWS のサービスとの間のデータ転送にも課金されません (0.00 USD/GB)。AWS リージョン間、例えば米国東部 (バージニア北部) リージョンの DynamoDB と欧州 [アイルランド] リージョンの Amazon EC2 の間など) で転送されるデータは、転送元と転送先の両方で課金されます。 AWS 無料利用枠の一環として、AWS のお客様は、すべての AWS サービスとリージョン (中国と GovCloud を除く) を集計して、1 か月あたり 100 GB のインターネットへのデータ転送を無料で利用できます。詳細については、AWS 無料利用枠を参照してください。500 TB/月を超えるデータを転送する場合は、当社までお問い合わせください。
DynamoDB の無料利用枠
AWS 無料利用枠は、お客様が AWS のサービスを無料で実際に体験できるように設定されています。AWS 無料利用枠の一部として、DynamoDB では以下の特典がご利用いただけます。各特典は、リージョンごと、支払者アカウントごとに毎月計算されます。
- DynamoDB Standard テーブルクラスを使用するテーブル用の 25 GB のデータストレージ
- DynamoDB Streams からの 250 万のストリーム読み込みリクエスト
- すべての AWS サービスとリージョン (中国と GovCloud を除く) にわたって集計された 1 GB のデータ転送 (最初の 12 か月で 15 GB)
DynamoDB の料金の例
-
• 基本的な料金例
この例では、オンデマンドキャパシティーモードを使用した場合の DynamoDB の料金がどのように計算されるかを説明しています。
米国東部 (バージニア北部) リージョンで、新しい DynamoDB Standard テーブルを作成したとします。このテーブルは新しいアプリケーションで使用するため、トラフィックパターンがどのようになるかはわかりません。説明を簡単にするために、ユーザーがアプリケーションとやり取りする度に、1 KB の書き込みが 1 回発生し、1 KB の強力な整合性のある読み込みが 1 回実行されるとします。
最初の 10 日間、アプリケーションへのトラフィックは少なく、1 日にテーブルでの読み込みと書き込みがそれぞれ 1 万回実行されました。しかし、11 日目にアプリケーションがソーシャルメディアで注目を集めたため、その日の読み込みと書き込みはそれぞれ 250 万回となり、アプリケーションのトラフィックが跳ね上がりました。DynamoDB では、ユーザーにシームレスな体験を提供できるよう、リソースがスケールされます。その後、アプリケーションのトラフィックパターンは落ち着き、月末まで 1 日平均の読み込みと書き込みはそれぞれ 5 万回となりました。以下の表は、その月の総使用量をまとめたものです。
期間 (その月の日付)
書き込み総数
読み込み総数
1~10
10 万回の書き込み (1 万回の書き込み × 10 日間)
10 万回の読み取り (1 万回の読み取り × 10 日間)
11
250 万回の書き込み
250 万回の読み取り
12~30
95 万回の書き込み (5 万回の書き込み × 19 日間)
95 万回の読み取り (5 万回の読み取り × 19 日間)
月間合計
355 万回の書き込み
355 万回の読み取り
月額料金
4.44 USD (100 万回あたり 1.25 USD × 3.55)
0.89 USD (100 万回あたり 0.25 USD × 3.55)
データストレージ: DynamoDB の継続的モニタリングによれば、月初の時点でテーブルによるストレージの占有容量が 25 GB であり、月末の時点では 29 GB にまで拡大し、月平均が 27 GB であったとします。テーブルクラスが DynamoDB Standard に設定されているため、最初の 25 GB のストレージは AWS 無料利用枠の適用対象となります。残りの 2 GB のストレージについては 0.25 USD/GB が課金されるため、その月のテーブルストレージコストは 0.50 USD となります。
その月の請求額は合計で 5.83 USD となります。内訳は、読み込みと書き込みに 5.33 USD、データストレージに 0.50 USD です。
-
• 詳細な料金例
この例では、オンデマンドキャパシティーモードを使用した場合の DynamoDB の料金がどのように計算されるかを説明しています。
米国東部 (バージニア北部) リージョンで、新しい DynamoDB Standard テーブルを作成したとします。このテーブルは新しいアプリケーションで使用するため、トラフィックパターンがどのようになるかはわかりません。説明を簡単にするために、ユーザーがアプリケーションとやり取りする度に、1 KB の書き込みが 1 回発生し、1 KB の強力な整合性のある読み込みが 1 回実行されるとします。
最初の 7 日間、アプリケーションへのトラフィックは少なく、1 日にテーブルでの読み込みと書き込みがそれぞれ 1,000 回実行されました。しかし、8 日目にアプリケーションが業界の著名なインフルエンサーに注目されたため、その日の読み込みと書き込みはそれぞれ 1,000 万回となり、アプリケーションのトラフィックが予想外に跳ね上がりました。その後、アプリケーションのトラフィックパターンは落ち着き、その後 2 週間の 1 日平均の読み込みと書き込みはそれぞれ 15 万回となりました。それから、トラフィックは急速に減少し、その後 7 日間はトランザクションが落ち込み、1 日の書き込みと読み込みが 1 万回となりました。
最後に、ソーシャルメディアで予想外の注目を集めたため、アプリケーションのトラフィックが再度増加しました。その月の最終日に、アプリケーションによるテーブルでの書き込みと読み込みはそれぞれ 3,000 万回となりました。以下の表は、その月の総使用量をまとめたものです。
期間 (その月の日付)
書き込み総数
読み込み総数
1~7
7,000 回の書き込み (1,000 万回の書き込み × 7 日間)
7,000 回の読み取り (1,000 万回の読み取り × 7 日間)
8
1,000 万回の書き込み
1,000 万回の読み取り
9~22
210 万回の書き込み (15 万回の書き込み × 14 日間)
210 万回の読み取り (15 万回の読み取り × 14 日間)
23~29
7 万回の書き込み (1 万回の書き込み × 7 日間)
7 万回の読み取り (1 万回の読み取り × 7 日間)
30
3,000 万回の書き込み
3,000 万回の読み取り
月間合計
42,177,000 回の書き込み
42,177,000 回の読み取り
月額料金
52.72 USD (100 万回あたり 1.25 USD × 4 万 2.177)
10.54 USD (100 万回あたり 0.25 USD × 4 万 2.177)
データストレージ: テーブルサイズの継続的モニタリングによれば、月初の時点でテーブルによるストレージの占有容量が 25 GB であり、月末の時点では 29 GB にまで拡大し、月平均が 27 GB であったとします。テーブルクラスが DynamoDB Standard に設定されているため、最初の 25 GB のストレージは AWS 無料利用枠の適用対象となります。残りの 2 GB のストレージについては 0.25 USD/GB が課金されるため、その月のテーブルストレージコストは 0.50 USD となります。
バックアップと復元: 30 日ある月のオンデマンドバックアップストレージの総計が 60 GB であれば、バックアップにかかる月額コストは (0.10 USD × 60 GB) = 6.00 USD/月となります。ただし、月間サイクルで 15 GB のオンデマンドバックアップデータを 10 日間削除していた場合、請求額は (0.10 USD × 60 GB) – (0.10 USD × 15 GB × 20/30) = 5.00 USD/月となります。ここでは、オンデマンドバックアップの実行に加え、継続的バックアップを使用するとします。テーブルサイズの月平均は 27 GB であるため、月額コストは (0.20 USD × 27 GB) = 5.40 USD/月となります。月末にテーブルを復元する必要があれば、そのコストは (0.15 USD × 29 GB) = 4.35 USD となります。
Kinesis Data Streams 変更データキャプチャ: Kinesis Data Streams へのストリーミングを有効にして、Amazon Kinesis サービスを使用してデータ変更を処理するとします。DynamoDB では、Kinesis Data Streams にキャプチャする書き込み 1 KB ごとに、1 つの変更データキャプチャ単位が請求されます。この例の前半からのアプリケーション書き込みトラフィックが Kinesis Data Streams で一貫していると仮定すると、その月に 42,177,000 の変更データキャプチャ単位が発生します。月額費用は (0.10 USD x 42,177,000/1,000,000) = 4.22 USD になります。
Amazon S3 へのデータエクスポート: 分析のためにテーブルのバックアップを Amazon S3 にエクスポートするとします。指定された時点でのテーブルのサイズが 29 GB の場合、結果として生じるエクスポートコストは (0.10 USD x 29 GB) = 2.90 USD になります。
DynamoDB Accelerator (DAX) との統合: DAX は Amazon DynamoDB との互換性を備えたキャッシングサービスです。アプリケーションの応答時間を短縮する必要があると判断し、DynamoDB Accelerator (DAX) サービスを使用することにしました。利用できるハードウェアの仕様を確認し、t2.small インスタンスタイプの 3 つのノードのクラスターがニーズに適切だと判断しました。その後、26 日に DAX を有効にしました。DynamoDB による課金は 1 時間あたり 0.12 USD (0.04 × 3 ノード) であり、月末までの 5 日間で合計 14.40 USD (0.12 × 120 時間) となります。
グローバルテーブル: たとえば、米国西部 (オレゴン) のリージョンに、災害復旧用のレプリカテーブルを作成するとします。米国西部 (オレゴン) のリージョンに、サイズが 25 GB の複製を追加する場合、テーブルの複製には、3.75 USD (0.15 USD x 25 GB) が課金されることになります。この複製の追加では、下の「データ転送」セクションに定義されているように、25 GB のデータ転送が発生します。また、この例では、グローバルテーブルでのアプリケーションのトラフィックが最初から一定であったとします。「グローバルテーブルを管理するためのベストプラクティスと要件」に書かれているように、ここでは、8,435 万の複製された書き込みリクエストを消費します (42,177,000 書き込み x 2 リージョン)。これは、158.16 USD の料金を発生します (8,435 万の複製書き込みリクエスト単位 × 100 万あたり単価 1.875 USD)。また、米国西部 (オレゴン) リージョンのレプリケート済みテーブルに 27 GB の追加データを保存します。 DynamoDB Standard テーブルクラスを使用するテーブルについては、最初の 25 GB のストレージは AWS 無料利用枠の適用対象となります。残りの 2 GB のストレージについては 0.25 USD/GB が課金されるため、その月の追加テーブルストレージコストは 0.50 USD となります。
DynamoDB ストリーム: DynamoDB ストリームを有効にし、ストリームデータに対して毎秒 1 回の読み込みリクエストを実行できるようにアプリケーションを構築するとします。その結果、1 か月で 259 万 2,000 回のストリーム読み込みリクエストが実行されます。このうち、最初の 250 万回の読み込みリクエストは AWS 無料利用枠に含まれます。残りの 9 万 2,000 回の読み込みリクエストに対してのみ、読み込みリクエスト 10 万単位あたり 0.02 USD の料金が発生します。
データ転送: グローバルテーブルの実装により AWS リージョン間でデータを転送しているため、その分が課金されます。ただし、DynamoDB では、そのリージョンからのデータ転送に対してのみ課金され、インバウンドのデータ転送には課金されません。月ごとに 1 KB の書き込みを 4,217 万 7,000 回行うとすると、40.22 GB のデータを生成し、リージョン間で転送することになります。米国西部 (オレゴン) リージョンにレプリカを追加すると、さらに 25 GB のデータ転送が生成されます。 リージョン間のデータ転送には、5.94 USD (0.09 USD × [41 + 25]) GB) が課金されます。
まとめると、シングルリージョン DynamoDB テーブルの合計月額料金は次のようになります。
- 書き込みトラフィック: 52.72 USD
- 読み込みトラフィック: 10.54 USD
- データストレージ: 0.50 USD
- オンデマンドバックアップ: 5.00 USD
- 継続的 (PITR) バックアップ: 5.40 USD
- テーブルの復元: 4.35 USD
- Kinesis Data Streams の変更データキャプチャ: 4.22 USD
- Amazon S3 へのデータエクスポート: 2.90 USD
- Amazon DynamoDB 互換キャッシングサービスである DynamoDB Accelerator (DAX) との統合: 14.40 USD
- DynamoDB Streams: 0.02 USD
合計料金: 100.05 USD
米国西部 (オレゴン) リージョンを追加した後の毎月の合計 DynamoDB 料金は、次のとおりです。
- 読み込みトラフィック: 10.54 USD
- 米国東部 (バージニア北部) でのデータストレージ: 0.50 USD
- オンデマンドバックアップ: 5.00 USD
- 継続的 (PITR) バックアップ: 5.40 USD
- 米国東部 (バージニア北部) でのテーブル復旧: 4.35 USD
- Kinesis Data Streams の変更データキャプチャ: 4.22 USD
- Amazon S3 へのデータエクスポート: 2.90 USD
- Amazon DynamoDB 互換キャッシングサービスである DynamoDB Accelerator (DAX) との統合: 14.40 USD
- DynamoDB Streams: 0.02 USD
- 米国西部 (オレゴン) でのグローバルテーブル復旧: 3.75 USD
- グローバルテーブルに複製するための書き込みリクエスト: 158.16 USD
- 米国西部 (オレゴン) でのグローバルテーブルのデータストレージ: 0.50 USD
- データ転送: 5.94 USD
合計料金: 215.68 USD
-
• さまざまなテーブルクラスを使用した例
この例では、テーブルのストレージとデータアクセスパターンに最適な DynamoDB テーブルクラスを選択することで、テーブルの月額料金を削減する方法を示します。
米国東部 (バージニア北部) リージョンで、新しいテーブルを作成したとします。テーブルは既に 1 TB の履歴データを占有しています。データは頻繁にアクセスされることはありませんが、必要に応じてユーザーがすぐに利用できるようにしておく必要があります。ここで、データストレージが月末までに 1.4 TB に増加し、テーブルサイズの継続モニタリングによれば平均 1.2 TB になると仮定します。お客様のテーブルでは、月内に合計 4,250 万回の書き込みと 4,250 万回の読み取りが発生するトラフィックパターンがあります。説明を簡単にするために、ユーザーがアプリケーションとやり取りする度に、1 KB の書き込みが 1 回発生し、1 KB の強力な整合性のある読み込みが 1 回実行されるとします。
まず、DynamoDB Standard テーブルクラスを使用してテーブルの月額料金を見積もります。
DynamoDB Standard テーブルクラスを使用した月額料金
テーブルクラスを DynamoDB Standard に設定すると、次のように請求されます。
データストレージ: DynamoDB Standard テーブルクラスを使用すると、最初の 25 GB のストレージは AWS 無料利用枠の適用対象となります。残りの 1.175 TB のストレージについては 0.25 USD/GB の料金が請求されるため、その月のテーブルストレージコストは 293.75 USD となります。
読み取りと書き込み: お客様には次の料金が課金されます。
4,250 万回の書き込み × 100 万回の書き込みあたり 1.25 USD = 53.125 USD の書き込みリクエスト、
4,250 万回の読み取り × 100 万回の読み取りあたり 0.25 USD = 10.625 USD の読み取りリクエスト。まとめると、DynamoDB Standard テーブルクラスを使用した場合の合計月額料金は次のとおりです。
- 書き込みトラフィック: 53.125 USD
- 読み込みトラフィック: 10.625 USD
- データストレージ: 293.75 USD
DynamoDB Standard テーブルクラスを使用した月額合計料金は 357.50 USD です。
DynamoDB Standard-IA テーブルクラスを使用した月額料金
既に示したように、DynamoDB Standard テーブルクラスを使用する場合、ストレージコストは読み取りと書き込みのコストの 50% を超えます。DynamoDB Standard テーブルクラスを使用する際に、ストレージが主要なコストである場合 (読み取りと書き込みのコストの 50% を超える場合)、DynamoDB Standard-IA テーブルクラスに切り替えることで、コストを最適化できます。同じワークロードについて、翌月の初めにテーブルクラスを DynamoDB Standard-IA に切り替えたと仮定します。次のように請求されます。
データストレージ: 1.2 TB のストレージについては 0.10 USD/GB の料金が請求されるため、その月のテーブルストレージコストは 120.00 USD となります。
読み取りと書き込み: お客様には次の料金が課金されます。
4,250 万回の書き込み × 100 万回の読み取りあたり 1.56 USD = 66.30 USD の書き込みリクエスト、
4,250 万回の読み取り × 100 万回の読み取りあたり 0.31 USD = 13.18 USD の読み取りリクエスト。まとめると、DynamoDB Standard-IA テーブルクラスを使用した場合の合計月額料金は次のとおりです。
- 書き込みトラフィック: 66.30 USD
- 読み込みトラフィック: 13.18 USD
- データストレージ: 120.00 USD
DynamoDB 標準 – IA テーブルクラスを使用した合計料金: 199.48 USD
テーブルに DynamoDB 標準 – IA を使用することで、テーブルの合計月額料金が 44.2%、つまり 158.03 USD 削減されます。
料金に関するその他のリソース
AWS の月額料金を簡単に計算
個別のお見積もりをご希望の場合、AWS のスペシャリストに問い合わせる