継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

おや? NLB のアクセスログを出力設定しているのに S3 バケットにログが出てないぞ?って時に確認すべきこと

タダです.

小ネタですが,NLB のアクセスログを S3 に出す設定をしているもののログがでてなくてあれ?と思った機会があったので備忘録として記事に残しておきます.

結論

いきなり結論ですが,自分の場合は NLB の仕様で S3 にログが出ていませんでした.その仕様とはアクセスログが出力されるのはロードバランサーTLS リスナーを設定した場合のみであり,TCP リスナーを設定している場合はアクセスログを出力できないということです.

重要

アクセスログが作成されるのは、ロードバランサーTLS リスナーがあり、TLS リクエストに関する情報のみを含む場合のみです。

Network Load Balancer のアクセスログ - Elastic Load Balancing

自分が見ていた環境は 8080 や 3128 ポートを解放していたのですが,いずれも TCP リスナーだったのでログが出なかった...という事態でした.ドキュメントに記載があったけど見落としていました.NLB の役割にもよると思うのですが,NLB でログが出てなくても配下の EC2 で関連のログを CloudWatch Logs に出したり VPC 内のログを VPC フローログとして残すようにしておけば TCP リスナーであっても NLB のアクセスログがなくて困ると言った事態は避けられるかと考えます.

まとめ

NLB のアクセスログが出てない時に確認すべきポイントを書きました.自分は遭遇した時に焦ったので同じ事態に遭遇した人の参考になれば幸いです.