VPC Flow LogsをAthenaで分析できるように設定する方法

はじめに

2018年8月のアップデートでVPCフローログをS3に直接配信できるようになったため、Amazon Athenaで分析できるように設定したいと思います。

dev.classmethod.jp

上記サイトの設定方法で以下の箇所にVPCフローログが保存されます。
バケット名>AWSLogs>アカウント番号>vpcflowlogs>ap-northeast-1>年>月>日

Amazon Athena設定 テーブル作成

Athena クエリエディタでデータベース作成。

f:id:rioner2525:20181011210147p:plain

データベース名を入れて、[Run Query] ボタンを選択。
データベースが作成されるので左のボックスから選択しましょう。

次にクエリエディタからテーブルを作成します。
今回は変数 dt として日付でパーティションを区切ります。

データベース名、テーブル名、バケット名、アカウント番号を入れて、[Run Query] ボタンを選択。
テーブルが作成されますがパーティションの作成ができていないため、まだ何も結果が表示されません。

f:id:rioner2525:20181011211502p:plain

Amazon Athena設定 パーティション作成

適切にパーティションを作成することで日付通りのデータで分析することができます。
試しに1日分のパーティションを作成してみます。

(dt='日付')の部分とログのある場所を合わせて、[Run Query] ボタンを選択。
もう一度データを見るとパーティションで分けられたデータが出力されることが分かります。

f:id:rioner2525:20181011220111p:plain

このパーティションを作成するクエリをログが置かれる場所を指定して毎日実行すればよいわけです。
...
...
...
毎日手作業で実行は頭がおかしくなるのでLambdaで実装しましょう。

自動で日付の取得をするので、この関数を毎日実行するようにトリガーを設定すればOKです。

おわりに

VPC Flow LogsをAthenaで分析できるように設定できました。
VPC Flow Logsを見る機会がある人は便利ですしCloudWatch Logsより安くなりますので設定を検討してみるのもよいと思います。

補足。
下記クエリで通信量ベスト10を表示できます。