この記事は Retty Advent Calendar 5日目です。
昨日は、近藤さん(@yskondo )の フラットデザインは単なるデザインスタイルの話ではない でした。
さて、今年のAWSのre:inventではいろんな新しいサービスの発表が行われて、
使ってみたい!と思うサービスもたくさん増えてますが、その中で「今すぐ試したい」と思ったのがこのAWS Athenaですね。
社内でELBを使って運用してる部分も多く、ELBのアクセスログを確認する場面は容易に想像できるでしょう。
今までならAdhocで該当期間のアクセスログを一個一個開けて確認するか、S3のバケットをマウントして開けるか、Lambdaでevent triggerとしてS3バケットを指定してElasticsearchに流し込んでみるとかをやって(た)ました。
でもやっぱ面倒くさい。面倒くさいんですよ。
それで、今回Athenaの登場にはすごく期待してまして、発表後早速試してみました。
ちなみに、S3のリージョンとは関係なく使えるので、今すぐ試せます。
Athenaの初期画面(Query画面)

見るとわかりますが、elbのアクセスログです!
そう、私が欲しかったそいつなんですよ。これにぶち込めばいいんじゃないか?!と思いましたがそういう仕組みではないですね。
データベースは複数のテーブルが持てる、
テーブルはS3のオブジェクトとつなげて、その内容をテーブルのように参照できる仕組みですね。
説明見るとPrestoなので分散処理ですね。レスポンスへの期待も高まります。
新しいテーブルを作ってみよう!

Data Format

次はテーブルのカラム設定


赤い枠の中にある、hereが救ってくれます。押すと
いやー嬉しいですね。ELBのアクセスログのカラム構成を入れてくれます。
チュートリアル使いたくないけどどうするのか?と言われたら、直接入力するか、後々出てくる方法でやっていただきたいです。もう少々お待ちを。
Partition設定

これで完了!

クエリを投げてみよう

Athenaは**$5/TB(累積)**なので、WHEREとLIMITを適切に使えば、Adhocに確認するにはかなり強力なクエリを投げれると思います!
終わりに
Athenaはテーブル間のJOINが可能で、AWS Quicksiteや外部のBIツールとの連動も機能的には可能です。
クエリを保存しておくことや、クエリの結果はS3の特定バケットにCSVで保存されるので、それを持って色々やるのもアリですね。(保存先は右上のSettingsというところで設定可能です)
クエリの履歴も残っていて、そこからダウンロードすることも可能です。
ELBのアクセスログの解析にはもってこいで、使い道は色々ありそうなAthenaです。
ぜひ、一度使ってみてくださいー!