メインコンテンツへ移動
Databaseデータベース初級CLF-C02SAA-C03

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など必要な操作だけ許可する
  • 個人情報を保存する場合はログ出力とアクセス権限に注意する

関連サービス

関連する比較記事

関連する構成図

タグ

databasenosqlserverless

最終更新日:2026-06-18