Amazon Athena
S3 上で直接 SQL
サーバーの構築やデータのロードなしに、S3 にあるデータに対して直接 SQL クエリ(Trino/Presto)を実行します。schema には Glue Data Catalog を使います。
- コスト$ 安い
- 難易度●●●●●
- 未使用でも課金?いいえ
- サーバーレス
- 出題試験CLF · SAA · SOA
たとえるなら別の帳簿に書き写さずに、資料庫の中で直接調べるようなものです。
いつ使う?
✓ 使うべき場面
S3 上でのアドホック分析やログ(CloudTrail、ALB、VPC Flow Logs)のクエリ。
✗ 避けるべき場面
継続的な BI レポート、高頻度の複雑なクエリ → Redshift。
よくある使い方
- S3 上の CloudTrail/ALB ログのクエリ
- data lake の簡易分析
- 他のソースへの federated クエリ
料金はいくら?
- 課金方式: クエリごとにスキャンしたデータ量(または事前予約した capacity)に応じて課金されます。
大きな CSV に SELECT * を実行するとすべてスキャンされます。Parquet、圧縮、パーティションを使ってスキャン量を減らしましょう。
「サーバー管理やデータロードなしで S3 のログに対してアドホック SQL」なら Athena (Parquet とパーティションでコスト削減)、「頻繁な BI 向けのデータウェアハウス」なら Redshift を選びます。
よくある質問
Athena の料金体系は? コストを下げるには?
Athena はクエリがスキャンしたデータ量に対して課金され、時間やサーバーでは課金されません。安く速くするには、データを列指向形式 (Parquet、ORC) で圧縮して保存し、日付など頻繁に絞り込む項目でパーティション化して、必要な部分だけをスキャンさせます。大きなテーブルへの SELECT * は避けます。
Athena は Redshift と何が違いますか?
Athena は S3 上のデータを直接クエリするサーバーレスのアドホック分析で、データのロードが不要なため、たまに行う分析やログ分析に向きます。Redshift は事前にロードして最適化したデータを持つデータウェアハウスで、BI、ダッシュボード、複雑で高頻度のクエリ、多数の同時ユーザーに向きます。併用も可能で、Redshift Spectrum も S3 を読み取れます。
Athena の実行に必要なものと、結果の保存先は?
S3 上のデータと、通常は Glue Data Catalog にあるテーブル定義が必要です。各クエリの結果は指定した S3 バケットに書き出されます。ワークグループでユーザーを分け、スキャン量の上限設定やコスト追跡ができ、フェデレーテッドクエリで S3 以外のデータソースにもアクセスできます。
関連サービス
SAA-C03 対策
Athena は次の対策モジュールで扱っています: