퍼블릭 클라우드

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

변군이글루 2020. 10. 13. 12:48
반응형

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
반응형