Analytics

Amazon Athena

S3上のデータにサーバーレスでSQLを投げる道具。Bedrock Knowledge Basesの構造化データ検索の「実行エンジン」だと誤解されがちですが、その役はAmazon Redshiftが担っています。

  • B|実装まわり
  • D1 FM統合・データ・コンプラ
  • D3 安全性・セキュリティ・ガバナンス

ひとことで言うと

S3上のデータに対して、インフラを持たずにSQLで即座に問い合わせる対話型クエリサービスです。Glue Data Catalogをメタデータストアとして使います。

要するに、倉庫の前で開くその場限りの受付窓口です。データをどこかに運び込む必要はなく、置いてある場所(S3)のまま調べられます。ただし「窓口」であって「常設の分析基盤」ではないので、複雑な結合や恒常的な処理にはRedshiftやEMRの方が向きます。

なぜ生まれたか

Athena以前Athena導入後
S3上のデータを調べるにはクラスタを立ててロードする前処理が要ったサーバーレスでデータをロードせず、その場から標準SQLで問い合わせられる
インフラの構築・管理が調査の前段で必要だった数クリックでテーブル定義するだけで即座にクエリできる

何に使うか

用途使い方関連ドメイン
GenAIアプリの監査ログ分析CloudTrailログ・VPC Flow LogsをAthenaでSQL調査D3.3, D5.2
RAG取り込み前のS3データの簡易確認Glue Data Catalog経由でアドホックに件数・欠損を確認D1.3
BIツール連携JDBC/ODBC経由でAmazon Quickなどからレポート化D4.3
Apache Spark実行Athenaのノートブック上でSparkアプリを実行D1.3

試験でどう問われるか

問われ方正解に寄る条件引っかけ
「S3に溜めたログをその場でSQL調査したい。インフラは持ちたくない」Athena(サーバーレス・アドホック)Redshift(データウェアハウスの構築・運用が要る、常時稼働のコストもかかる)
「Bedrock Knowledge Basesで自然言語から構造化データに問い合わせたい」クエリエンジンはAmazon Redshift(Provisioned/Serverless)。データストアがGlue Data Catalogでも同じAthenaが実行すると誤答する(Knowledge Bases構造化データストアの実行エンジンはAthenaではなくRedshiftに固定)
「多数の巨大テーブルを結合する複雑な定型レポートを毎日回したい」Redshift(結合最適化されたウェアハウス)Athenaで済ませようとする(アドホック向けで、複雑な結合の常用には最適化されていない)

「Glue Data Catalogが絡む=Athena」という短絡は罠です。 Bedrock Knowledge Basesの構造化データストアは、ストレージとしてGlue Data Catalog(AWS Lake Formation経由)を選べますが、自然言語をSQLに変換して実行するクエリエンジンは常にAmazon Redshiftです。Athenaはこのワークフローには登場しません。

実務でどう使うか

実務上のポイント内容
課金モデルクエリした分だけ課金され、常時起動するクラスタのような固定費はかからない
ワークグループチームやユースケースごとにクエリのアクセス範囲やコストを分離できる
SageMaker Unified Studio連携AthenaとRedshiftの両方に対応。Amazon Q generative SQLで自然言語からSQLを生成できるが、Knowledge BasesのGenerateQueryとは別機能

取り違えやすいもの

迷う相手切り分けの一言
Amazon RedshiftAthenaはアドホック・サーバーレス。Redshiftは常時稼働のウェアハウスで、大規模結合クエリに最適化。Bedrock Knowledge Basesの構造化データ検索エンジンはRedshift側
Amazon EMRAthenaは標準SQLの問い合わせに特化。EMRはSpark・Hadoopなどカスタムコードでの大規模データ処理向け
AWS Glue Data CatalogData Catalogはメタデータの置き場。Athenaはそのメタデータを使ってS3データを実際にSQLで検索する側

想起チェック

Q1. Bedrock Knowledge Basesの構造化データストアで、自然言語の質問をSQLに変換して実行するのはどのサービス?

Amazon Redshift(Provisioned または Serverless)です。データストアにGlue Data Catalogを選んでいても、クエリエンジンはAthenaではなくRedshiftに固定されます。

Q2. S3上のログをその場でアドホック調査したいだけなのに、常時稼働のRedshiftクラスタを組むべき?

不要です。 その場限りのSQL調査は、インフラを持たないAthenaの方が適しています。Redshiftは複雑な結合や継続運用のレポーティングに向きます。

出典(AWS公式)