Lambda 함수 로그를 Amazon S3로 보내기

Lambda 함수 로그를 Amazon S3로 보내기

Lambda 콘솔을 사용해 Lambda 함수가 로그를 Amazon S3로 직접 보내도록 구성할 수 있어요. 이 기능은 장기 로그 보관을 위한 비용 효율적인 솔루션을 제공하며, Athena 같은 서비스를 사용한 강력한 분석 옵션을 가능하게 합니다.

출처: AWS Lambda 개발자 안내서

본문

참고

Lambda 함수 로그를 Amazon S3로 보내도록 Lambda 콘솔, AWS CLI, AWS CloudFormation, 그리고 모든 AWS SDK로 구성할 수 있어요.

요금

요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참고하세요.

Amazon S3 로그 대상에 대한 필수 권한

Lambda 콘솔을 사용해 Amazon S3를 함수의 로그 대상으로 구성할 때는 다음이 필요해요:

Lambda 함수 로그를 Amazon S3로 보내도록 CloudWatch Logs 구독 필터 설정하기

CloudWatch Logs에서 Amazon S3로 로그를 보내려면 구독 필터를 만들어야 해요. 이 필터는 Amazon S3 버킷으로 전달되는 로그 이벤트를 정의합니다. Amazon S3 버킷은 로그 그룹과 동일한 리전에 있어야 합니다.

Amazon S3용 구독 필터 만들기

  1. Amazon Simple Storage Service(Amazon S3) 버킷을 만듭니다. CloudWatch Logs용으로 특별히 만든 버킷을 사용할 것을 권장합니다. 다만 기존 버킷을 사용하려면 2단계로 건너뛰세요. 다음 명령을 실행하고, 자리 표시자 Region을 사용하려는 리전으로 교체합니다.

    참고

    amzn-s3-demo-bucket2는 예시 Amazon S3 버킷 이름입니다. 예약되어 있어요. 이 절차가 작동하려면 고유한 Amazon S3 버킷 이름으로 반드시 교체해야 합니다. 다음은 예시 출력입니다.

  2. CloudWatch Logs에 Amazon S3 버킷에 데이터를 넣을 권한을 부여하는 IAM 역할을 만듭니다. 이 정책은 aws:SourceArn 전역 조건 컨텍스트 키를 포함해 혼동 대리인(confused deputy) 보안 문제를 방지하는 데 도움이 됩니다. 자세한 내용은 혼동 대리인 방지를 참고하세요.

    • 텍스트 편집기로 ~/TrustPolicyForCWL.json 파일에 다음과 같은 신뢰 정책을 만듭니다.
  3. create-role 명령을 사용해 신뢰 정책 파일을 지정해 IAM 역할을 만듭니다. 반환된 Role.Arn 값을 기록해 두세요. 다음 단계에서 필요합니다.

  4. CloudWatch Logs가 계정에서 수행할 수 있는 작업을 정의하는 권한 정책을 만듭니다. 먼저 텍스트 편집기로 ~/PermissionsForCWL.json 파일에 권한 정책을 만듭니다. 다음 put-role-policy 명령으로 권한 정책을 역할에 연결합니다.

  5. Delivery 로그 그룹을 만들거나 기존 Delivery 로그 그룹을 사용합니다.

  6. PutSubscriptionFilter로 대상을 설정합니다.

Lambda 함수 로그를 Amazon S3로 보내기

Lambda 콘솔에서는 새 함수를 만든 후 함수 로그를 Amazon S3로 직접 보낼 수 있어요. 다음 단계를 완료하세요:

  1. AWS Management Console에 로그인하고 Lambda 콘솔을 엽니다.

  2. 함수의 이름을 선택합니다.

  3. Configuration(구성) 탭을 선택합니다.

  4. Monitoring and operations tools(모니터링 및 운영 도구) 탭을 선택합니다.

  5. "Logging configuration"(로깅 구성) 섹션에서 Edit(편집)을 선택합니다.

  6. "Log content"(로그 콘텐츠) 섹션에서 로그 형식을 선택합니다.

  7. "Log destination"(로그 대상) 섹션에서 다음 단계를 완료합니다.

    • 대상 서비스를 선택합니다.
    • 새 로그 그룹을 만들거나 기존 로그 그룹을 사용합니다.

    참고

    Amazon S3 대상에 기존 로그 그룹을 선택한다면, 선택한 로그 그룹이 Delivery 로그 그룹 유형인지 확인하세요.

    • 함수 로그의 대상이 될 Amazon S3 버킷을 선택합니다.
    • CloudWatch Delivery 로그 그룹이 나타납니다.
  8. Save(저장)을 선택합니다.

참고

콘솔에서 제공된 IAM 역할에 필수 권한이 없으면 대상 설정이 실패합니다. 해결하려면 Amazon S3 로그 대상에 대한 필수 권한을 참고하세요.

교차 계정 로깅

Lambda가 다른 AWS 계정의 Amazon S3 버킷으로 로그를 보내도록 구성할 수 있어요. 이를 위해서는 대상 설정과 양쪽 계정에 적절한 권한을 구성해야 합니다.

필수 IAM 역할과 정책을 포함해 교차 계정 로깅을 설정하는 자세한 지침은 CloudWatch Logs 문서의 새 교차 계정 구독 설정하기를 참고하세요.

더 알아보기 (Learn more)