始めに
今回はAthena統合を使ってVPCフローログの解析を行ってみます。
VPCフローログの解析でAthena統合を使うと何がうれしいの?
Athenaでクエリを実行するまでの手間が軽減されます。具体的にはAthenaでのテーブル作成やパーティション操作が不要になります。また、代表的なクエリが事前定義されているため、すぐにクエリを実行できるようになります。
Athena統合は、CloudFormationを使います。テンプレートが自動で用意されるため、全体的な操作は簡単です。
では早速、AWSマネジメントコンソールより操作していきます。
全体的な流れ
- VPCフローログをS3に取得します
- Athena統合を行うます(CloudFormationテンプレート&スタック作成)
- Enjoy Athena!
手順詳細
VPCフローログの設定は、デフォルト設定&保存先S3で、仕掛け済みとします。(手順がわからない場合は以下の前回記事を参考にします)
1. Athena統合を実行
フローログを選択して「アクション」→「Athena統合を生成」をクリックします。
Athena統合の設定画面が開くため、次のように入力します。
- ロード頻度のパーティション:毎日
- CloudFormationテンプレートS3バケット:S3バケットのARNを入力
- クエリ結果S3バケット:S3バケットのARNを入力
本設定ではCloudFormationテンプレートやクエリ結果はS3バケットの直下に作成されます。もしフォルダで分けたい場合は別途オプションで「/define」とか「/result」を入力します。
Athena統合の作成を押下すると、画面上部に「正常に作成されました」と表示されます。この段階でS3バケットにはCloudFormationテンプレートファイルが作成されます。
2. CloudFormationスタックの作成
次に、画面上部の「CloudFormationスタックの生成」をクリックします。
CloudFormationテンプレートのスタックの作成画面が表示されます。テンプレートの場所は自動で入力反映されています(クリック時のURLに含まれている仕組み)。
今回はまず動かしてみたいので、明示的に入力すべき項目は「スタックの名前」のみです。他はデフォルト値から変更しなくてOKです。
<以下画面は変更なし>
<以下画面はスタックの名前を入力>
<以下画面は変更なし>
<以下画面はチェックを押下して「スタックの作成」をクリック>
スタックの作成は2分程度で終わるため、完了後(CREATE_COMPLETE)にAthenaを開きます。
3. Athenaでクエリを実行
Athenaサービスにアクセスして、クエリエディタを開きます。
ワークグループはCloudFormationで作成された「なんちゃらWorkgroup」を選択します。
最近のクエリタブを開いてみると、既に色々とあります。
ここでは「vpcFlowLogStopTalkingSubnet」を選択して、クエリを実行してみます。
このように結果が表示されます。実行した段階で結果はS3バケット内に保存され、Athena画面からもCSV形式でダウンロード可能です。
事前定義クエリは代表的なものに限られていますが、目的に対するSQL文がわかるため、これをベースにアレンジを加えていくのもありかと思います。
後片付け
Athena統合によるVPCフローログを確認した後、後片付けを行います。仕掛けておいたVPCフローログやログ自体も消して構わない場合は、次のステップで実施します。
- CloudFormationのスタックを削除
→ 【注意】Athena内のワークグループが削除できずに失敗することがあります。その際はAthena内のワークグループを手動で削除し、再度スタックの削除を実行すると成功します。 - VPCフローログの設定を削除
- S3バケット内の不要ファイルを削除
→ 削除対象は「CloudFormation定義ファイル」「Athenaクエリ結果」「VPCフローログ」です。S3バケット自体が不要であれば、丸ごと削除しちゃいます。
まとめ
Athena統合を使って、VPCフローログのクエリを実行してみました。代表的なクエリで結果を見たい場合は、簡単な設定で数分後には実行できる手頃さがあります。利用してみる価値は十分にあると感じました。
最後までご覧いただき、ありがとうございました。
コメント