본문 바로가기

퍼블릭 클라우드

Amazon Elastic Load Balancer(ELB)의 로그를 Amazon S3에 저장하는 방법

반응형

Amazon Elastic Load Balancer(ELB)의 로그를 Amazon S3에 저장하는 방법

Application Load Balancer(ALB)의 로그를 Amazon S3에 저장하는 방법으로 설명하겠습니다.

1. 로깅 활성화

  • AWS Management Console에서 EC2 서비스로 이동합니다.
  • "로드 밸런서" 섹션에서 로그를 활성화하려는 ALB를 선택합니다.
  • "로깅 및 모니터링" 탭으로 이동하고 "Access logs" 항목에서 "Edit attributes" 버튼을 클릭합니다.
  • 로그를 저장할 S3 버킷 및 S3 접두사를 지정하고 변경 사항을 저장합니다.

2. Amazon S3 버킷 생성

  • S3 콘솔로 이동하여 로그를 저장할 버킷을 선택합니다.(Amazon CloudWatch 버킷 생성)
  • "권한" 탭으로 이동하고 "버킷 정책"을 선택합니다.

 

  • S3 버킷 정책 구성
    • 로그에 대한 ELB의 읽기 권한을 부여합니다.

Amazon_S3_1

  • 버킷 정책
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AWSConsoleStmt-1596771291013",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789:root"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::cloudwatch/*"
        }
    ]
}


{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::elb-account-id:root"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::cloudwatch/*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::cloudwatch/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::cloudwatch"
    }
  ]
}
728x90

3. IAM 역할 생성

  • IAM 콘솔로 이동하여 새로운 역할을 생성합니다.
  • 역할에는 "AmazonS3FullAccess"와 "AmazonS3BucketDelivery" 정책을 추가합니다.
  • 역할을 만들 때 역할에 대한 신뢰 관계에 대해 ELB에 대한 Amazon S3 액세스를 부여하는 것이 중요합니다.

4. 로드 밸런서 설정 변경

  • IAM 역할을 만든 후에 로드 밸런서에서 로그를 저장할 S3 버킷과 IAM 역할을 구성합니다.
  • "로깅 및 모니터링" 탭으로 이동하고 "Access logs" 항목에서 "Edit attributes" 버튼을 클릭합니다.
  • "Enable Access Logs"를 선택하고 S3 버킷과 IAM 역할을 선택합니다.

 

  • 로드 밸런서 설정
    • 로드 밸런싱 > 로드밸런서 > 설명 > 속성

Application_Load_Balancer_2

  • S3 로그 파일

Amazon_S3_2

 

ELB의 액세스 로그가 지정된 S3 버킷에 저장됩니다.

 

참고URL

- AWS Documentation : Amazon Elastic Load Balancing(ELB)

- AWS Documentation : Application Load Balancer에 대한 액세스 로그

 

728x90
반응형