投稿

ラベル(オンデマンド)が付いた投稿を表示しています

DynamoDB キャパシティモード完全ガイド:プロビジョニング vs オンデマンド、本番運用で失敗しない選択基準

新しいサービスを立ち上げるとき、DynamoDBのキャパシティモード選択で迷うのはよくある話だ。トラフィックパターンが読めない段階でプロビジョニングモードを選ぶと、スロットリングで障害を起こすか、過剰なコストを払うかのどちらかになる。この記事では、 DynamoDBキャパシティモード の仕組みと、実際の運用判断基準を具体的に解説する。 TL;DR:DynamoDBキャパシティモード選択早見表 判断軸 オンデマンド プロビジョニング トラフィック予測可能性 不明・不規則 安定・予測可能 スロットリングリスク 低い(自動スケール) 設定次第で高い コスト特性 リクエスト単価が高い 安定負荷なら割安 Auto Scaling併用 不要(組み込み) 推奨(必須に近い) 切り替え頻度制限 24時間に1回まで 同左 向いているフェーズ 開発・ローンチ初期・突発トラフィック 成熟サービス・高スループット安定期 DynamoDBキャパシティモードの仕組みを理解する DynamoDBのスループットは、読み込みキャパシティユニット(RCU)と書き込みキャパシティユニット(WCU)という単位で管理される。1 RCUは最大4KBのアイテムに対する強整合性読み込み1回、1 WCUは最大1KBのアイテムへの書き込み1回に対応する。この前提を押さえた上で、2つのモードの動作を見ていく。 graph LR Client["クライアント"] --> Request["リクエスト"] Request --> ModeCheck{"キャパシティモード?"} ModeCheck -->|"オンデマンド"| OnDemand["自動キャパシティ割り当て (PAY_PER_REQUEST)"] ModeCheck -->|"プロビジョニング"| Provisioned["事前設定RCU/WCU"] OnDem...