テック技報最新号へ →
インフラ

DynamoDB: RCU は「4KB 単位に切り上げ」で数える/DAX を入れる前に強整合が要るか確かめる

読み取りキャパシティ(RCU)は項目サイズを 4KB 単位に切り上げてから、読み取り方式(強整合・結果整合・トランザクション)の倍率を掛けて数える。DAX は結果整合読み取りを速くするキャッシュなので、強整合が必須の読み取りには効かない。

@dkfj · 2026-10-16
#infra#aws#dynamodb#capacity#cache

どんなときに使う?

  • プロビジョンドモードで RCU を見積もるとき(試験問題でも頻出)
  • 「DynamoDB が遅い → DAX を入れよう」と考えたとき

やり方: RCU の計算

1 RCU = 「4KB までの項目を、強整合で毎秒 1 回読む」能力。

  1. 項目サイズ ÷ 4KB を 切り上げ る(6KB なら 1.5 → 2)
  2. 1 秒あたりの読み取り回数を掛ける
  3. 読み取り方式で倍率を変える
    • 強整合: ×1
    • 結果整合: ×0.5
    • トランザクション読み取り: ×2

投稿の例(6KB の項目を毎秒 10 回読む):

読み取り方式計算必要 RCU
強整合2 × 1020
結果整合2 × 10 × 0.510
トランザクション2 × 10 × 240

間違えやすいのは手順 1 の切り上げ。6 ÷ 4 = 1.5 をそのまま使うと 15 RCU と少なく見積もってしまう。

やり方: DAX を入れる前の確認

  • DAX は DynamoDB 専用のインメモリキャッシュで、応答はマイクロ秒単位
  • ただしキャッシュから返すのは 結果整合読み取り が中心。強整合読み取りは DAX を素通りして DynamoDB に行くので速くならない
  • 「その読み取りに本当に強整合が要るか」を先に棚卸しし、結果整合で済む読み取りが多いときに DAX を検討する

注意点

  • 書き込み(WCU)は 1KB 単位で、計算方法が違う
  • オンデマンドモードでも課金の単位(読み取り要求ユニット)は同じ考え方で 4KB 単位
  • DAX は VPC 内のクラスタとして動くので、ノード料金と運用(クラスタ管理)が増える

出典

X の元の投稿を開く