データベース

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

観点DynamoDBRDS
種類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

動作の流れ

  1. PK でハッシュ化 → 物理パーティション決定
  2. 書き込み:3 AZ に同期コピー
  3. 読み取り:通常は結果整合性、オプションで強整合性
  4. キャパシティ消費: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. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFNoSQL の概念、DynamoDB の役割
SAAサーバーレス設計、スケール、Global Tables
DVAAPI・PK 設計・トランザクション(最頻出
SOAキャパシティ管理・モニタリング