サーバーレスデータベース - DynamoDB で実現するスケーラブルなデータ管理
DynamoDB のオンデマンドモードを軸に、トラフィックに応じて自動スケールするデータベースを構築する。Aurora Serverless との比較を含め、ワークロード特性に応じたサーバーレス DB の選定基準を解説します。
サーバーレスデータベースの概念と DynamoDB の位置づけ
サーバーレスデータベースは、キャパシティプランニングやサーバー管理を不要にし、アプリケーション開発に集中できるデータベースサービスです。Amazon DynamoDB は 2012 年のリリース以来、AWS のサーバーレスデータベースの中核を担い、1 桁ミリ秒のレイテンシで毎秒数百万リクエストを処理できるフルマネージド NoSQL データベースです。オンプレミスで同等の NoSQL データベース (MongoDB、Cassandra など) を運用する場合、クラスタの構築、シャーディングの設計、レプリケーションの管理、パッチ適用など膨大な運用タスクが発生します。DynamoDB はこれらすべてを AWS が管理し、開発者はテーブル設計とクエリの最適化に集中できます。オンデマンドキャパシティモードを選択すれば、事前のキャパシティ設定すら不要で、トラフィックに応じて自動的にスケールします。
DynamoDB の主要機能
DynamoDB はオンデマンドモードとプロビジョンドモードの 2 つのキャパシティモードを提供します。オンデマンドモードではリクエスト単位の従量課金で、トラフィックの予測が困難なワークロードに最適です。プロビジョンドモードでは Auto Scaling と組み合わせて、コスト効率の高い運用が可能です。DynamoDB Streams を使えば、テーブルへの変更をリアルタイムで Lambda 関数にトリガーでき、変更データキャプチャ (CDC) パターンを数行のコードで実装できます。グローバルテーブルはマルチリージョンレプリケーションを提供し、グローバルテーブル構成で 99.999% の可用性 SLA が適用されます。既定はリージョン間が結果整合性のレプリケーションで、リージョンを越えて強い整合性が必要な場合はマルチリージョン強整合性 (MRSC) モードを選択します。公式ドキュメント (2026 年 8 月時点) では MRSC はちょうど 3 リージョン構成 (3 レプリカ、または 2 レプリカ + 1 witness) と定められ、US・EU・AP の各リージョンセット内でのみ構成できてセットを跨げません。以下は DynamoDB テーブルをオンデマンドモードで作成する CLI コマンドの例です。 aws dynamodb create-table \ --table-name Orders \ --attribute-definitions AttributeName=CustomerId,AttributeType=S AttributeName=OrderId,AttributeType=S \ --key-schema AttributeName=CustomerId,KeyType=HASH AttributeName=OrderId,KeyType=RANGE \ --billing-mode PAY_PER_REQUEST
Lambda との統合によるサーバーレスアーキテクチャ
DynamoDB と Lambda の組み合わせは、 AWS サーバーレスアーキテクチャの黄金パターンです。 API Gateway からのリクエストを Lambda で処理し、 DynamoDB にデータを永続化する構成は、サーバーのプロビジョニングなしで数百万ユーザー規模のアプリケーションを構築できます。 DynamoDB Streams と Lambda の統合により、データの変更をトリガーとした非同期処理が可能です。注文データの挿入をトリガーに在庫更新や通知送信を自動実行するなど、イベント駆動型のデータパイプラインを構築できます。 PartiQL を使えば SQL ライクな構文で DynamoDB を操作でき、 RDB に慣れた開発者の学習コストを低減できます。 DAX (DynamoDB Accelerator) はインメモリキャッシュとして、読み取りレイテンシをマイクロ秒レベルまで短縮します。オンプレミスで同等のキャッシュ層を構築するには Redis や Memcached の別途運用が必要ですが、 DAX は DynamoDB と完全に統合されたマネージドサービスです。
コスト効率とスケーラビリティの優位性
DynamoDB のオンデマンドモードはリクエスト単位の従量課金で、トラフィックがゼロの時間帯はストレージ料金のみが発生します (2026 年 8 月時点・バージニア北部 / 東京)。読み取りは 100 万リクエストユニットあたりバージニア北部 0.125 USD・東京 0.1425 USD、書き込みは同じく 100 万リクエストユニットあたりバージニア北部 0.625 USD・東京 0.715 USD です。常時無料枠は 25 GB のストレージと 25 プロビジョンド WCU・25 プロビジョンド RCU で、公式ドキュメントは月あたり 2 億リクエストを処理できる規模と説明しています。ただしこの枠はプロビジョンドキャパシティに対するものなので、オンデマンドモードのリクエスト課金には適用されません。小規模なアプリケーションを無料枠の内側で運用したい場合は、プロビジョンドモードと Auto Scaling の組み合わせを選ぶのが定石です。プロビジョンドモードでは Standard テーブルクラスに限りリザーブドキャパシティを購入でき、標準料金に対して 1 年契約で最大 54%、3 年契約で最大 77% の割引が適用されます (3 年契約は一部リージョンのみ・購入単位は 100 RCU または 100 WCU・オンデマンドモードと Standard-IA テーブルクラスは対象外)。スケーラビリティの面では、テーブルあたりの既定クォータが 1 秒あたり 40,000 読み取りリクエストユニットと 40,000 書き込みリクエストユニットで、これを超える規模が必要なら Service Quotas から引き上げを申請します (プロビジョンドモードにはアカウント単位 80,000 RCU / 80,000 WCU の既定枠も別にあります)。ストレージは容量を事前に確保する必要がなく、テーブルサイズが数百 TB に達しても一貫したパフォーマンスを維持します。
データモデリングとアクセスパターン設計
DynamoDB を効果的に使う鍵は、リレーショナルデータベースとは異なる設計の考え方を理解することです。先にアプリケーションのアクセスパターン、つまりどんな条件でデータを読み書きするかを洗い出し、それに合わせてテーブルとキーを設計します。データの分散と取得を左右するパーティションキーを、アクセスが偏らないように選ぶことが重要です。関連するデータをまとめて効率的に取得できるよう設計すれば、高速で安定した性能を引き出せます。後から自由な条件で検索することは苦手なため、必要な検索パターンを事前に把握しておくことが、スケーラブルなデータ設計の前提になります。
Aurora Serverless との比較と選定基準
サーバーレスデータベースの選択肢は DynamoDB だけではありません。リレーショナルモデルが必要な場合は Aurora のサーバーレス構成が対になる選択肢です (公式ドキュメントでの名称は Aurora Serverless。AWS は 2026 年 4 月に Aurora Serverless v2 から改称したことを案内しています)。Aurora Serverless は ACU (Aurora Capacity Unit) という単位でキャパシティを自動調整し、1 ACU が約 2 GiB のメモリと、それに対応する CPU・ネットワーク性能に相当します。キャパシティ範囲は最小 0.5 ACU から最大 256 ACU まで指定でき、0.5 ACU 刻みの細かい増減でワークロードに追従します。ユーザー操作による接続が一定時間ない場合に自動停止させたいなら、最小容量を 0 ACU に設定できます。料金は ACU の使用量にストレージと I/O を加えた形で、リージョンや構成によって単価が異なるため、実額は Aurora の公式料金表で確認してください。 選定基準は「アクセスパターンを設計時に確定できるか」と「SQL の柔軟性が必要か」の 2 軸で整理できます。キーを指定した高速な読み書きが中心で、必要なアクセスパターンを設計時に洗い出せるなら DynamoDB が有利です。1 桁ミリ秒のレイテンシとリクエスト単位の課金が効き、アイドル時のコストはストレージ料金だけになります。反対に、集計や結合、条件を後から変えるアドホックな検索が業務要件に含まれる場合、あるいは既存の PostgreSQL・MySQL 資産を移行する場合は Aurora Serverless を選びます。最小 ACU を確保する分アイドル時も課金が続きますが (0 ACU の自動停止を使う場合を除く)、リレーショナルモデルの表現力と、複数テーブルにまたがるトランザクションの扱いやすさが得られます。両者は排他ではありません。業務トランザクションの正となるデータを Aurora Serverless に置き、参照系の高スループット部分を DynamoDB で受ける併用も設計の選択肢になります。
まとめ - サーバーレスデータベースの選択基準
DynamoDB は、サーバーレスアーキテクチャにおけるデータ永続化の主力の選択肢です。オンデマンドモードによるゼロからのスケーリングと従量課金は、スタートアップから大規模エンタープライズまで幅広いユースケースに対応します。DynamoDB Streams によるイベント駆動処理、グローバルテーブルによるマルチリージョン展開 (グローバルテーブル構成で 99.999% の可用性 SLA)、DAX によるマイクロ秒レベルのキャッシュなど、データ管理に必要な機能が包括的に提供されています。選定の順序としては、アクセスパターンを設計時に固定できるならまず DynamoDB を検討し、集計やアドホックな検索、既存のリレーショナル資産の移行が要件に入るなら Aurora Serverless を選ぶ、と整理すると判断がぶれません。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。