DynamoDB
Amazon DynamoDB
サーバー管理なしで使えるAWSのNoSQLデータベース。
一言でいうと
サーバー管理なしで使えるAWSのNoSQLデータベース。
概要
サーバーレスのNoSQLデータベース。キー設計に基づいて高速に読み書きでき、容量やアクセス増加に対応しやすい。
主な用途
- 問い合わせデータの保存
- ユーザー設定の保存
- アクセスパターンが明確なアプリデータ
CLF-C02 試験ポイント
- NoSQLのマネージドデータベースである
- オンデマンド課金を選べる
- パーティションキーを中心に設計する
SAA-C03 試験ポイント
- アクセスパターンからテーブル設計する
- Scan多用は避けQuery中心にする
- DAXやGSIは用途を理解して使う
実際の使いどころ
Amazon DynamoDB は AWS が提供するフルマネージドの NoSQL データベースである。 サーバーのプロビジョニング、OS パッチ、クラスタ管理は AWS が担う。開発者は テーブル設計とアプリケーションコードに集中できる。 **設計の核心はアクセスパターン駆動**である。DynamoDB はパーティションキー(PK)と オプションのソートキー(SK)でデータを識別する。パーティションキーが同一のアイテム は同一のパーティションに格納され、ソートキー範囲での Query が高速になる。テーブル 設計は「最初にアクセスパターンを列挙し、そのパターンをキー構造で表現する」という 順序で進める。RDB のように正規化してから JOIN するアプローチは取らない。 **Query と Scan の使い分け**は重要な最適化ポイントである。Query はパーティション キーを指定してインデックスを使うため高速かつ低コスト。Scan は全テーブルを順次 スキャンするため、データ量が増えるに従って低速・高コストになる。本番環境での Scan 多用は避け、GSI(グローバルセカンダリインデックス)を作成して Query で 解決するのが標準的な設計パターンである。 **キャパシティモード**は 2 種類ある。オンデマンドモードはアクセス量に応じて自動 スケールし、未使用分の課金がない。プロビジョンドモードは事前に RCU(読み取り キャパシティユニット)/ WCU(書き込みキャパシティユニット)を指定し、Auto Scaling と組み合わせて使う。 **DynamoDB Streams** は、テーブルへの変更(INSERT / MODIFY / REMOVE)をリアル タイムで取得できるイベントストリーム機能である。Lambda と連携してイベント駆動 処理(レプリケーション・通知・集計)を実装できる。 **IAM によるアクセス制御**は、テーブル単位ではなくアクション単位(`PutItem` / `GetItem` / `Query` / `Scan` 等)で付与する。最小権限の原則に従い、Lambda 関数に 必要な操作だけを許可した IAM ロールを付与する。 SAA-C03 では、GSI / LSI(ローカルセカンダリインデックス)の設計、DAX(DynamoDB Accelerator)によるインメモリキャッシュ、DynamoDB Streams + Lambda の連携パターン、 RDS との使い分け判断軸が問われる。
公式ドキュメント
コスト注意点
- オンデマンドは小規模・アクセス変動に向く
- Scan多用はデータ増加時にコスト増につながる
セキュリティ注意点
- IAMでPutItemなど必要な操作だけ許可する
- 個人情報を保存する場合はログ出力とアクセス権限に注意する
関連サービス
関連する比較記事
関連する構成図
タグ
最終更新日:2026-06-18