Athenaを使ってS3のログファイルを検索してみる


AWSのサービスにS3のログ解析ツール「Athena」について書かせて頂きます。

Athenaとは?

https://aws.amazon.com/jp/athena/

Amazon Web ServiceのS3にある大量のログをSQLのクエリを書いて抽出できるサービスです。
大量のファイルが分割されていると解析するのが大変なのですが、

これらのファイルの入っているパケットを指定してAthenaの設定を完了すると、
以下のようにSQLクエリを実行するだけで検索できてしまいます。

SQLクエリは業務で良く書きますので、データベースを触っていたサーバーサイドエンジニアでも使いやすいのではと思いました。

Athenaの設定方法

1、データベースを作成する

2、データフォーマットを指定する


※CSVやJSONのデータフォーマットも指定できます。

3、カラムを指定する

4、パーティションを指定する


※CreateTableを押すとAthenaで利用するデータベースの完成です。

Athenaを使ってやってみたかったこと

json形式でファイル出力されたS3のログをキーベースで検索して、簡単にS3のファイルからデータを抽出したかったのですが、結果できませんでした。
なぜかというと、ファイル転送を挟んだログファイルだったためにファイル自体がtsv形式だったので、json形式のデータフォーマットに適用できなかったためです。
カラム型にjson型があると嬉しいなと思いました。

TSV形式での検索

LIKE検索ができますので、ログ自体の検索はできましたし、レスポンスも遅いわけでもなく使い勝手は良かったです。

下記、簡単なクエリ例です。SQLと変わらないですね。
SELECT * FROM table_name WHERE column_name LIKE '%xxxxx%' LIMIT 100;

まとめ

AWSを使ってS3に溜まっているログをAthenaを使うだけで抽出できるので、今後も使っていきたいと思います。
導入も簡単なので、まだ使ったことのない方は試してみるとどうでしょうか。

最後に

リンクバルではエンジニアの採用を募集しています。採用はこちら