データベース ・
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
| 観点 | DAX | ElastiCache |
|---|---|---|
| 対象 | DynamoDB のみ | 任意 |
| API | DynamoDB そのまま | Redis / Memcached プロトコル |
| コード変更 | ほぼ不要 | 必要 |
| 用途 | DynamoDB 専用高速化 | 汎用キャッシュ |
4. 仕組み
DAX は DynamoDB の前段に置かれるキャッシュレイヤー。アプリは DAX エンドポイントに接続し、DAX が DynamoDB と整合性を取る。
構成要素
- DAX クラスター:1〜10 ノード
- Primary ノード:書き込み受付
- Replica ノード:読み取り分散
- Item Cache:GetItem / BatchGetItem の結果
- Query Cache:Query / Scan の結果
動作の流れ(読み取り)
- アプリが DAX エンドポイントへ GetItem
- キャッシュヒット:DAX が即返却(μs)
- キャッシュミス: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. 関連用語
- DynamoDB — DAX の対象
- ElastiCache-Redis — 汎用キャッシュ
- DynamoDB-PK — テーブル設計
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 低 | 出題稀 |
| SAA | 中 | 高速化選択肢、ElastiCache との比較 |
| DVA | 高 | DynamoDB 高速化の実装 |
| SOA | 低 | 出題ほぼなし |