ELB(ALB)のアクセスログ設定

2019-07-18

ELB(ALB)のアクセスログ設定方法

概要

  • 今回は、ロードバランサー(ALB: Application Load Balancer)にアクセスログを設定する方法を紹介します。
  • 以下、AWSドキュメント Elastic Load Balancingからの引用です。ポイントはデフォルトは無効であることです。
Elastic Load Balancing は、ロードバランサーに送信されるリクエストについて、詳細情報を収集するアクセスログを提供します。各ログには、リクエストを受け取った時刻、クライアントの IP アドレス、レイテンシー、リクエストのパス、サーバーレスポンスなどの情報が含まれます。これらのアクセスログを使用して、トラフィックパターンの分析や、問題のトラブルシューティングを行うことができます。
アクセスログの作成は、Elastic Load Balancing のオプション機能であり、デフォルトでは無効化されています。ロードバランサーのアクセスログの作成を有効にすると、Elastic Load Balancing はログをキャプチャし、圧縮ファイルとして指定した Amazon S3 バケット内に保存します。アクセスログの作成はいつでも無効にできます。

アクセスログ設定方法

S3バケットポリシー設定

  • アクセスログの出力先となるS3バケットにバケットポリシーを設定します。
  • Principalには、東京リージョン(ap-northeast-1)を指すElastic Load Balancing アカウント ID(582318560864)を記載します。その他のリージョンのアカウントIDはドキュメントを参照ください。
  • 111111111111には、対象となるALBを使用しているアカウントID を記載します。
  • 対象となるALBとアクセスログの出力となるS3バケットは、異なるアカウントでも問題ありません(S3のクロスアカウント設定は必要)。
 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AlbWriteAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::582318560864:root"
            },
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*",
                "arn:aws:s3:::s3-bucket-name/alb_logs/AWSLogs/111111111111/*"
            ]
        },
    ]
}

アクセスログ作成の有効化

  • EC2のロードバランサーより、対象のALBを選択します。
  • ロードバランサー属性の編集(Edit attributes)より、「アクセスログの有効化(Enable access logs)」をチェックします。
  • 「S3の場所(S3 location)」にS3バケットの名前をプレフィックスを含めて入力します。
  • 保存ボタンを押し、S3バケットにログが記録されていることを確認します。
 

アクセスログのエントリ

  • アクセスログにエントリされる各フィールドの説明については、下記ドキュメントを参照ください。

AWS, ELB

Posted by takaaki