データI/Oが発生した分コストが発生するオンデマンドモードについて説明します。
目次
オンデマンドモードとは
制限がなく利用した(項目の読み込み書き込み)分だけ利用したことになります。この利用量が料金となります。
急なトラフィックボリュームの増加に対してもDynamoDBがパフォーマンスを落とすことなく自動的に対応してくれます。(高可用性)
読み込みリクエストユニット
項目の読み込みについて、以下は1リクエストユニットが消費されます。
・4KBの項目の結果生合成読み込みは2回
・4KBの項目の強力な生合成読み込みには1回
項目の読み込みについて、以下は2リクエストユニットが消費されます。
・4KBの項目のトランザクション読み込みは1回
書き込みリクエストユニット
項目の書き込みについて、以下は1リクエストユニットが消費されます。
・1KBの書き込み1回
項目の書き込みについて、以下は1リクエストユニットが消費されます。
・1KBのトランザクション書き込み1回
オートスケーリング
急なトラフィックボリュームの増加についてDynamoDBは自動的に対応してくれますが制限があります。
前のピークトラフィックの2倍のトラフィックボリュームには対応できます。
例えば、1秒あたりピークトラフィックが500の場合、1秒あたり1000までは自動的に対応が可能です。
その場合、ピークトラフィックは1秒あたり1000となるので、次は2000まで対応が可能です。
2倍以上トラフィックボリュームが増える場合、スロットリングが発生する可能性があります。
DynamoDBは2倍以上のトラフィックボリュームが発生しても対応は可能のようですが、このケースが頻繁に発生することは好まれないようで、30分の間隔を空けることが推奨されています。
初期オートスケーリングのピークトラフィックの考え方
新たに作成したテーブルに対してオンデマンドキャパシティモードを指定した場合、もしくはプロビジョニングモードを指定したテーブルに対してオンデマンドモードへ変更した場合は以下のようになります。
新たに作成したテーブルに対してオンデマンドキャパシティモードを指定した場合
前のピークは読み込みリクエストユニットは6000、書き込みリクエストユニットは2000となります。
したがって瞬時に対応できるトラフィックボリュームは読み込みリクエストユニットは12000、書き込みリクエストユニットは4000となります。
プロビジョニングモードを指定したテーブルに対してオンデマンドモードへ変更した場合
前のピークはプロビジョニングモードで使用していた時のピークの半分となります。
しかし、新たに作成したオンデマンドキャパシティのピークリクエストユニットを下回る場合は、新たに作成したオンデマンドキャパシティのピークリクエストユニットが採用されます。
したがって、新たに作成したオンデマンドキャパシティのピークリクエストを下回ることはありません。
最後に
次回はプロビジョニングモードについて説明します。