0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS SAA対策】分析サービス(Athena / Redshift / Glue / EMR / QuickSight / OpenSearch)まとめ ― 分析パイプラインの使い分けを整理する

0
Posted at

はじめに

AWS Solutions Architect Associate (SAA) の学習中に整理した Athena / Redshift / Glue / EMR / QuickSight / OpenSearch などの分析サービスの知識をまとめました。
「S3 上のデータにどうやって SQL クエリするか」「リアルタイム検索に何を使うか」「MPP + サーバーレスは?」など、サービス選択の問題が頻出です。

本記事は個人の学習ノートをベースにしています。誤りがあればコメントでご指摘いただけると助かります。


サービス概要

分析 / ML 関連サービスの比較

サービス タイプ MPP サーバーレス SQL ベース ML
Redshift Serverless DWH ✅(Redshift ML)
Redshift(プロビジョニング) DWH
Athena クエリエンジン △(Athena ML)
RDS / Aurora OLTP DB △(Aurora ML)
EMR ビッグデータ処理 ❌(コード必要)
OpenSearch 検索 / 分析 - -

S3 データへの SQL クエリ方法

方法 サーバーレス データ移動 コスト メンテナンス
Athena 不要 最低(スキャン量課金) 最小
Redshift 必要 高い 高い
Redshift Spectrum ❌(クラスタ必要) 不要
EMR + SparkSQL 必要 中〜高 高い

S3 上のデータに最もコスト効率よくクエリするなら Athena です。


検索 / 分析サービス

サービス リアルタイム検索 全文検索 主な用途
OpenSearch ログ分析、リアルタイム検索
Athena ❌(バッチ) S3 アドホッククエリ
Redshift ❌(DWH) 大規模分析(OLAP)
DynamoDB Key-Value

Athena

  • S3 上のデータに直接 SQL クエリ
  • サーバーレス(インフラ管理不要)
  • 従量課金(スキャンデータ量のみ)
  • 圧縮形式(Parquet、ORC)を直接クエリ可能

Glue

  • サーバーレス ETL
  • スキーマ変換には使えない(DMS の SCT を使う)

AI / ML サービスの対象データ型

サービス 対象 用途
Textract ドキュメント(PDF、画像) OCR、テーブル・フォーム抽出
Comprehend テキスト 感情分析、エンティティ抽出
Rekognition 画像・動画 顔認識、物体検出
Transcribe 音声 音声 → テキスト変換
Translate テキスト 翻訳
SageMaker 任意 カスタム ML モデル

試験で問われる設計パターン


サービス選択系

サーバーレス + MPP + SQL ベース ML → Glue + Redshift Serverless + Redshift ML

シナリオ: データの ETL、大規模分析、SQL での ML モデル構築をすべてサーバーレスで実現したいです。どの構成が最適でしょうか?

正解: AWS Glue → Redshift Serverless → Redshift ML

  • Redshift Serverless = MPP サーバーレス
  • Redshift ML = SQL で ML モデル(Python コード不要)
  • Athena は MPP ではない
  • RDS / Aurora は OLTP

S3 上のデータに SQL クエリ + コスト効率 + メンテナンス最小 → Athena

シナリオ: S3 に保存されたデータに SQL でアドホッククエリしたいです。コスト効率とメンテナンスの手間を最小にする方法は?

正解: Amazon Athena

  • サーバーレス、データ移動不要
  • Redshift / EMR / RDS はデータ移動 + インフラ管理が必要

Redshift コールドデータ + SQL クエリ維持 + コスト最小 → S3 Standard-IA + Athena

シナリオ: Redshift に保存されている30日以上アクセスのないコールドデータのコストを削減したいです。SQL クエリは引き続き必要です。

正解:

  1. 30日後に S3 Standard-IA に移動
  2. Athena で分析
  • Redshift にストレージクラスの概念はない
  • Glacier は即時クエリ不可

リアルタイム分析系

リアルタイム検索 + 分析プラットフォーム → Kinesis + OpenSearch + QuickSight

シナリオ: ストリーミングデータをリアルタイムで検索・分析し、ダッシュボードで可視化したいです。

正解: Kinesis Data Streams → OpenSearch → QuickSight

  • OpenSearch = リアルタイム検索 + 分析
  • Athena はバッチクエリ
  • DynamoDB は全文検索に対応していない

リアルタイムストリーミング分析パイプライン → Kinesis + Data Analytics + Firehose + S3

シナリオ: ストリーミングデータをリアルタイムで SQL 分析し、結果を S3 に保存したいです。

正解: Kinesis Data Streams → Kinesis Data Analytics → Kinesis Data Firehose → S3

  • Data Analytics がリアルタイム SQL 分析を担当
  • Athena はバッチクエリ
  • QuickSight は Kinesis Data Streams をソースとして直接使用できない

データレイク系

データレイクのコスト最適化 → Raw: Glacier Deep Archive / Refined: 圧縮形式

シナリオ: データレイクの Raw Zone(5年間の保持義務)と Refined Zone(アドホッククエリ用)のコストを最適化したいです。(2つ選択)

正解:

  1. Raw Zone を1日後に Glacier Deep Archive
  2. Refined Zone を Glue ETL で圧縮形式(Parquet / ORC)に変換
  • Athena は圧縮形式を直接クエリ可能

おわりに

分析サービスの選択は「S3 にクエリ → Athena」「MPP + サーバーレス → Redshift Serverless」「リアルタイム検索 → OpenSearch」「ETL → Glue」という判断パターンで整理できます。特に Athena の「サーバーレス + スキャン量課金 + データ移動不要」という特徴は、コスト最適化の問題で非常に高い頻度で問われます。

間違いや補足があればぜひコメントで教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?