Lambda 함수 로그 작업 - AWS Lambda

Lambda 함수 로그 작업

AWS Lambda는 문제 해결을 돕기 위해 사용자를 대신하여 Lambda 함수를 자동으로 모니터링합니다. Lambda 함수의 로그는 Lambda 콘솔, CloudWatch 콘솔, AWS Command Line Interface(AWS CLI), CloudWatch API.를 사용하여 확인할 수 있습니다. Amazon S3와 Firehose로 로그를 전송하도록 Lambda를 구성할 수도 있습니다.

함수의 실행 역할에 필요한 권한이 있는 한, 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 함수에 대한 고급 로깅 제어 구성

함수의 로그를 캡처, 처리 및 사용하는 방법을 더 잘 제어할 수 있도록 Lambda는 다음과 같은 로깅 구성 옵션을 제공합니다.

  • 로그 형식 - 함수 로그에 대해 일반 텍스트와 정형 JSON 형식 중에서 선택합니다.

  • 로그 수준 - JSON 구조의 로그의 경우 Lambda가 CloudWatch로 전송하는 로그의 세부 수준(FATAL, ERROR, WARN, INFO, DEBUG, TRACE 등)을 선택합니다.

  • 로그 그룹 - 함수가 로그를 전송하는 CloudWatch 로그 그룹을 선택합니다.

고급 로깅 제어 구성에 대한 자세한 내용은 다음 섹션을 참조하세요.