SAP-C02-086 · セクション 10 / タスク 2.5
Purpose-built Databaseの選択
Amazon RDS / Amazon Aurora / Amazon DynamoDB / Amazon ElastiCache / Amazon OpenSearch Service / Amazon DocumentDB / Amazon Neptune / Amazon Keyspaces / Amazon Timestream / データアクセスパターン
リレーショナルデータベースだけですべてのデータを扱うのではなく、AWSではデータモデルやアクセス方法に合わせて目的別のデータストアを選択できます。
重要なのは、
データがJSONだからDocumentDB
大量データだからDynamoDB
高速だからElastiCacheのように、1つの特徴だけでサービスを決めないことです。
まず、
何を保存するか
+
どのように取得するか
+
どのようなクエリを実行するか
+
既存エンジン / APIとの互換性は必要か
+
必要なレイテンシー / スケールを確認します。
その結果として、
データモデル
+
データアクセスパターン
+
クエリ要件
+
互換性要件
+
性能要件
↓
目的別データストアを選択します。
AWSのデータベース選択ガイドでも、データモデルやデータアクセス方法などをデータベース選択の中心条件としています。
ゴール
次のような要件から、中心となるデータストア候補を判断できるようにします。
リレーショナル
→ Amazon RDS / Amazon Aurora
キーバリュー
→ Amazon DynamoDB
MongoDB互換のドキュメント
→ Amazon DocumentDB
グラフ
→ Amazon Neptune
Cassandra互換のワイドカラム
→ Amazon Keyspaces
時系列
→ Amazon Timestream
インメモリ
→ Amazon ElastiCache
全文検索 / 関連度検索
→ Amazon OpenSearch Serviceただし、データ形式だけでは最終決定しません。
同じJSONデータでも、
主キー中心に取得
→ DynamoDBが有力
MongoDB互換APIで
ドキュメント内部を柔軟に検索
→ DocumentDBが有力
全文検索や関連度ランキング
→ OpenSearch Serviceが有力のようにアクセスパターンで候補が変わります。
1. 最初にデータアクセスパターンを見る
データアクセスパターン(Data Access Pattern)とは、アプリケーションがデータをどのように取得・更新・検索するかという利用方法です。
データベースを選ぶときは、保存形式だけでなく「アプリケーションがどうデータへアクセスするか」を確認します。
例えば、顧客データがJSON形式だからといって、それだけでDocumentDBを選ぶことはできません。
顧客データ(JSON)
│
├─ customerIdで高速取得
│ ↓
│ DynamoDB候補
│
├─ 属性の組み合わせで
│ ドキュメント検索
│ ↓
│ DocumentDB候補
│
└─ 自然文 / キーワードで
関連度検索
↓
OpenSearch Service候補判断するときは、最低でも次を確認します。
| 判断軸 | 確認内容 |
|---|---|
| データモデル | リレーショナル / キーバリュー / ドキュメント / グラフ / ワイドカラム / 時系列 |
| 主な取得方法 | 主キー / 範囲 / 結合 / ドキュメント属性 / 関係探索 / 全文検索 |
| クエリの形 | 事前に予測可能か、柔軟な検索が必要か |
| 互換性 | SQL Server / Oracle / MySQL / PostgreSQL / MongoDB / Cassandraなど |
| レイテンシー | ミリ秒か、マイクロ秒級が必要か |
| スケール | 高い読み書きスループットや大規模な同時アクセスが必要か |
| 整合性 / トランザクション | アプリケーションがどの操作単位で整合性を必要とするか |
ここで重要なのは、
ACIDトランザクションが必要
=
必ずリレーショナルではないことです。
Amazon DynamoDBは複数アイテムに対するACIDトランザクションをサポートし、Amazon DocumentDBも複数ドキュメントなどにまたがるトランザクションをサポートします。
したがって、トランザクションの有無だけでリレーショナルと非リレーショナルを分けません。
2. リレーショナルならAmazon RDS / Amazon Auroraを評価する
次のような要件では、まずリレーショナルデータベースを評価します。
表 / 行 / 列
+
SQL
+
複数テーブルの結合
+
リレーショナルなデータモデル
+
トランザクションAWSでは代表的な候補が、
Amazon RDS
Amazon Auroraです。
3. Amazon RDSは必要なデータベースエンジンが決定条件になる
Amazon RDSはフルマネージドのリレーショナルデータベースサービスです。
現在のAmazon RDSでは、
PostgreSQL
MySQL
MariaDB
Microsoft SQL Server
Oracle
Db2などのデータベースエンジンを利用できます。
例えば、
既存業務アプリケーション
↓
Microsoft SQL Server固有機能を利用
↓
SQL Server互換性を維持したい
↓
Amazon RDS for SQL Serverというように、既存エンジンとの互換性そのものが決定条件になる場合があります。
つまり、
リレーショナルだからRDSだけではなく、
必要なデータベースエンジン
+
アプリケーション互換性まで確認します。
4. Amazon AuroraはMySQL / PostgreSQL互換のリレーショナル候補
Amazon Auroraは、MySQLおよびPostgreSQLと互換性を持つフルマネージドのリレーショナルデータベースです。
Auroraでは、データベースエンジンと分散されたストレージサブシステムを組み合わせたアーキテクチャを使用します。
例えば、
リレーショナルモデル
+
SQL / 結合
+
MySQL互換性
+
Auroraアーキテクチャを利用したいなら、
Amazon Aurora MySQL-Compatible Editionを評価します。
同様にPostgreSQL互換要件ならAurora PostgreSQLを評価できます。
Amazon RDSとの最初の切り分けは、
Oracle / SQL Server / Db2 / MariaDB等
特定エンジンが必要
↓
Amazon RDSを評価
MySQL / PostgreSQL互換
+
Aurora固有のアーキテクチャを利用したい
↓
Amazon Auroraを評価と考えると整理しやすくなります。
可用性構成、レプリカ、フェイルオーバーなどは、データベースの種類を決めた後に別途設計します。
5. Amazon DynamoDBはキー中心のアクセスで考える
Amazon DynamoDBは、サーバーレスのNoSQLデータベースです。
大規模なワークロードでも一貫した1桁ミリ秒性能を提供するよう設計されています。
代表的な判断は、
アクセスパターンを事前に把握
+
パーティションキー / ソートキーで取得
+
結合不要
+
大規模な読み書き
+
低レイテンシー
↓
Amazon DynamoDBです。
例えば、
ユーザーID
↓
ショッピングカート取得
セッションID
↓
セッション取得
デバイスID + タイムスタンプ
↓
対象範囲取得のように、キーを中心としてアクセス方法を設計できるワークロードと相性がよくなります。
DynamoDBでは、GetItemなどで主キーを指定してアイテムを取得します。
一方、
多数のテーブルを自由に結合
+
実行時に予測していなかった検索条件を
大量に組み合わせるというリレーショナルなクエリモデルを、そのまま持ち込むサービスではありません。
6. DynamoDBは「NoSQLだから整合性が弱い」と決めつけない
DynamoDBはデフォルトで結果整合性のある読み取りを使用しますが、テーブルとローカルセカンダリインデックスでは強い整合性のある読み取りも選択できます。
一方、グローバルセカンダリインデックスでは強い整合性のある読み取りを利用できません。
さらにDynamoDBはACIDトランザクションもサポートします。
したがって、
NoSQL
↓
トランザクション不可という判断は誤りです。
重要なのは、
アクセスパターン
+
データモデル
+
クエリモデルです。
7. Amazon DocumentDBはドキュメント + MongoDB互換性で判断する
Amazon DocumentDBはMongoDB互換のフルマネージドドキュメントデータベースです。
JSONライクなドキュメントを保存し、その内部のフィールドに対して柔軟なクエリを行うワークロードが代表的な候補です。
判断例:
既存MongoDBアプリケーション
+
MongoDBドライバー / API
+
JSONライクなドキュメント
+
ドキュメントのフィールド検索
↓
Amazon DocumentDBここでは、
JSON
=
DocumentDBではありません。
例えばJSON形式でも、
ユーザーIDによる既知のキー検索が中心
↓
DynamoDB候補
ドキュメント内部の複数フィールドを
MongoDB互換APIで検索
↓
DocumentDB候補
全文検索 / 関連度検索
↓
OpenSearch Service候補となります。
また、Amazon DocumentDBはMongoDB互換ですが、MongoDBそのものと完全に同一ではありません。
既存MongoDBから移行する場合は、利用しているコマンド、演算子、インデックス、クエリパターンなどの互換性を確認します。
8. Amazon Neptuneは関係探索で判断する
Amazon Neptuneは、関連性の高いデータセットを扱うためのフルマネージドグラフデータベースです。
数十億規模の関係を保存し、グラフをたどるクエリ向けに最適化されています。
代表例は、
不正検知
レコメンデーション
ナレッジグラフ
ソーシャルネットワーク
ネットワーク上の関係などです。
例えば不正検知で、
口座
│
├─ 端末
│ │
│ └─ IPアドレス
│
└─ 取引
│
└─ 別の口座という関係を、
この口座と3ホップ以内で
関連している口座は何かのように探索するなら、単純な主キー検索ではなく、
関係
+
関係をたどる探索が主要アクセスパターンになります。
この場合、Amazon Neptuneを評価します。
Neptuneはプロパティグラフ向けにGremlinとopenCypher、RDF向けにSPARQLをサポートします。
9. Amazon KeyspacesはCassandra / ワイドカラムが決定条件
Amazon KeyspacesはApache Cassandra互換のマネージドデータベースサービスです。
サーバーレスで、サーバーのプロビジョニングやパッチ適用を行わずにCassandra互換ワークロードを実行できます。
代表的な判断は、
既存Cassandraワークロード
+
ワイドカラムのデータモデル
+
CQL
+
高い読み書きスループット
+
低レイテンシー
↓
Amazon Keyspacesです。
既存CassandraアプリケーションをAWSへ移行するとき、
既存CQL
既存Cassandraドライバー
既存データモデルを活用したいことが強い決定条件になります。
単に、
NoSQLだからKeyspacesと選ぶのではありません。
DynamoDBとの違いも、
DynamoDB
→ AWS独自API / キー中心のアクセスパターン
Keyspaces
→ Cassandra互換性 / CQL / ワイドカラムという互換性とアクセス方法から切り分けます。
10. Amazon Timestreamは時系列アクセスで判断する
時系列データでは、
タイムスタンプ
+
メトリクス / 測定値
+
時間範囲
+
時間窓集計
+
傾向がアクセスパターンの中心になります。
Amazon Timestream for LiveAnalyticsは、時系列データ向けに設計されたマネージド時系列データベースで、SQLと時系列分析関数を利用できます。
代表例:
IoTセンサーデータ
アプリケーションメトリクス
産業機器のテレメトリ
資産追跡です。
つまり、
デバイスID
+
タイムスタンプ
+
測定値
↓
過去1時間の平均
過去24時間の最大値
時間変化
傾向のようなアクセスで時系列データベースを評価します。
ただし、
created_at列があるだけで時系列データベースを選ぶわけではありません。
業務上の主要クエリが、
顧客IDで注文取得
注文IDで更新
複数テーブルを結合なら、タイムスタンプ列が含まれていてもリレーショナルやキーバリューなど別のデータモデルが中心になる可能性があります。
11. Timestream for LiveAnalyticsの新規利用可否に注意する
2025年6月20日以降、Amazon Timestream for LiveAnalyticsは新規顧客からの利用開始を受け付けていません。
既に利用している支払いアカウントでは継続して利用できます。
AWSは新規顧客に対して、類似機能の候補としてAmazon Timestream for InfluxDBを評価するよう案内しています。
したがって、2026年時点の新規設計では、
時系列
↓
無条件に
Timestream for LiveAnalyticsとは判断しません。
時系列要件
↓
利用中のAWSアカウントで
LiveAnalyticsを利用可能か
↓
利用不可なら
現在提供されている代替候補を評価とします。
12. Amazon ElastiCacheは超低レイテンシーのインメモリデータストアとして評価する
Amazon ElastiCacheはValkey、Redis OSS、Memcachedを利用できるマネージドインメモリデータストアです。
判断の中心は、
インメモリのデータ構造
+
非常に低いレイテンシー
+
Valkey / Redis OSS / Memcachedとの互換性が必要かどうかです。
例えば、
Key / Value
Set
Sorted Set
Hashなどのインメモリデータ構造を利用し、
マイクロ秒級の読み取りを必要とするワークロードではAmazon ElastiCacheを評価できます。
DynamoDBとの切り分けは、
DynamoDB
→ サーバーレスNoSQL
→ キー中心の大規模アクセス
→ 1桁ミリ秒級
ElastiCache
→ インメモリデータ構造
→ マイクロ秒級のアクセス
→ Valkey / Redis OSS / Memcached互換のように、アクセスモデルとレイテンシー要件から考えます。
Amazon ElastiCacheをキャッシュとして利用する場合のTTL、キャッシュヒット、無効化方式などは、データストアの種類を選んだ後に別途設計します。
13. Amazon OpenSearch Serviceは検索アクセスパターンで判断する
Amazon OpenSearch Serviceは、OpenSearchクラスターのデプロイ、運用、スケーリングをAWSが管理するサービスです。
OpenSearchは検索および分析エンジンで、
全文検索
ログ分析
アプリケーション監視
クリックストリーム分析などに使用できます。
特に、
キーワード
+
全文検索
+
関連度ランキング
+
フィルタ / 集計が中心なら、通常の主キー検索とはアクセスパターンが異なります。
例えば、
商品データ
↓
「ワイヤレス メカニカル キーボード」
のような文字列で検索
↓
関連度順に結果表示なら、
主キー検索ではなく、
検索インデックスが必要になります。
この場合、Amazon OpenSearch Serviceが候補になります。
Amazon OpenSearch Serviceでは現在、キーワード検索だけでなくベクトル検索も利用できます。
ただし、OpenSearch Serviceはトランザクションシステムの正規データベースと、検索用インデックスを同じものとして考えないことが重要です。
14. 主要サービスをデータアクセスパターンで比較する
| 要件 | 第一候補 | 決定条件 |
|---|---|---|
| SQL / 結合 / リレーショナル | Amazon RDS | 必要なリレーショナルエンジン |
| MySQL / PostgreSQL互換のリレーショナル | Amazon Aurora | Auroraアーキテクチャを利用するリレーショナル要件 |
| キーバリュー / キー検索 | Amazon DynamoDB | 既知のキー中心アクセス、大規模スケール |
| JSONライクなドキュメント | Amazon DocumentDB | MongoDB互換、ドキュメント内部の検索 |
| 関係探索 | Amazon Neptune | 高度に接続されたデータと関係探索 |
| Cassandra / ワイドカラム | Amazon Keyspaces | Cassandra互換、CQL |
| 時系列 | Amazon Timestream | 時刻中心の保存・集計・傾向分析 |
| インメモリ | Amazon ElastiCache | インメモリデータ構造と超低レイテンシー |
| 全文検索 / 検索 | Amazon OpenSearch Service | 全文検索、関連度、検索・分析 |
15. 「データ形式」ではなく「操作」を見る
最も混同しやすいのが、
保存されているデータの見た目だけでサービスを決めることです。
例えばJSONでも、
JSON
│
├─ ID指定で取得
│ ↓
│ DynamoDB候補
│
├─ MongoDB互換APIで
│ フィールド検索
│ ↓
│ DocumentDB候補
│
└─ テキストを全文検索
↓
OpenSearch Service候補となります。
時刻を含むデータも同様です。
タイムスタンプあり
│
├─ 注文IDで取得
│ ↓
│ 時系列DBとは限らない
│
└─ 時間窓 / 傾向を中心に分析
↓
時系列DB候補つまり、
データ形式
だけを見る
×
データ形式
+
アクセスパターン
を見る
○です。
16. 既存アプリケーションとの互換性も重要な決定条件
完全な新規開発ではデータモデルを自由に選べても、既存システムの移行では互換性が強い制約になります。
例えば、
既存SQL Server
→ Amazon RDS for SQL Server
既存MongoDBアプリケーション
→ Amazon DocumentDBを評価
既存Cassandraアプリケーション
→ Amazon Keyspacesを評価のように、
ドライバー
プロトコル
クエリ言語
データベースエンジン
アプリケーションの動作が選択条件になります。
マネージドサービスへ移行する場合でも、互換性があるというサービス名だけで決めず、実際に使用している機能まで確認します。
17. 1つのアプリケーションで1種類だけを使う必要はない
目的別データストアでは、
アプリケーション
│
├─ トランザクション
│ ↓
│ RDS / Aurora
│
├─ インメモリ処理
│ ↓
│ ElastiCache
│
└─ 検索
↓
OpenSearch Serviceのように、アクセスパターンごとに異なるサービスを組み合わせることがあります。
これは、
どれが最も優れたデータベースかを選ぶ問題ではありません。
この処理では
何が最も適切かを選びます。
ただし、複数サービスをどのように接続し、キャッシュ、バッファ、レプリカなどを含めた全体アーキテクチャへ組み立てるかは、個々のサービス選択とは別に考えます。
18. 混同ポイント
| 混同 | 正しい判断 |
|---|---|
| JSONならDocumentDB | JSON形式だけでは決めず、アクセスパターンを見る |
| NoSQLではACID不可 | DynamoDBやDocumentDBにもトランザクション機能がある |
| 高速ならDynamoDB | データモデルとアクセス方法を先に確認 |
| タイムスタンプがあればTimestream | 時系列アクセスが中心か確認 |
| 関係があればRDS | 多段の関係探索が中心ならNeptuneを評価 |
| CassandraもNoSQLなのでDynamoDBへ移行 | Cassandra互換性 / CQLが必要ならKeyspacesを評価 |
| 検索条件が多いならRDS | 全文検索・関連度検索ならOpenSearchを評価 |
| ElastiCacheは単なるキーバリューDB | インメモリデータ構造と超低レイテンシーが主要な判断条件 |
| Timestream for LiveAnalyticsは新規顧客も利用可能 | 2025年6月20日以降、新規顧客アクセスは停止 |
| 1システムにつきDBは1種類 | アクセスパターン別に複数の目的別データストアを利用できる |
19. SAP-C02での判断フロー
データ要件
↓
主要なデータモデルは?
│
├─ リレーショナル
│ ↓
│ 必要なエンジン / 互換性
│ ↓
│ RDS / Aurora
│
├─ キーバリュー
│ ↓
│ DynamoDB
│
├─ ドキュメント
│ ↓
│ MongoDB互換性が必要?
│ ↓
│ DocumentDB
│
├─ グラフ
│ ↓
│ 関係探索が中心?
│ ↓
│ Neptune
│
├─ ワイドカラム
│ ↓
│ Cassandra / CQL?
│ ↓
│ Keyspaces
│
├─ 時系列
│ ↓
│ タイムスタンプ + 時間窓クエリ?
│ ↓
│ Timestream候補
│ ※利用可否も確認
│
├─ インメモリ
│ ↓
│ 超低レイテンシーと
│ インメモリデータ構造?
│ ↓
│ ElastiCache
│
└─ 検索
↓
OpenSearch Service
↓
主要なアクセスパターンと一致するか?
↓
既存エンジン / APIとの互換性は?
↓
レイテンシー / スケール / 整合性要件を満たすか?
↓
目的に合ったデータストアを選択最初からサービス名を決めるのではなく、
データモデル
↓
データアクセスパターン
↓
クエリ要件
↓
互換性
↓
性能要件
↓
サービス選択の順で絞り込みます。
まとめ
目的別データベース選択で最も重要なのは、
データの種類
ではなく
データを
どう扱うかまで見ることです。
代表的な判断は、
リレーショナル / SQL / 結合
→ Amazon RDS / Amazon Aurora
既知のキーによるアクセス
→ Amazon DynamoDB
MongoDB互換ドキュメント
→ Amazon DocumentDB
高度に接続された関係
→ Amazon Neptune
Cassandra / CQL / ワイドカラム
→ Amazon Keyspaces
時系列
→ Amazon Timestream
インメモリ
→ Amazon ElastiCache
全文検索 / 検索
→ Amazon OpenSearch Serviceです。
そして、
JSONだからDocumentDB
ACIDだからRDS
タイムスタンプがあるからTimestream
高速だからDynamoDBのような単独条件で決めません。
データモデル
+
データアクセスパターン
+
互換性
+
クエリ要件
+
性能要件を合わせて判断します。
主要AWS公式資料
AWS Certified Solutions Architect - Professional試験ガイドでは、タスク2.5の対象知識として「目的別データベース」、対象スキルとして必要なタスクに特化したサービスを選択するための方法論が明記されています。
AWS Database Decision Guideでは、Amazon RDS、Amazon Aurora、Amazon DynamoDB、Amazon DocumentDB、Amazon Neptune、Amazon Keyspaces、Amazon ElastiCache、Amazon Timestreamなどをデータモデルやデータアクセスの観点から比較しています。
理解確認
このページの内容を10問で確認します。
理解確認10問へ →