본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] ALB 로그 수집 후 S3 저장 방법

by BTC_XOXO 2023. 5. 11.

베하~~

안녕하세요 3대 500의 man, xoxo 입니다.
 

더보기

로그는 컴퓨터가 개별적인 작업이나 이벤트에 대해 생성하는 기록으로 타임스탬프가 찍혀 있습니다.

 

일반적으로 로그데이터는 함수 호출, 오류, HTTP 요청, 데이터베이스 트랜잭션 등이며, 로그는 발생하는 상황에 대한 단계별 상세 정보를 제공합니다.

 

로그데이터를 수집하여 분석하거나 다양하게 활용할 수 있습니다.

이렇게 중요한 역할을 해주는 로그를 수집 해야하는 것이 아주 중요하겠죠?? 
 
만약 에러가 발생했을 때 로그가 수집이 안된다면...

에러 찾는다고 화딱지가 날 것입니다. 
 

따라서 로그를 수집하는 것은 선택이 아닌 필수입니다.

 
그럼 이번주는 AWS ALB의 로그를 수집하여 s3에 저장하는 방법을 알아보도록 하겠습니다.
 

1. 로그를 저장할 S3버킷을 생성

  • 버킷을 생성할 때 주의해야 할 점은 리전별로 버킷의 policy가 다르게 설정되어야 한다는 것입니다.
  • 다음은 AWS 서울리전(ap-northeast2)에 생성한 버킷 permission의 예시 코드입니다.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::elb-account-id:root"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::bucket-name/prefix/AWSLogs/your-aws-account-id/*"
    }
  ]
}

아래의 사진을 참조하여 해당하는 리전에 맞도록 permission을 추가합니다.

AWS 리전 별 elb-account-id

2. ALB의 로깅을 설정

  • 기본적으로 아래와 같이 ALB의 엑세스 로그는 비활성화 되어 있습니다.
AWS alb 속성 화면
  • 위의 사진 속에 속성 편집을 클릭하여 엑세스 로그를 활성화 해주고 앞서 생성한 s3 버킷을 지정해줍니다.
Load Balancer 속성 편집 화면
  • 해당 설정을 완료하면 버킷에 로그 데이터가 잘 수집되는 것을 확인할 수 있습니다 . 

다음 시간에는 해당 버킷 로그를 람다를 활용하여 클라우드 워치 로그 그룹으로 보내는 실습을 진행해보겠습니다!
 

참고 문헌

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/enable-access-logging.html

댓글