「S3にあるデータをすぐに分析したい」「環境構築なしでSQLを使いたい」——そんなときに役立つのがAmazon Athenaです。
Athenaは、データを移動せずその場でSQL分析できるサーバーレスのクエリサービス。特にログ分析や一時的なデータ探索、データレイク活用に強みがあります。一方で、低レイテンシーが求められる常時クエリ用途には向きません。
この記事では、Athenaの仕組みからメリット、使いどころ、他サービスとの違い、料金や注意点までをコンパクトに整理して解説します。
Athenaのメリット
Athenaの最大のメリットは、「低コストで」「安全に」「素早く」S3などの外部データソースの情報を検索できることにあります。
S3のデータを検索できる
S3に保存されているファイルの中身に対して、検索機能を付与することができます。S3へ保存するデータの形式は、csvやtsv、jsonなど様々なものに対応しています。
S3へは、様々なファイルを保管することができますが、ファイル内のデータを活用しようとすると結構な手間がかかります。
たとえば、日ごとに売上データが作成され、1つのファイルとして保存される場合を考えています。データの集計をしたい場合、全てのファイルをダウンロードして、Excel等へマージさせて集計作業を行う必要があります。1ファイルであればよいですが、数十、数百ファイルとなるとかなり大変です。Athenaを使うことで、ダウンロード当の手間がなく、売上データの取得や集計が可能になります。
標準SQLが使えるので学習コストが低い
データの検索には、標準SQLが利用可能です。単一テーブルの検索はもちろん、複数テーブルの結合や集計なども可能です。
開発者や多くのエンジニアにとってSQLは身近なスキルとなっています。そのSQLを使って検索できるため、独自の言語を学習するためのコストがかかりません。
サーバレスなので利用コストが低く素早く利用が可能
Athenaはサーバレスなアーキテクチャを採用しています。利用するために、サーバーや構成の管理の手間が不要で、手軽に利用できます。
サーバレスなため、使った分だけの完全従量課金となっています。
AWS共通のセキュリティ基準なので安全
Athenaには、データの暗号化やアクセス制御などの機能が提供されており、安全に利用することが可能です。
Athenaを使ってできること
データ分析
Athenaでは標準SQLを使って、S3に保存されたデータを分析することができます。フィルタリングや集計などをSQLにて手軽に行うことができるので、S3へ保存されたビジネスデータから有用な情報を抽出し洞察を得ることができます。
データのETL(Extract, Transform, Load)処理
Athenaを使うことで、データを抽出して加工し、S3に格納するETL(Extract, Transform, Load)処理を実行することができます。
ログ分析
S3に保存されたアプリケーションやインフラストラクチャのログデータを分析することができます。CloudFrontやALBのアクセスログはS3へ保存されます。ログファイルは細切れに保存され、相当なファイル数になります。そのため、ログの解析が必要な場合にダウンロードして従来のように解析するのが難しくなります。Athenaを利用することで、アクセスログなど定型的な出力形式のログの分析が可能になるため、システムのトラブルシューティングやパフォーマンスの最適化などのタスクを実行することができます。
他のサービスとの連携
Athenaは他のAWSサービスとも連携することができます。
データソースとしては、S3と連携することで、バケット内に保存されたデータを直接分析が可能です。Amazon RedShiftと連携させて、クラスタ上のデータの分析もできます。Amazon EMRで処理されたデータを対象にすることも可能です。
ETL処理では、Amazon Glueと連携させることで、より高度なETL処理を実行することができます。
分析結果をAmazon QuickSightと連携させることで、グラフィカルに分析結果を表現することが可能です。
Athenaのメリット
Athenaは、データのクエリ実行量に応じて課金されます。一般的に、Athenaでは以下のような課金要素があります。
- データ読み取り
クエリを実行するたびにS3上のデータが読み取られます。この読み取り料金はデータのサイズに応じて異なります。
- ストレージ
クエリ結果などの中間データがS3上に保存されます。このストレージ料金はデータのサイズや保存期間に応じて異なります。
- クエリ実行数
クエリを実行するたびに課金されます。この課金額はクエリの実行時間や実行回数に応じて異なります。
また、無料枠も提供されており、その枠を超過した分が課金対象となります。
Athenaの使い方
Athenaの使い方について説明していきます。
- 1.データの用意
S3に解析したいデータを保存します。データはcsvやtsv、jsonなど様々な書式が対応していますが、一つに統一されている必要があります。ファイルは特定のフォルダに保存する必要があり、1ファイルでも複数ファイルでも構いません。
- 2.テーブルの定義
データの保存が完了したら、S3の特定フォルダを一つのテーブルに見たててSQLを実行することになります。そのために、Athenaからテーブルの定義を行います。
- 3.クエリを投げる
テーブルの定義が完了したら、標準SQLでクエリが可能です。クエリを実行すると、S3上のデータをスキャンして分析結果を生成します。
- 4.分析結果を確認する
分析結果はAthenaのコンソールに表示されます。必要な確認を行いましょう。また、分析結果はCSV形式等でダウンロードも可能です。
Athenaを利用する上での注意点
最後にAthenaを利用するうえでの注意点をまとめておきます。
- データフォーマット
データをS3上に保存する必要があります。AthenaでサポートされているデータフォーマットはCSV、JSON、ORC、Parquetなどです。これら以外のフォーマットはサポートされていない場合がありますので、注意が必要です。
- クエリパフォーマンス
Athenaは分散型のシステムではありません。このため、大量のデータや複雑なクエリを実行する場合、クエリパフォーマンスに問題が生じる場合があります。このため、Athenaを使う上ではクエリの最適化などにも注意が必要です。
- セキュリティ
S3上のデータにアクセスするためにIAMユーザーを使用します。このため、Athenaを使う上ではIAMユーザーのアクセス権限や認証情報なども注意する必要があります。
- データの一貫性
S3上のデータを参照するため、データの一貫性にも注意が必要です。このため、Athenaを使う上ではデータのバックアップや復旧なども注意する必要があります。
関連するFAQ
Q. Amazon Athenaとは何ですか?
A. AWSが提供するサーバーレスのクエリサービスで、S3に保存されたデータを標準SQLで直接分析できます。
Q. Athenaはどんなときに使うべきですか?
A. S3上のログ分析、アドホックなデータ探索、データレイクのクエリに向いています。逆に、低レイテンシで頻繁にクエリを実行する業務システム用途には不向きです。
Q. Athenaの最大のメリットは何ですか?
A. インフラ構築不要で、S3のデータを移動せずにそのまま分析できる点です。従量課金のためコストも抑えやすいのが特徴です。
Q. RedshiftやBigQueryとの違いは?
A. Redshiftは常時稼働型のデータウェアハウスで高速な定常分析に強く、Athenaはクエリ実行時のみ課金される軽量な分析向けです。BigQueryもサーバーレスですが、GCP前提のエコシステムである点が主な違いです。
Q. どんなデータ形式に対応していますか?
A. CSV、TSV、JSON、ORC、Parquetなどに対応しています。特にParquetなどの列指向フォーマットはコスト削減に有効です。
Q. 料金はどのように決まりますか?
A. クエリ実行時に読み取ったデータ量に応じて課金され、目安は「1TBスキャンあたり約5ドル」です。Parquet形式やパーティション設計を使うことでスキャン量を減らし、コストを抑えられます。
Q. 料金が高くなるケースは?
A. 不要な列までSELECTしている、パーティション未設計で全データをスキャンしている、CSVなど非圧縮フォーマットを使っている場合にコストが増えやすいです。
Q. 利用時の注意点はありますか?
A. データフォーマットの適合、クエリ最適化(特に大規模データ)、IAMによるアクセス制御、データの一貫性管理に注意が必要です。
まとめ
Athenaを使うことで、S3に保存されているデータを標準SQLを使って分析することが可能になります。既存のSQLの知識が利用できるため学習コストが低く、サーバレスなので利用コストも抑えることが出来ます。QuickSightなどのBIツールと連携することで、分析結果をビジュアル化することも可能です。
ログデータを情報として取得できるサービスなので、ぜひトライしてみましょう。
また、AWS全体について気になる方は「AWSとは?初心者の人にもわかりやすく解説」もご覧ください。