データベース

DynamoDB Accelerator(DAX)とは?マイクロ秒キャッシュ層

DAX は DynamoDB 専用のインメモリキャッシュサービス。アプリケーションは 既存の DynamoDB API そのまま で DAX を経由でき、コード変更ほぼなし。マイクロ秒(数百 μs)応答を実現し、読み取り重い負荷で 10 倍以上の高速化が見込める。 ---

DynamoDB 専用のフルマネージド インメモリキャッシュ。マイクロ秒応答を実現。


1. 概要(端的に)

DAX は DynamoDB 専用のインメモリキャッシュサービス。アプリケーションは 既存の DynamoDB API そのまま で DAX を経由でき、コード変更ほぼなし。マイクロ秒(数百 μs)応答を実現し、読み取り重い負荷で 10 倍以上の高速化が見込める。


2. 何ができるか

  • DynamoDB クエリのキャッシュ:マイクロ秒応答
  • API 互換:既存コードに変更不要
  • クラスターモード:複数ノードで冗長化
  • Item Cache + Query Cache:2 種のキャッシュ
  • 書き込みスルー:書き込みも DAX 経由で OK(DynamoDB と DAX 両方更新)

3. 特徴

観点特徴
追加料金ノードタイプ × 時間(ElastiCache 同等)
クラスター1〜10 ノード
遅延マイクロ秒(数百 μs)
対応DynamoDB のみ
VPC 内配置必須
互換性DynamoDB API そのまま

vs ElastiCache

観点DAXElastiCache
対象DynamoDB のみ任意
APIDynamoDB そのままRedis / Memcached プロトコル
コード変更ほぼ不要必要
用途DynamoDB 専用高速化汎用キャッシュ

4. 仕組み

DAX は DynamoDB の前段に置かれるキャッシュレイヤー。アプリは DAX エンドポイントに接続し、DAX が DynamoDB と整合性を取る。

構成要素

  • DAX クラスター:1〜10 ノード
  • Primary ノード:書き込み受付
  • Replica ノード:読み取り分散
  • Item Cache:GetItem / BatchGetItem の結果
  • Query Cache:Query / Scan の結果

動作の流れ(読み取り)

  1. アプリが DAX エンドポイントへ GetItem
  2. キャッシュヒット:DAX が即返却(μs)
  3. キャッシュミス:DAX が DynamoDB へ → 結果キャッシュ → 返却

書き込み処理

  • Write-Through:DAX 経由で DynamoDB に書き込み(同期更新)
  • Cache 更新:書き込み時に DAX キャッシュも更新
  • TTL:Item Cache 5 分 / Query Cache 5 分(設定可)

キャッシュ整合性

  • Write-Through なら整合性が高い
  • DynamoDB を直接書き込むと DAX キャッシュとの整合性が崩れる可能性

5. ユースケース

ユースケース 1:読み取り重い Web アプリ

1 秒に数千リクエストの GetItem。

ユースケース 2:ゲームのリーダーボード

高頻度の読み取り。

ユースケース 3:金融取引データの参照

低遅延が必須。

ユースケース 4:商品カタログ

EC サイトの商品ページ表示。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF出題稀
SAA高速化選択肢、ElastiCache との比較
DVADynamoDB 高速化の実装
SOA出題ほぼなし