FOR PRACTITIONERS実務向け

Nデータ・AI・移行段3基盤層設計

分析サービスの選び方|Athena・Redshift・EMR・Glue を頻度とクエリの形で使い分ける設計

分析サービスの選び方|Athena・Redshift・EMR・Glue を頻度とクエリの形で使い分ける設計

分析基盤を任されると、Athena・Redshift・EMR・Glue が並んで出てきます。どれも「データを分析するサービス」に見えるため、どれがクエリ用で、どれが変換用で、選ぶと何を自分で運用することになるのかを言葉にできないまま、名前の印象で決めてしまいがちです。この記事では、4 つを役割で 2 つに分け、要件から選ぶ軸を整理します。

この記事の結論

  • Glue は変換とカタログを担う「作る側」です。Athena と Redshift は SQL で答える側、EMR は自前のコードで大規模処理をする側です。
  • たまに・アドホックに S3 を引くなら Athena です。サーバーを持たずに始められます。
  • 多数のソースを集めて結合の多いクエリを日常的に回すなら、データウェアハウスの Redshift が向きます。
  • Spark などを自前のコードで細かく制御したいなら EMR です。ただし決める設定と持つものが増えます。
  • 実務では組み合わせます。同じ S3 と Glue Data Catalog を、Athena・EMR・Redshift Spectrum が共有できます。
  • 判断軸は「クエリの頻度と形」「データの構造」「運用で持てる範囲」「コストの出方」の 4 つです。

分析サービスの選び方は何を軸にするのか

最初にやることは、サービスの名前を並べることではなく、役割で 2 つに分けることです。

  • クエリを受ける側(答える側): Amazon Athena、Amazon Redshift。人や BI ツールが SQL を投げ、結果を返します。
  • データを作る側(用意する側): AWS Glue(変換とカタログ)、Amazon EMR(自前のコードによる大規模処理)。生のデータを分析しやすい形に整えます。

この区別だけで、「Glue でクエリを引こうとする」「Athena で重い変換を回そうとする」といった種類違いの選択を避けられます。Glue が提供する Data Catalog は、表の名前と列の定義を持つ台帳で、答える側のサービスがここを参照します。データレイクとして S3 に置く形そのものは「データレイクとは」の記事で扱っているので、ここでは触れません。

READ ALSO — 実務向け・段3 基盤 データレイクとは何か|S3・Glue Data Catalog・Athena の基本形と、データウェアハウスとの違い

そのうえで、選ぶときに見る軸は 4 つです。

軸 問い
クエリの頻度と形 たまにか、毎日か。単純な絞り込みか、結合の多い集計か
データの構造 S3 のファイルのままか、複数のソースを集めて整理し直すか
運用で持てる範囲 クラスターやノードの構成を自分で決めて持てるか
コストの出方 クエリごとに払うか、確保した計算資源に対して払うか

料金の具体額は変わるので、この記事には書きません。比較するときは公式の料金ページで、自分のクエリ量を置いて試算してください。

WHICH ENGINE頻度と形で選ぶ

クエリの頻度と形で、答える側を選ぶ

クエリの形

たまに × 単純 → Athena

S3 を直接引く。運用なし

日常 × 結合が多い → Redshift

多ソースを集めた定常クエリ

たまに × 結合が多い → Athena から

頻度が増えたら Redshift を足す

自前コードで制御 → EMR

Spark などの構成を自分で決める

クエリの頻度

出典: Amazon Athena ユーザーガイド(Athena・EMR・Redshift の使い分け)

Athena を選ぶのはどんなときか

Amazon Athena は、S3 に置いたデータを SQL で直接分析できるサーバーレスのクエリサービスです。クラスターを用意せず、S3 のデータと Data Catalog の表定義があればクエリを投げられます。

向くのは次のような場面です。

  • 月に数回、調査や集計のために S3 のログや CSV を引きたい(アドホックな分析)
  • 分析用の専用基盤を作る前に、まずデータの中身を確かめたい
  • 運用担当を置けない、または置きたくない

選ぶ理由は「何も運用しなくて済む」ことと「始めやすい」ことに尽きます。データを別の場所へロードし直さなくても、置いてある場所のまま引けます。

一方で、Athena は S3 のファイルを読んで答えます。ファイルの形式やパーティションの切り方がクエリの効率とコストを左右します。このスキャン量の仕組みは別の記事にまとめているので、そちらに送ります。

READ ALSO — 実務向け・段3 基盤 Athena のクエリが S3 を読む仕組み|パーティション・列指向形式・スキャン量で「速さと料金」が決まる理由

CHECK 1ここまでの確認

月に数回、S3 に溜まったログを SQL で調べたいだけのとき、最初に検討するのはどれか?

答えと解説

答え: 1. Amazon Athena

Athena は S3 のデータを直接 SQL で引け、サーバーを持たずに始められます。「Athena を選ぶのはどんなときか」の章を読み直してください。

Redshift を選ぶのはどんなときか

Amazon Redshift は、大量の構造化データに複雑な分析クエリを回すためのデータウェアハウスで、ペタバイト規模までを対象にしたマネージドサービスです。構成には、容量を確保して使う provisioned と、Serverless があります。

向くのは次のような場面です。

  • 業務データベースや各種ログなど、多数のソースを一か所に集めて分析したい
  • テーブル同士の結合が多い集計を、日常的・定常的に回す
  • 同じ集計を BI ツールから繰り返し呼ぶ

データウェアハウスは、分析クエリが速く返るようにデータを整理して持つ設計です。複雑な結合を日常的に回す用途では、この整理が効いてきます。そのぶん、データを取り込む工程(ロード)と、テーブル設計をどうするかを考える責任が生まれます。分散や並び順の細かい設計はこの記事では扱いません。

また、Redshift に全部を置く必要はありません。直近の使用頻度が高いデータは Redshift に、年に数回しか使わない古い履歴は S3 に置いたまま、Redshift Spectrum の外部テーブルとして参照する、という分担ができます。ロードせずに参照できるので、まれにしか触らない履歴のために Redshift の容量を使わずに済みます。

CHECK 2ここまでの確認

多数のソースを集め、結合の多い集計を毎日定常的に回す場合、中心に置く候補はどれか?

答えと解説

答え: 1. Amazon Redshift

複雑な結合を日常的に回す用途はデータウェアハウスである Redshift の得意分野です。「Redshift を選ぶのはどんなときか」の章を確認してください。

EMR と Glue は何を担うのか

ここからは、答える側ではなく「作る側」です。

Amazon EMR:自前のコードで大規模処理する

Amazon EMR は、Hadoop や Spark などのフレームワークを動かすマネージドなクラスタープラットフォームです。処理の中身を自分のコードで書き、クラスターの構成も自分で決めたい場合に向きます。

  • 既存の Spark / Hadoop の資産をそのまま動かしたい
  • フレームワークの設定や拡張を細かく制御したい

自由度が高い反面、ノードの構成や設定を決める責任が増えます。クラスター管理をしたくない場合は、サーバーレスで Spark を動かせる EMR Serverless という選択肢もあります。使っていない時間のクラスターを持ち続ける無駄を避けたいときの見直し先になります。

AWS Glue:サーバーレスの ETL とカタログ

AWS Glue は、データを抽出・変換・ロード(ETL)する処理をサーバーレスで実行できるサービスです。あわせて、表の定義を持つ Data Catalog も提供します。

  • 形式の違うデータを整えて S3 に書き出す(スケジュール実行もできる)
  • クローラーで S3 のデータからスキーマを推定し、Data Catalog に表として登録する

Glue は「答える」サービスではありません。Athena や Redshift Spectrum が読む表を整え、Data Catalog に登録する、データの用意役です。

Glue と EMR の選び分け

どちらも変換処理ができるため迷いやすいところです。目安は次のとおりです。

  • 構成を持たずに ETL を回したい、カタログも一緒に欲しい → Glue
  • 自前のフレームワークの制御や既存資産の持ち込みが必要 → EMR

Glue で足りる処理に EMR を選ぶと、持たなくてよい構成を持つことになります。

CHECK 3ここまでの確認

Spark のコードを自分で書いて、処理の構成まで細かく制御したいときに向くのはどれか?

答えと解説

答え: 2. Amazon EMR

自前のコードとフレームワークを制御したいなら EMR です。ただし構成を決める分、持つものが増えます。「EMR と Glue は何を担うのか」の章に戻ってください。

組み合わせ方:S3 と Data Catalog を共有する 3 つの型

実務では 1 つに絞らず、S3 を土台にして Data Catalog を共有する形が基本です。Glue Data Catalog を共通のメタデータストアにすると、Athena・EMR・Redshift Spectrum が同じ S3 のデータを同じ表定義で読めます。サービスごとにテーブル定義を持つと、列を足したときに食い違いが出るため、定義を一か所に寄せる意味があります。

SHARED FOUNDATION共有する土台

土台はS3 と Data Catalog、上に変換と答える側を足す

Athena 中心

  • Amazon S3 — データそのものの置き場
  • Glue Data Catalog — 表と列の定義を一か所で持つ
  • Glue / EMR — データを整える(作る側)
  • Athena / Redshift — SQL で答える(答える側)

Redshift 中心

  • Amazon S3 — データそのものの置き場
  • Glue Data Catalog — 表と列の定義を一か所で持つ
  • Glue / EMR — データを整える(作る側)
  • Athena / Redshift — SQL で答える(答える側)

EMR 中心

  • Amazon S3 — データそのものの置き場
  • Glue Data Catalog — 表と列の定義を一か所で持つ
  • Glue / EMR — データを整える(作る側)
  • Athena / Redshift — SQL で答える(答える側)

自分で決めて持つ層サービスが担う層

出典: Amazon Athena ユーザーガイド、AWS Glue / Amazon EMR / Amazon Redshift のドキュメント

代表的な組み合わせは 3 つです。

  1. S3 + Glue + Athena: Glue で整えたデータを、Athena で必要なときに引く。始めやすく、運用が軽い
  2. S3 + Glue + Redshift(+ Spectrum): 日常の集計は Redshift で、まれに使う履歴は S3 に置いたまま Spectrum で参照する
  3. S3 + EMR + Athena / Redshift: 自前のコードで大規模に加工した結果を S3 に出し、答える側から引く

どの型でも「データは S3、表定義は Data Catalog」が共通の土台です。誰がどの列を読めるかという権限の設計は、次の記事で扱います。

READ ALSO — プロフェッショナル向け・段4 設計 AWS Lake Formation とは何か|データレイクの権限を列・行・タグで一元管理し、IAM との分担を説明する

CHECK 4ここまでの確認

Athena・EMR・Redshift Spectrum から同じ S3 のデータを同じ表定義で読ませたいとき、共通に置くものは?

答えと解説

答え: 2. AWS Glue Data Catalog

Data Catalog を共通のメタデータストアにすると、表定義を一か所で持てます。「組み合わせ方」の章を読み直してください。

要件から選ぶ判断表

ここまでを、要件から引ける表にまとめます。

要件 向く選択 持つもの コストの出方
たまに・アドホックに S3 を引く Athena ほぼ無し(表定義とクエリ) クエリに対して払う形。公式の料金ページで確認
多ソースの結合が多い定常クエリ Redshift ロードの工程とテーブル設計 確保した計算資源に対して払う形。Serverless もある。公式の料金ページで確認
自前の Spark で細かく制御したい EMR クラスターの構成と設定 使った資源に対して払う形。公式の料金ページで確認
形式の違うデータを整え、カタログを作る Glue ジョブとカタログの定義 ジョブの実行に対して払う形。公式の料金ページで確認

ATHENA VS REDSHIFT答える側の違い

Athena は運用なしで始め、Redshift は定常の結合に備える

Athena

S3 を直接引く

  • 持つもの:表定義とクエリ
  • 向く要件:アドホックな分析
  • コスト:クエリに対して払う形

Redshift

整理して持つ

  • 持つもの:ロードとテーブル設計
  • 向く要件:多ソース・結合の多い定常クエリ
  • コスト:確保した計算資源に対して払う形
出典: Amazon Athena / Amazon Redshift のドキュメント。料金は公式の料金ページで確認

よくある選び間違いと見直しの合図

選び間違いは、たいてい要件ではなくサービス名の印象から始まります。

選び間違い 見直しの合図 見直し先
毎日の定常集計を、毎回 Athena で重い結合のまま回している 同じ結合のクエリが繰り返され、遅さや費用が気になってきた 日常分は Redshift に置く
まれにしか見ない古い履歴まで Redshift にロードしている 使われない履歴が容量とロードの手間を占める S3 に置いたまま Spectrum で参照する
Glue で足りる ETL のために EMR を常時起動している 使っていない時間のクラスターの費用が目立つ Glue、または EMR Serverless
サービスごとに表定義を作っている 列を足すたびに食い違いが出る Glue Data Catalog に寄せる

迷ったら、S3 に置いて Athena から始め、クエリの頻度と結合が増えたら Redshift を足す、という順が無理のない進め方です。最初から全部を揃える必要はありません。

Cloudory 執筆者(AWS 認定 全冠)

「Athena か Redshift か」は二者択一の問いではなく、置き場(S3)と台帳(Data Catalog)を共通にしたうえで、答える側を足していく順番の問いです。最初の一歩を軽くしておけば、後から役割を足すときの手戻りが小さくなります。

参照ソース

SCOREこの記事の確認テスト

0/4問 正解

各章の「ここまでの確認」に答えると、ここに集まります。結果はこの端末のブラウザにだけ残り、サーバには送りません。

PRACTICEこの記事の論点を練習問題で確かめる

この記事が扱うサービスの問題だけを続けて解けます。練習問題は Google でログインした人が使えます(練習問題の一覧)。

HAND IT OVER人に渡すなら

一言で説明するなら

Athena は倉庫の棚をその場で覗く虫眼鏡、Redshift は商品を整理し直して並べた専用の売り場、EMR は自前の工房、Glue は搬入と棚札の係。やりたい仕事で道具を選びます。

FAQよくある質問

Athena と Redshift はどちらが安いですか?

一概には言えません。料金の出方が違い、クエリの量と頻度で有利な側が入れ替わります。想定するクエリの量と回数を置いて、公式の料金ページで試算してください。

Glue と EMR の違いは何ですか?

Glue はサーバーレスの ETL とデータカタログを提供するサービスです。EMR は Hadoop や Spark などのフレームワークを動かすマネージドなクラスタープラットフォームで、処理の構成を自分で決められる代わりに持つ設定が増えます。

最初は何を選べばよいですか?

まず S3 にデータを置き、Athena から引くのが始めやすい形です。クエリの頻度と結合が増えて物足りなくなったら Redshift を足す、という順で考えます。

SAME TRACK同じ領域の記事

Athena のクエリが S3 を読む仕組み|パーティション・列指向形式・スキャン量で「速さと料金」が決まる理由
Athena のクエリが S3 を読む仕組み|パーティション・列指向形式・スキャン量で「速さと料金」が決まる理由 段3 基盤仕組み
データレイクとは何か|S3・Glue Data Catalog・Athena の基本形と、データウェアハウスとの違い
データレイクとは何か|S3・Glue Data Catalog・Athena の基本形と、データウェアハウスとの違い 段3 基盤とは
Amazon Bedrock とは何か|モデルの選び方・RAG・エージェント・ガードレールと SageMaker の違い
Amazon Bedrock とは何か|モデルの選び方・RAG・エージェント・ガードレールと SageMaker の違い 段3 基盤とは