AWSでWEBアプリケーション環境を構築するような場合に、EC2にWEBアプリケーションを配置して、その前にALB(Application Load Balancer)を設置することで負荷分散を行ったり、SSL証明書をALBに設定することで常時SSL化を行ったりという構成をとることがよくあると思います。
WEBサービスを運用していると、様々なエラーや不具合が発生することがあります。
WEBアプリのログなどを調査してすぐ原因が分かればいいのですが、
WEBになぜかエラーとなり接続できない。
WEBアプリのログを確認してもなぜかログがちゃんと出力されていない。
WEBアプリのログを調べてもエラーの原因がよくわからない。
という事になり、調査に予想以上に時間を取られてしまうといったこともよくあると思います。
そんな時、ALBでアクセスログを出力することができる事をご存じでしょうか?
実はALBにはアクセスログを簡単に指定のS3バケットに出力する方法があります、ALBを通る全てのアクセスログが出力されるようになりいろいろと調査がしやすくなるので、ぜひやっておきたい設定です。
デフォルトは機能がオフになっているので、設定する方法を説明したいと思います。
設定方法
アクセスログを出力したいALBを選択します、「属性」の部分を確認すると「アクセスログ」が無効になっていますので、「属性の編集」をクリックします。
すると編集画面が開くので、「アクセスログ」の有効化にチェックします。
ログの出力先のS3バケットの指定し、「この場所の作成」にもチェック(既に作成済みのバケットを指定する場合はチェック不要です)
そして「保存」をクリックします。
すると指定したバケットがS3に作成されています。
しばらくするとバケットの下にアクセスログがどんどん出力されてきます。
アクセスログを出力するための料金は?
アクセスログを有効にすることでALBでの追加の料金は発生しません。
発生するのはログを出力するS3の使用料だけになります。
この設定だけで簡単にログが出力されるようになりしかもサービスとしては無料、調査の幅が広がるのでやっておいて損はないと思います。
コメント