DynamoDB オンデマンドキャパシティモード
Amazon DynamoDB オンデマンドは、キャパシティプランニングなしで 1 秒あたり数百万ものリクエストを処理できるサーバーレス請求オプションです。DynamoDB オンデマンドは、読み込みおよび書き込みリクエストの料金が従量制であるため、使用した分だけを支払います。
オンデマンドモードを選択すると、DynamoDB は、前に到達したトラフィックレベルまで拡張または縮小して、ワークロードを即座に受け入れることができるようにします。ワークロードのトラフィックレベルが新しいピークに達すると、DynamoDB はワークロードに対応するように迅速に対応します。オンデマンドモードのスケーリングプロパティの詳細については、「初期スループットとスケーリングのプロパティ」を参照してください。
オンデマンドモードを使用するテーブルは、同じ 1 桁ミリ秒のレイテンシー、サービスレベルアグリーメント (SLA) のコミットメント、DynamoDB が既に実現しているセキュリティを提供します。オンデマンドは、新しいテーブルと既存のテーブルの両方に選択できるだけでなく、コードを変更せずに既存の DynamoDB API を引き続き使用することができます。
オンデマンドのスループットレートは、アカウントのすべてのテーブルに適用されるテーブルレベルのスループットクォータによって制限されます。このクォータの引き上げをリクエストできます。詳細については、「スループットのデフォルトクォータ」を参照してください。
オプションで、個別のオンデマンドテーブルやグローバルセカンダリインデックスに対して 1 秒あたりの読み込み/書き込み (またはその両方) の最大スループットを設定することもできます。スループットを設定することで、テーブルレベルの使用量とコストを制限し、不注意によるリソース消費量の急増を防ぎ、過剰な使用をなくして予測可能なコスト管理を行うことができます。テーブルの最大スループットを超えるスループットリクエストはスロットリングされます。テーブル別の最大スループットは、アプリケーションの要件に基づいていつでも変更できます。詳細については、「オンデマンドテーブルの DynamoDB 最大スループット」を参照してください。
開始するには、オンデマンドモードを使用するテーブルを作成または更新します。詳細については、「DynamoDB テーブルの基本的なオペレーション」を参照してください。
テーブルは、オンデマンドモードからプロビジョンドキャパシティモードにいつでも切り替えることができます。キャパシティモード間で複数の切り替えを行う場合は、次の条件が適用されます。
-
オンデマンドモードで新しく作成したテーブルは、いつでもプロビジョンドキャパシティモードに切り替えることができます。ただし、オンデマンドモードに戻すことができるのは、テーブルの作成タイムスタンプから 24 時間後のみです。
-
オンデマンドモードの既存のテーブルは、いつでもプロビジョンドキャパシティモードに切り替えることができます。ただし、オンデマンドモードに戻すことができるのは、オンデマンドへの切り替えを示す最後のタイムスタンプから 24 時間後のみです。
読み込みおよび書き込みキャパシティモード間の切り替えの詳細については、「DynamoDB でキャパシティモードを切り替える際の考慮事項」を参照してください。オンデマンドテーブルクォータについては、「読み込み/書き込みモードとスループット」を参照してください。
トピック
読み取りリクエスト単位と書き込みリクエスト単位
DynamoDB では、アプリケーションがテーブルに対して実行する読み込みと書き込みに対して、読み込みリクエストユニットと書き込みリクエストユニットに基づいて課金します。
1 つの読み込みリクエストユニットは、最大サイズが 4 KB の項目に対する 1 秒あたり 1 回の強力な整合性のある読み込み、または 1 秒あたり 2 回の結果整合性のある読み込みを表します。DynamoDB の読み込み整合性モデルの詳細については「DynamoDB の読み取り整合性」を参照してください。
1 つの書き込みリクエストユニットは、最大サイズが 1 KB の項目に対する 1 秒あたり 1 回の書き込みオペレーションを表します。
読み込みユニットと書き込みユニットの消費方法の詳細については、「DynamoDB の読み込みと書き込みのオペレーション」を参照してください。
初期スループットとスケーリングのプロパティ
オンデマンドキャパシティーモードを使用する DynamoDB テーブルは、アプリケーションのトラフィックボリュームに自動的に対応します。新しいオンデマンドテーブルでは、1 秒あたり最大 4,000 回の書き込みと 1 秒あたり最大 12,000 回の読み込みを維持できます。オンデマンドキャパシティーモードは、テーブルにおける前のピークトラフィックの最大 2 倍まで瞬時に対応します。例えば、アプリケーションのトラフィックパターンが 1 秒あたり 25,000~50,000 回の強力な整合性のある読み込みの範囲で変動し、1 秒あたり 50,000 回の読み込みが前回のトラフィックのピークであったとします。オンデマンドキャパシティモードは、1 秒あたり最大 100,000 回の読み込みの持続的なトラフィックに即座に対応します。アプリケーションが 1 秒あたり 100,000 回の読み込みのトラフィックを維持する場合、このピークが新たに前回のピークとなります。この前回のピークにより、後続のトラフィックは 1 秒あたり最大 200,000 回の読み込みに到達できます。
1 つのテーブルで前回のピークの 2 倍を超えるピークがワークロードで発生した場合、DynamoDB は、トラフィックボリュームの増加に合わせて、キャパシティの割り当てを自動的に増加します。このキャパシティの割り当てにより、ワークロードでスロットリングが発生しなくなります。ただし、30 分以内に前のピークの 2 倍を超えた場合、スロットリングが発生する可能性があります。例えば、アプリケーションのトラフィックパターンが 1 秒あたり 25,000~50,000 回の強力な整合性のある読み込みの範囲で変動し、1 秒あたり 50,000 回の読み込みが前回到達したトラフィックのピークであったとします。1 秒あたり 100,000 回を超える読み込みを駆動する前に、テーブルを事前ウォーミングするか、少なくとも 30 分間にわたってトラフィックの増加の間隔を空けることをお勧めします。事前ウォーミングの詳細については、「オンデマンドキャパシティモードの DynamoDB テーブルの事前ウォーミング」を参照してください。
ワークロードのピークトラフィックが前のピークの 2 倍以内である場合、DynamoDB は 30 分間のスロットリング制限を行いません。ピークトラフィックが前のピークの 2 倍を超える場合は、前のピークから 30 分後にこの増加が発生することを確認してください。