キャパシティモード

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がスローされる。