データベース ・
Amazon DynamoDB 完全ガイド|サーバーレス NoSQL の仕組み
DynamoDB は AWS のフルマネージド NoSQL データベース。Key-Value とドキュメント形式に対応し、サーバーレス・任意スケール・1 桁 ms レイテンシ・99.999% 可用性 を実現する。AWS のサーバーレスアーキテクチャの中核 DB で、API ...
AWS のフルマネージド NoSQL データベース。サーバーレス・無制限スケール・1 桁 ms レイテンシ。
1. 概要(端的に)
DynamoDB は AWS のフルマネージド NoSQL データベース。Key-Value とドキュメント形式に対応し、サーバーレス・任意スケール・1 桁 ms レイテンシ・99.999% 可用性 を実現する。AWS のサーバーレスアーキテクチャの中核 DB で、API Gateway + Lambda + DynamoDB が定番構成。
2. 何ができるか
- Key-Value / ドキュメント保存
- 無限スケール:自動的にパーティション拡張
- オンデマンド or プロビジョンド課金
- DynamoDB Streams:データ変更をリアルタイム配信
- DAX:マイクロ秒のキャッシュ
- Global Tables:マルチリージョンレプリ
- PITR:35 日間の Point-in-Time Recovery
- TTL:自動削除
- トランザクション:ACID トランザクション対応
3. 特徴
| 観点 | 特徴 |
|---|---|
| 可用性 | 99.999%(Global Tables)/ 99.99%(標準) |
| レイテンシ | 1 桁 ms(一貫性)、< 1 ms(DAX 経由) |
| スケール | 自動・無制限 |
| データ型 | スカラー(数値・文字列・バイナリ・Boolean)+ セット + マップ |
| アイテム最大サイズ | 400 KB |
| 料金体系 | プロビジョンド(RCU/WCU)or オンデマンド |
| 整合性 | デフォルト:結果整合性 / オプション:強整合性 |
vs RDS
| 観点 | DynamoDB | RDS |
|---|---|---|
| 種類 | NoSQL(KV/Doc) | RDB |
| スキーマ | 柔軟(PK 必須) | 固定 |
| スケール | 水平・自動 | 垂直(インスタンスサイズ) |
| トランザクション | 限定対応 | フル対応 |
| JOIN | 不可 | 可 |
| クエリ言語 | API(PartiQL) | SQL |
| 用途 | 大規模・低遅延 | 複雑クエリ |
キャパシティモード
- プロビジョンド:事前に RCU/WCU 確保(安定負荷向け)
- オンデマンド:使った分だけ(変動負荷向け)
4. 仕組み
DynamoDB は パーティション分散型 KVS。データはパーティションキー(PK)で分散保存され、自動的にパーティションが増減する。
構成要素
- テーブル:データの集合
- アイテム:行に相当(最大 400 KB)
- 属性:カラムに相当(柔軟・可変)
- パーティションキー(PK):必須・物理分散キー
- ソートキー(SK):オプション・PK 内で範囲クエリ可
- GSI(Global Secondary Index):別の PK/SK で検索
- LSI(Local Secondary Index):同じ PK + 別 SK
動作の流れ
- PK でハッシュ化 → 物理パーティション決定
- 書き込み:3 AZ に同期コピー
- 読み取り:通常は結果整合性、オプションで強整合性
- キャパシティ消費:RCU/WCU で計測
キャパシティユニット
- WCU(Write Capacity Unit):1 KB 書き込み / 秒
- RCU(Read Capacity Unit):4 KB 結果整合性読み取り / 秒、または 4 KB 強整合性読み取り(半分)
Global Tables
- マルチリージョンレプリ
- 各リージョンで読み書き可(マルチマスター)
- 通常 1 秒以内のレプリ
5. ユースケース
ユースケース 1:サーバーレス Web/API
API Gateway + Lambda + DynamoDB の鉄板構成。
ユースケース 2:ゲームのプレイヤーデータ
低遅延 + 大規模スケールが必要。
ユースケース 3:IoT データ
大量センサーデータの高速書き込み。
ユースケース 4:セッション管理
Web アプリのセッション store。
ユースケース 5:商品カタログ
EC サイトのカタログ・在庫情報。
ユースケース 6:時系列データ
ログ・イベント記録。
6. 関連用語
- DynamoDB-PK — パーティションキー設計
- DynamoDB-Streams — 変更ストリーム
- DAX — マイクロ秒キャッシュ
- Lambda — サーバーレス連携
- KMS — 暗号化
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | NoSQL の概念、DynamoDB の役割 |
| SAA | 高 | サーバーレス設計、スケール、Global Tables |
| DVA | 高 | API・PK 設計・トランザクション(最頻出) |
| SOA | 中 | キャパシティ管理・モニタリング |