導入
ここまで見てきたRDS・Aurora・DynamoDB・ElastiCacheに加え、SAAでは「大量データの分析」に特化したサービスも登場します。最後に、目的別のデータベース選択をひとつのフローにまとめます。
説明
Amazon Redshift は、フルマネージドの**データウェアハウス(DWH)**サービスです。大量データに対する複雑な集計クエリ(OLAP:分析処理)に最適化された列指向ストレージを採用しており、日次バッチのBIレポートや経営分析など、大規模な集計処理に向きます。RDS/AuroraがトランザクションDB(OLTP)に最適化されているのとは対照的です。
Amazon Athena は、S3に置いたデータへ直接SQLクエリを実行できるサーバーレスサービスです。事前にDBへロードする必要がなく、S3上のCSV/JSON/Parquetなどをそのまま分析できます。ログ分析やアドホックな調査で、DWHを構築するほどではない用途に向きます。
| 用途 | サービス |
|---|---|
| トランザクション処理(OLTP) | RDS / Aurora |
| 超高速キーバリュー(NoSQL) | DynamoDB |
| インメモリキャッシュ | ElastiCache |
| 大規模データウェアハウス(OLAP) | Redshift |
| S3上のデータへのアドホックSQL | Athena |
flowchart TD
Q1{"データの性質は?"}
Q1 -->|"構造化・トランザクション中心"| Q2{"超高速・柔軟なスキーマが必要?"}
Q2 -->|"はい"| DDB["DynamoDB"]
Q2 -->|"いいえ・複雑なJOINが必要"| RDS["RDS / Aurora"]
Q1 -->|"大量データの分析集計"| Q3{"S3に既にあるデータをそのまま分析?"}
Q3 -->|"はい・都度クエリ"| Athena["Athena"]
Q3 -->|"いいえ・継続的なDWH運用"| Redshift["Redshift"]
Q1 -->|"読み取りを爆速化したい"| Cache["ElastiCache(前段キャッシュ)"]
読んでみよう
SAAの設問では「毎回このデータベースの種類(OLTP/OLAP/NoSQL/キャッシュ/分析)を見極める」ことが第一歩です。特に「大量データを集計・分析したい」=Redshift、「S3のデータにそのままSQLをかけたい」=Athena、という対比はよく出ます。この章の5つのサービスの使い分けフローを、頭の中でいつでも再現できるようにしておきましょう。