Lambda 함수 로그 작업
Lambda 함수 로그 작업
문제 해결을 돕기 위해 AWS Lambda는 사용자를 대신해 Lambda 함수를 자동으로 모니터링합니다. Lambda 함수 로그는 Lambda 콘솔, CloudWatch 콘솔, AWS Command Line Interface(AWS CLI), CloudWatch API로 볼 수 있습니다. 또한 Lambda가 로그를 Amazon S3와 Firehose로 보내도록 구성할 수도 있습니다.
본문
함수의 실행 역할에 필요한 권한이 있다면, Lambda는 함수가 처리하는 모든 요청의 로그를 캡처해 기본 대상인 Amazon CloudWatch Logs로 보냅니다. 또한 Lambda 콘솔로 Amazon S3나 Firehose를 로깅 대상으로 구성할 수도 있습니다.
- CloudWatch Logs는 Lambda 함수의 기본 로깅 대상입니다. CloudWatch Logs는 실시간 로그 보기·분석 기능을 제공하며 로그 데이터 기반 지표와 경보 생성도 지원합니다.
- Amazon S3는 장기 보관에 경제적이며 Athena 같은 서비스로 로그를 분석할 수 있습니다. 지연 시간은 보통 더 높습니다.
- Firehose는 로그를 다양한 대상으로 관리형 스트리밍합니다. 로그를 다른 AWS 서비스(예: OpenSearch Service, Redshift Data API)나 서드파티 플랫폼(예: Datadog, New Relic, Splunk)으로 보내야 한다면 Firehose가 사전 구축된 통합을 제공해 그 과정을 단순화합니다. 추가 인프라를 설정하지 않고 사용자 지정 HTTP 엔드포인트로도 스트리밍할 수 있습니다.
로그를 보낼 서비스 대상 선택
함수 로그의 대상이 될 서비스를 선택할 때 다음 핵심 요소를 고려하세요.
- 비용 관리는 서비스마다 다릅니다. Amazon S3는 보통 장기 저장에 가장 경제적인 옵션을 제공하고, CloudWatch Logs는 로그 보기, 로그 처리, 실시간 경보 설정 기능을 제공합니다. Firehose 비용에는 스트리밍 서비스 비용과 스트리밍 대상으로 구성한 것과 관련된 비용이 모두 포함됩니다.
- 분석 기능은 서비스마다 다릅니다. CloudWatch Logs는 실시간 모니터링에 뛰어나며 Logs Insights, Live Tail 같은 다른 CloudWatch 기능과 기본으로 통합됩니다. Amazon S3는 Athena 같은 분석 도구와 잘 작동하며 다양한 서비스와 통합될 수 있지만 추가 설정이 필요할 수 있습니다. Firehose는 사전 구축된 통합을 제공해 특정 AWS 서비스(OpenSearch Service, Redshift Data API)와 지원되는 서드파티 플랫폼(예: Datadog, Splunk)으로의 직접 스트리밍을 단순화해 구성 작업을 줄일 수 있습니다.
- 설정·사용 편의성은 서비스마다 다릅니다. CloudWatch Logs는 기본 로그 대상으로 추가 구성 없이 즉시 작동하며 CloudWatch 콘솔을 통해 간단한 로그 보기·분석을 제공합니다. 로그를 Amazon S3로 보내야 한다면 Lambda 콘솔에서 초기 설정을 하고 버킷 권한을 구성해야 합니다. 로그를 OpenSearch Service나 서드파티 분석 플랫폼 같은 서비스로 직접 보내야 한다면 Firehose가 그 과정을 단순화할 수 있습니다.
로그 대상 구성
AWS Lambda는 함수 로그에 대해 여러 대상을 지원합니다. 이 안내서는 사용 가능한 로깅 대상을 설명하고 요구 사항에 맞는 옵션을 고르는 데 도움을 줍니다. 어떤 대상을 선택하든 Lambda는 로그 형식, 필터링, 전달을 제어하는 옵션을 제공합니다.
Lambda는 함수 로그에 대해 JSON과 평문 텍스트 형식을 모두 지원합니다. JSON 구조적 로그는 검색성을 높이고 자동화된 분석을 가능하게 하며, 평문 텍스트 로그는 단순함과 잠재적 저장 비용 절감을 제공합니다. 시스템 로그와 애플리케이션 로그 모두에 로그 레벨을 구성해 Lambda가 선택한 대상으로 보내는 로그를 제어할 수 있습니다. 필터링은 저장 비용을 관리하고 디버깅 중 관련 로그 항목을 더 쉽게 찾게 해줍니다.
각 대상에 대한 자세한 설정 지침은 다음 섹션을 참고하세요.
- Lambda 함수 로그를 CloudWatch Logs로 보내기
- Lambda 함수 로그를 Firehose로 보내기
- Lambda 함수 로그를 Amazon S3로 보내기
Lambda 함수의 고급 로깅 제어 구성
함수 로그가 캡처·처리·소비되는 방식을 더 제어하기 위해 Lambda는 다음 로깅 구성 옵션을 제공합니다.
- Log format – 함수 로그에 평문 텍스트와 구조적 JSON 형식 중에서 선택합니다.
- Log level – JSON 구조적 로그의 경우 Lambda가 CloudWatch로 보내는 로그의 상세 수준을 선택합니다(예: FATAL, ERROR, WARN, INFO, DEBUG, TRACE).
- Log group – 함수가 로그를 보내는 CloudWatch 로그 그룹을 선택합니다.
고급 로깅 제어 구성에 대해 자세히 알아보려면 다음 섹션을 참고하세요.
- JSON 및 평문 텍스트 로그 형식 구성
- 로그 레벨 필터링
- CloudWatch 로그 그룹 구성