はじめに
AWS Solutions Architect Associate (SAA) の学習中に整理した Neptune / Redshift / DocumentDB / Timestream などのデータベースサービスの知識をまとめました。
SAA では「この要件にはどのデータベースを選ぶか」というサービス選択問題が頻出です。各サービスの特徴とシグナルワードを押さえておけば、迷わず正解にたどり着けます。
本記事は個人の学習ノートをベースにしています。誤りがあればコメントでご指摘いただけると助かります。
サービス概要
AWS データベースの用途別使い分け
| サービス | タイプ | 最適なユースケース |
|---|---|---|
| DynamoDB | Key-Value / Document | 高頻度ルックアップ、セッション管理 |
| Aurora / RDS | リレーショナル(SQL) | OLTP、トランザクション処理 |
| Redshift | データウェアハウス(OLAP) | 大規模分析(SQL) |
| Neptune | グラフ DB | 関係性クエリ(友達の友達、ソーシャルグラフ) |
| DocumentDB | ドキュメント(MongoDB 互換) | MongoDB 互換ワークロード |
| Timestream | 時系列 | IoT、モニタリング、産業テレメトリー |
| OpenSearch | 検索 / 分析 | ログ分析、全文検索 |
| ElastiCache | インメモリ | キャッシュ、リーダーボード |
Neptune(グラフ DB)を選ぶシグナル
以下のキーワードが問題文に出てきたら Neptune を選びましょう。
- 「友達の友達」
- 「関係性」「接続されたデータ」
- 「ソーシャルネットワーク」
- 「レコメンデーションエンジン」
- 「不正検出」
- 「ナレッジグラフ」
試験で問われる設計パターン
高度に接続されたデータ → Neptune
シナリオ: ソーシャルネットワークアプリケーションで「友達の友達」や「3次つながりのユーザー」を効率的に検索したいです。数十億の関係性をミリ秒レイテンシーでクエリする必要があります。どのデータベースが最適でしょうか?
正解: Amazon Neptune
- 数十億の関係性をミリ秒レイテンシーでクエリ可能
- Redshift はデータウェアハウス(OLAP 向け)
- Aurora は JOIN が多くなり非効率
- OpenSearch は検索 / ログ分析用
DB サービスの使い分け(頻出パターン)
試験では「この要件にどの DB を選ぶか」が繰り返し問われます。以下のマッピングを覚えておくと即座に判断できます。
- 「NoSQL + 高頻度 + サーバーレス」→ DynamoDB
- 「リレーショナル + グローバル」→ Aurora Global Database
- 「グラフ / 関係性」→ Neptune
- 「時系列」→ Timestream
- 「全文検索」→ OpenSearch
- 「キャッシュ」→ ElastiCache
- 「大規模分析(OLAP)」→ Redshift
- 「MongoDB 互換」→ DocumentDB
おわりに
これらのデータベースは、問題文中のシグナルワード(「関係性」「時系列」「全文検索」など)に注目すれば、正しいサービスをすぐに選べます。各サービスの詳細な機能よりも「どのユースケースにどのサービスが対応するか」を整理しておくことが、試験対策として最も効果的です。
間違いや補足があればぜひコメントで教えてください。