導入
ここまで見てきた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(前段キャッシュ)"]
具体例
1つの通販企業のデータ基盤に、この章の5サービスが役割分担して同居します。要件ごとに担当が決まります。
| やりたいこと | データの性質 | 選ぶサービス |
|---|---|---|
| 注文・在庫・会計を整合性を保って処理 | トランザクション(OLTP)・複雑なJOIN | RDS / Aurora |
| ショッピングカートを超高速・大量に読み書き | 単純キー・桁違いのスケール(NoSQL) | DynamoDB |
| 人気商品ランキングの表示を爆速化 | 読み取りの前段キャッシュ | ElastiCache |
| 3年分の売上を多角的に集計・BI分析 | 大規模集計(OLAP) | Redshift |
| S3に置いたアクセスログを今すぐSQLで調べたい | S3上のデータへ都度クエリ | Athena |
「万能な1つ」を探すのではなく、データの性質(OLTP/NoSQL/キャッシュ/OLAP/S3アドホック)を見極めて振り分けるのがSAAの第一歩。特に「大量データの集計=Redshift、S3にそのままSQL=Athena」の対比は頻出です。この判断フローを頭の中で再現できるようにしておきましょう。
読んでみよう
SAAの設問では「毎回このデータベースの種類(OLTP/OLAP/NoSQL/キャッシュ/分析)を見極める」ことが第一歩です。特に「大量データを集計・分析したい」=Redshift、「S3のデータにそのままSQLをかけたい」=Athena、という対比はよく出ます。この章の5つのサービスの使い分けフローを、頭の中でいつでも再現できるようにしておきましょう。