DynamoDBのキャパシティモード
キャパシティモード
Amazon DynamoDB には、テーブルで読み込みおよび書き込みを処理するための読み込み/書き込みキャパシティーモードが 2 つあります。
- オンデマンド
- プロビジョニング済み (デフォルト、無料利用枠の対象)
無料枠
25 GB のストレージ
25 個のプロビジョニングされた書き込みキャパシティーユニット (WCU)
25 個のプロビジョニングされた読み込みキャパシティーユニット (RCU)
1 か月あたり最大 2 億リクエストの処理が十分に可能。
料金
DynamoDB では、DynamoDB テーブル内のデータの読み取り、書き込み、保存に加え、お客様が有効化したオプション機能が課金の対象となります。DynamoDB には「オンデマンド」と「プロビジョニング済み」という 2 種類のキャパシティーモードがあり、それぞれのモードにおけるテーブルの読み書き処理について別個の請求オプションがあります。
オンデマンド(on-demand capacity mode)とプロビジョニング済(provisioned capacity mode)で料金が異なる。
オンデマンドキャパシティーモードを利用している場合、料金は、アプリケーションがテーブルにおいて実行したデータの読み込み/書き込みリクエストに対して発生します。ワークロードの拡大や縮小は DynamoDB によってその場で対応されるため、お客様はアプリケーションの読み込み/書き込みスループットの予測を指定する必要がありません。
オンデマンドは従量課金でリクエストに対する課金。
プロビジョニングされたキャパシティーのモードでは、アプリケーションに必要な 1 秒あたりのデータ読み込みと書き込みの回数を指定します。Auto Scaling を使用すれば、指定した利用率に応じてテーブルのキャパシティーが自動的に調整されるので、アプリケーションのパフォーマンスを確保しつつコストを削減できます。
プロビジョニングは事前にキャパシティユニットとしてリソースを定義する。
on-demand capacity mod
DynamoDB テーブルにオンデマンドキャパシティーモードを選択している場合、アプリケーションが実行する読み込みと書き込みに対してのみ課金されます。テーブルのスループット容量を管理することなく、必要に応じて API コールを実行できます。DynamoDB では、ワークロードで一貫性と低レイテンシーを実現できるよう、ハードウェアリソースが自動的に管理されます。書き込み (1 KB まで) については、1 回につき書き込みリクエストが 1 単位発生し、トランザクション書き込みでは 1 回につき書き込みリクエストが 2 単位発生します。読み込みについては、強力な整合性のある読み込み (4 KB まで) 1 回につき 1 単位、トランザクション読み込み 1 回につき 2 単位、結果整合性のある読み込み 1 回につき 0.5 単位の読み込みリクエストが発生します。
要求単位(request)で料金が決まる。
- 標準(standard)
- 1KB * 1回 / 1単位
- トランザクション(transactional)
- 1KB * 1回 / 2単位
読み込みの場合は、整合性によって料金が異なる。
- 強力な整合性(strongly consistent)
- 4KB*1回 = 1単位
- 結果整合性(eventually consistent)
- 4KB*1回 = 0.5単位
- トランザクション(transactional)
- 4KB*1回 = 2単位
リージョン:
料金タイプ 料金
書き込み要求単位 書き込み要求ユニット 100 万あたり 1.4269USD
読み出し要求単位 書き込み要求ユニット 100 万あたり 0.285USD
書き込み要求は高い。2020年5月13日時点で、AWSのサイトの日本語表記が間違っているが、読み出し要求単位の行は書き込みではなく読み込み(英語表示はreadになっている)。
provisioned capacity mode
読み込みキャパシティーユニット (RCU): テーブルからデータを読み込むための各 API コールを読み込み要求といいます。読み込み要求は、強力な整合性のある読み込み、結果整合性のある読み込み、またはトランザクション読み込みとなります。項目のサイズが 4 KB までなら、RCU 1 個で、強力な整合性のある読み込み要求を 1 秒あたり 1 回実行できます。項目が 4 KB より大きい場合、追加の RCU が必要です。項目のサイズが 4 KB までなら、RCU 1 個で、結果整合性のある読み込み要求を 1 秒あたり 2 回実行できます。トランザクション読み込み要求では、4 KB までの項目を 1 秒あたり 1 回読み込むのに RCU 2 個が必要です。例えば、8 KB の項目であれば、強力な整合性のある読み込みには RCU 2 個、結果整合性のある読み込みには RCU 1 個、トランザクション読み込みには RCU 4 個がそれぞれ必要になります。
- 強力な整合性(strongly consistent)
- 4KB*1回/1sec = 1RCU
- 結果整合性(eventually consistent)
- 4KB*2回/1sec = 1RCU
- トランザクション(transactional)
- 4KB*1回/1sec = 2RCU
書き込みキャパシティーユニット (WCU): テーブルにデータを書き込むための各 API コールを書き込み要求といいます。項目のサイズが 1 KB までなら、WCU 1 個で、標準の書き込み要求を 1 秒あたり 1 回実行できます。項目が 1 KB より大きい場合、追加の WCU が必要です。トランザクション書き込み要求では、1 KB までの項目を 1 秒あたり 1 回書き込むのに WCU 2 個が必要です。たとえば、1 KB の項目の標準書き込み要求には WCU 1 個、3 KB の項目の標準書き込み要求には WCU 3 個、3 KB の項目のトランザクション書き込み要求には WCU 6 個が必要になります。
- 標準(standard)
- 1KB*1回/1sec = 1WCU
- トランザクション(transactional)
- 1KB*1回/1sec = 2WCU
リージョン:
プロビジョニングするスループットタイプ 時間あたりの料金
書き込みキャパシティーユニット (WCU) 0.000742USD/WCU
読み込みキャパシティーユニット (RCU) 0.0001484USD/RCU
割当てたキャパシティユニットを越えた場合
ProvisionedThroughputExceededException
メッセージ : 1 つのテーブルまたは 1 つ以上のグローバルセカンダリインデックスのプロビジョンドスループットが許容されている最大値を超えました。プロビジョンドスループットと消費スループットのパフォーマンスメトリクスを表示するには、Amazon CloudWatch コンソールを参照してください。
ProvisionedThroughputExceededException
がスローされる。