この記事は Retty Advent Calendar 5日目です。
昨日は、近藤さん(@yskondo )の フラットデザインは単なるデザインスタイルの話ではない でした。
さて、今年のAWSのre:inventではいろんな新しいサービスの発表が行われて、
使ってみたい!と思うサービスもたくさん増えてますが、その中で「今すぐ試したい」と思ったのがこのAWS Athenaですね。
社内でELBを使って運用してる部分も多く、ELBのアクセスログを確認する場面は容易に想像できるでしょう。
今までならAdhocで該当期間のアクセスログを一個一個開けて確認するか、S3のバケットをマウントして開けるか、Lambdaでevent triggerとしてS3バケットを指定してElasticsearchに流し込んでみるとかをやって(た)ました。
でもやっぱ面倒くさい。面倒くさいんですよ。
それで、今回Athenaの登場にはすごく期待してまして、発表後早速試してみました。
ちなみに、S3のリージョンとは関係なく使えるので、今すぐ試せます。
Athenaの初期画面(Query画面)
![Athena.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F94efde4f-9931-b3d4-1b2b-526df865ba48.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=6bf9c20bf73234a071157d7ee6e72cf8)
見るとわかりますが、elbのアクセスログです!
そう、私が欲しかったそいつなんですよ。これにぶち込めばいいんじゃないか?!と思いましたがそういう仕組みではないですね。
データベースは複数のテーブルが持てる、
テーブルはS3のオブジェクトとつなげて、その内容をテーブルのように参照できる仕組みですね。
説明見るとPrestoなので分散処理ですね。レスポンスへの期待も高まります。
新しいテーブルを作ってみよう!
![Athena2.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F0b9845ee-1002-ef59-5d8a-41bfde81a3b4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=79c166753eaf3ca80169fddd8871bc3f)
Data Format
![Athena3.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F94c2b289-e6e3-effa-a3f4-6e7ca67caf75.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=228a83d8ab62a0a36ff70936656ccc77)
次はテーブルのカラム設定
![Athena4.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2Fa81b394b-09ca-f1e8-eb7f-16523a604bef.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c30b04ec2294d81382538aa600d0e027)
![Athena5.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F061474a1-ac0b-518d-5662-10eb528ec232.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b028076e3e816074ab4c0ca880e09245)
赤い枠の中にある、hereが救ってくれます。押すと
いやー嬉しいですね。ELBのアクセスログのカラム構成を入れてくれます。
チュートリアル使いたくないけどどうするのか?と言われたら、直接入力するか、後々出てくる方法でやっていただきたいです。もう少々お待ちを。
Partition設定
![Athena7.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2Fc7f6dab6-160f-96c9-d80a-239e75d8d72a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=93dc8984bd1394cf2653c1eb1516bafb)
これで完了!
![Athena8.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F2846f813-a2e2-58fc-ca99-95e9529b9183.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=464608703c33fd00364ef15731eaaaf0)
クエリを投げてみよう
![Athena10.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F85739%2F26706c71-dc6b-49a4-076b-738c4a5b07af.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=583e2556d2c05d0fe24b5f6b842f9c12)
Athenaは**$5/TB(累積)**なので、WHEREとLIMITを適切に使えば、Adhocに確認するにはかなり強力なクエリを投げれると思います!
終わりに
Athenaはテーブル間のJOINが可能で、AWS Quicksiteや外部のBIツールとの連動も機能的には可能です。
クエリを保存しておくことや、クエリの結果はS3の特定バケットにCSVで保存されるので、それを持って色々やるのもアリですね。(保存先は右上のSettingsというところで設定可能です)
クエリの履歴も残っていて、そこからダウンロードすることも可能です。
ELBのアクセスログの解析にはもってこいで、使い道は色々ありそうなAthenaです。
ぜひ、一度使ってみてくださいー!