AWS

【DynamoDB】オンデマンドモード

データ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となります。

プロビジョニングモードを指定したテーブルに対してオンデマンドモードへ変更した場合

前のピークはプロビジョニングモードで使用していた時のピークの半分となります。
しかし、新たに作成したオンデマンドキャパシティのピークリクエストユニットを下回る場合は、新たに作成したオンデマンドキャパシティのピークリクエストユニットが採用されます。
したがって、新たに作成したオンデマンドキャパシティのピークリクエストを下回ることはありません。

最後に

次回はプロビジョニングモードについて説明します。

© DeNnie.Lab All Rights Reserved.