AWS S3 VPCフローログを保管しAthenaを使用してクエリを発行

S3_Athena_CloudFormation

S3バケットを作成して、VPCフローログを保管する処理の備忘録となります。

本記事で使用するサービスは以下です。

使用するサービス
  • S3
  • Athena
  • CloudFormation
  • CloudWatch Logsへの保管については以下をご覧ください。

    参考 CloudWatchへlogを保管するITサービス指向エンジニアブログ

    S3バケットを作成

    S3バケットを作成します。

    設定はデフォルトのまま作成します。

    バケットが作成されました。

    バケット作成時はバケット名は一意である必要があるため、作成時に一意でない場合はエラーとなります。

    バケット名をクリックし、プロパティタブからARN(Amazon リソースネーム)をコピーしておきます。

    ※VPCフローログ作成時、送信先フローログでS3を選択するとARNが必要になるためです。

    VPCフローログの作成

    VPCの画面からフローログを作成します。

    フローログ設定画面にて名前、送信先をAmazon S3バケットに送信を選択し、コピーしておいたARNを貼り付けます。

    ログレコードはカスタム形式ですべて選択します。

    これでフローログを作成します。

    CloudWatchとは異なり、バケットポリシーはVPCフローログ作成時に作成されます。

    S3バケット画面のアクセス許可タブを選択し、バケットポリシーから確認できます。

    S3バケットのログの確認

    S3バケット画面のオブジェクトタブからAWSLogs/をクリックします。

    これはS3のディレクトリを示しています。

    現状はログが何もない状態なので、EC2を起動してpingを飛ばしてみたいと思います。

    S3バケットのオブジェクトにログが保管されていることを確認できました。

    Athenaのセットアップ

    Athenaを使用してSQLクエリを発行するため、Athenaのセットアップを行います。

    VPCの画面から統合オプションを調べるを選択します。

    CloudFormationのテンプレートを作成します。

    ロード頻度: 毎日

    パーティションの開始日: 適当な日付

    パーティションの終了日: 適当な日付

    CloudFormationテンプレートS3バケット: S3のARNを入力

    クエリ結果S3: S3のARNを入力

    CloudFormationスタックの作成

    CloudFormationとは
    AWSのシステム構成をオートメーション化するサービスです。
    yamlファイル等で記述し、インフラ構築手順や設定情報を記述し、そのファイルを実行することで環境構築を自動化する優れものです。
    Dockerfileやdocker-compose.ymlと似たようなものになります。
    参考 CloudFormationクラスメソッド

    VPCの画面からCloudFormationスタックの作成をクリックします。

    スタックの名前を入力し、次へ、スタックオプションの設定も次へ進みます。

    AWS CloudFormationによてIAMリソースが作成される場合があることを承認します。にチェックを入れ、スタックの作成をします。

    スタックの画面で作成したathena-stack-flowlogがCRATE_COMPLETEされていれば成功しています。

    参考 Amazon VPC フローログのクエリAWS公式サイト

    Athenaの画面に移動します。

    Athenaの画面に移動したらデータのクエリを開始→クエリエディタを詳しく確認するをクリックします。

    ワークグループからランダムの英数字を選択します。

    以下画面が表示されますので、認証をクリックします。

    保存したクエリタブを選択すると、AWSがすでに用意している、SQLが出てきますので、そこから必要なSQLを使用して、データ抽出が可能です。

    AWS公式サイトにも事前に定義されたクエリページが存在します。

    参考 事前に定義されたクエリAWS公式サイト

    EC2にssh接続したSQLクエリを実行してみたいと思います。

    一旦EC2からexitとし、再度ssh接続をし、

    保存したクエリタブからMonitor SSH and RDP trafficのリンクをクリックします。

    エディタタブからSQLを実行すると、実行したSQLの結果が表示されます。

    S3へ VPCフローログを保管し、Athenaを使用してSQLクエリを発行する手順でした。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です