Athenaの特徴とメリット
Athenaは、標準的なSQLを使って、Amazon S3に保存されたデータを直接分析できるサーバーレスのクエリサービスです。
導入の際によくデータウェアハウス「Amazon Redshift(以下Redshift)」と比較されますが、Athenaはサーバーレスなのでインスタンスサイズを選ぶ必要がなく、クラスターの運用・監視も必要ありません。インフラ面でのチューニングの余地は少ないですが、ユーザーは「クエリを投げて結果が返ってくる」という本質的な作業に集中できるのがメリットです。
また、CSV、JSON、Parquet、ORCといった一般的なデータ形式に対応しているので、S3に保存されてさえいれば、データを別の場所に移動したり、変換したりする必要がありません。
コスト面では完全な従量課金制を採用しており、クエリで処理したデータ量に応じた料金のみが発生します。他のサーバーレスサービスでも見られるような最低限の固定費用すら発生しないため、特に利用量が変動するケースで大きなメリットとなります。
S3との組合せで多様な用途に対応可能
Athenaが特に適しているのは、システム系の分析タスクです。システムログの分析や利用状況の集計など、目的が明確な分析作業において、非常に使いやすいサービスです。
冒頭で紹介したGeolonia様のように、課金システムの実装に際してAPIの利用履歴から料金を計算するといったケースでよく利用されます。こうしたWebサービスにとって、課金機能そのものは本質的なビジネス機能ではありませんが、請求ミスは信頼性に直結するため正確な計算が必要です。Athenaはシンプルですが信頼性が高いサービスなので、S3に保存された利用ログに対してSQLクエリを実行するだけで、こうした課金サービスにおいて必要なデータを取得できます。
また、システムに組み込む用途だけでなく、「今月の売上データを地域別に集計したい」「特定の期間のユーザー行動を分析したい」といったアドホックな分析ニーズにも適しています。このような単発的な分析であれば、本格的なデータウェアハウスを構築するまでもなく、S3にデータを溜めておくだけで、Athenaで十分に対応できます。
SQLの知識があれば、ETL処理のようなある程度のデータ加工も可能です。ただし、あくまでもシンプルなものであり、複雑なETL処理が必要な場合はより本格的なツールの利用を検討する必要があります。
RedshiftとAthenaの比較
先述したRedshiftは、AWSが提供する高性能なデータウェアハウスです。高度なデータ分析や複雑なクエリの実行に特化しており、複数のユーザーが同時にクエリを実行しても高速なパフォーマンスを維持できます。
では、RedshiftとAthenaはどのように使い分けるべきでしょうか。最も大きな判断基準になるのは「分析基盤を作りたいのか、特定の機能を実装したいのか」という点です。プロジェクトの規模や目的によって、以下のような観点から選択を検討します
Redshiftが適している場合
- 経営判断に使われる膨大かつ重要なデータ分析
- マーケティング分析など、高度で継続的な分析
- データサイエンティストによる本格的な分析
- 正規化された厳密なデータ構造での分析
- 大規模プロジェクトでコストの上振れを許容できる場合
Athenaが適している場合
- システムログの分析や課金システムのデータ集計
- アドホックな分析ニーズ、プロトタイピング
- データ構造が厳密でない単発的な分析
- 専任の運用チームがいない、もしくは最小限の運用を目指す場合
- 利用量が変動し、費用対効果を重視する場合
コストにおいては、Redshiftはサーバーレスオプションがあるものの一定の固定費が発生しますが、Athenaは完全な従量課金制で、利用頻度や量が少ないほど費用対効果が高くなります。ただし、大規模で継続的な利用を想定する場合は、他のサービスとの比較検討が必要になるでしょう。
データ分析の入口として最適なサービス
以上のように、Athenaは「S3に貯め込んだデータをSQLで処理したい」「データウェアハウスを立てるほどじゃないけど分析がしたい」といったニーズに対して、シンプルで使いやすいサーバーレスのクエリサービスです。インフラの運用管理から解放され、必要なときに必要なだけ利用できるというAthenaの特徴は、適切なユースケースであれば強力で信頼性も高く、大きなメリットとなるでしょう。