ある新興Eコマース企業は、商品カタログと注文管理にAmazon DynamoDBをProvisioned Capacityモードで使用しています。次のような問題が発生しています。 ・マーケティングキャンペーン開始直後に10倍以上のトラフィックスパイクが発生し、ProvisionedThroughputExceededエラーが頻発する ・DynamoDB Auto Scalingを設定しているが、急激なスパイクへのスケールアップに数分かかり対応が遅れる ・キャンペーン終了後はプロビジョニング容量の90%以上が未使用となり、過剰なコストが発生している ・スパイクのタイミングと規模は予測不能である コスト効率を最大化しながらスループット不足エラーを解消するには、どの対応が最も適切ですか?
DynamoDB On-Demandキャパシティモードは、事前の容量設定なしに実際のリクエスト数に応じて自動的にスケールし、リクエスト単位で課金されます。突発的・予測不能なスパイクに即座に対応(直前のピークの最大2倍まで瞬時にスケール)できるため、ProvisionedThroughputExceededエラーが発生しません。また、低トラフィック時は余剰容量の費用が発生しないため、不規則なアクセスパターンに対して最もコスト効率が高い選択です。 選択肢BのProvisioned Capacityを最大値で固定すると、キャンペーン外の期間(全体の大部分)で90%以上のキャパシティが未使用のまま課金され続け、最もコスト非効率な選択です。 選択肢CのElastiCacheは読み取りキャッシュには有効ですが、書き込みスパイクには対応できず、新たなインフラの管理コストも発生します。On-Demand切り替えほどシンプルではありません。 選択肢DのDAXはDynamoDBの読み取りを高速化するインメモリキャッシュですが、追加コストが発生する上に書き込みスパイクには効果がなく、根本的なキャパシティ不足の問題を解決しません。