本文へスキップ
BecomeCoder

AWS SAA(ソリューションアーキテクト)コース · 第6章 データベースの設計 · レッスン36

分析系とデータベース選択指針

導入

ここまで見てきた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
超高速キーバリュー(NoSQLDynamoDB
インメモリキャッシュElastiCache
大規模データウェアハウス(OLAP)Redshift
S3上のデータへのアドホックSQLAthena
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つのサービスの使い分けフローを、頭の中でいつでも再現できるようにしておきましょう。