AWS SAA 試験勉強(17日目)
投稿日:2026/03/17
- AWS SAAでは、単にDBの種類を知っているだけでなく、「データ構造」「アクセス頻度」「コスト」「可用性」の観点から最適な設計を選ぶ力が試されます。
1. RDB vs NoSQL の決定的な判断基準
試験問題の最初の分岐点は「関係型(RDS/Aurora)」か「非関係型(DynamoDB)」かを見極めることです。
RDS / Aurora(関係型)を選ぶべきケース
- 複雑なクエリ: 複数のテーブルを JOIN して結合する必要がある。
- トランザクション(ACID): 銀行振込のように、複数の書き込みが「すべて成功か失敗か」を保証する必要がある。
- 既存移行: オンプレミスの MySQL や PostgreSQL からの移行。
DynamoDB(NoSQL)を選ぶべきケース
- 超高スループット: 1秒間に数万件の読み書きが発生する。
- シングル桁ミリ秒の応答: どんなデータ量でも一定の高速レスポンスが求められる。
- スキーマレス: データの構造が頻繁に変わる、または単純な Key-Value 形式。
- サーバーレス: サーバー管理を一切せず、自動スケーリングさせたい。
2. RDS/Aurora の高可用性とパフォーマンス設計
高可用性:Multi-AZ 構成
- 用途: 障害復旧(ディザスタリカバリ)。
- 仕組み: スタンバイ機が別 AZ で待機し、メイン機が故障すると自動で切り替わる(同期レプリケーション)。
読み取り負荷分散:リードレプリカ
- 用途: 読み取り(Read)性能の向上。
- 仕組み: 非同期レプリケーション。最大 15 台(Aurora の場合)まで増やして、参照用クエリを分散させる。
- 注意: 可用性向上(自動フェイルオーバー)が目的の場合はリードレプリカではなく Multi-AZ を優先します。
3. キャッシュを活用した高速化パターン
データベース本体に負荷をかけず、ミリ秒以下のレスポンスを実現する手法です。
ElastiCache (Redis / Memcached)
- RDS の前段に配置: 頻繁に参照されるクエリ結果をメモリ上に保存。
- 用途: セッション情報の管理、ランキング、頻繁に変わらない商品情報など。
DynamoDB Accelerator (DAX)
- DynamoDB 専用キャッシュ: DynamoDB の前に置くことで、応答時間をミリ秒から マイクロ秒 に短縮。
- 用途: 読み取り集中型のアプリケーション(例:リアルタイムの入札システム)。
4. 特殊な用途のデータベース
試験の選択肢として「特定のキーワード」に反応できるようにしておきましょう。
- Amazon Redshift: データウェアハウス(DWH)。大量データの複雑な「分析・集計」用。
- Amazon Neptune: グラフデータベース。SNSの友人関係や不正検知など、複雑な「繋がり」を管理。
- Amazon DocumentDB: MongoDB 互換のドキュメントデータベース。
- Amazon Timestream: 時系列データベース。IoTデバイスのログや株価など、時間とともに増え続けるデータ。
5. ストレージの自動拡張とコスト最適化
Aurora Serverless
- キーワード: 「アクセス予測が困難」「開発環境などで夜間は停止したい」。
- 負荷に応じて DB の容量(ACU)が自動で増減し、使っていない時はゼロ(一時停止)にすることも可能。
RDS Proxy
- キーワード: 「Lambda からの大量接続」。
- Lambda は起動・終了が激しいため、DB へのコネクションを使い切ってしまうことがあります。Proxy を挟むことでコネクションを効率よくプールします。
試験での「判断基準」チェックリスト
- 「JOINが必要な複雑な分析クエリを実行したい」
- 回答:Amazon RDS または Aurora
- 「世界中の数百万人のユーザーから、ミリ秒以下の遅延でアクセスさせたい」
- 回答:DynamoDB(+ グローバルテーブル)
- 「既存の MySQL から移行し、運用負荷を最小限に、かつ最高性能を出したい」
- 回答:Amazon Aurora
- 「数テラバイトのログデータを集計・分析してレポートを作成したい」
- 回答:Amazon Redshift
- 「Lambda から DB への接続が多すぎてエラーになるのを防ぎたい」
- 回答:Amazon RDS Proxy
まとめ(17日目の振り返り)
- データベースの選定は「データの形」と「使い道」で決まります。
- 特に 「可用性なら Multi-AZ」「読み取り性能ならリードレプリカ / ElastiCache」「極限のスケールなら DynamoDB」 という公式は、SAA試験で確実に得点するための強力な武器になります。