쉽게 설명하는 AWS Serverless 강의(5) - AWS Lambda 모니터링
- AWS Lambda의 기본 로깅은 CloudWatch를 활용하여 로그 및 지표를 관리합니다. ☁️
- 로그 내용은 요청 ID, 실행 시간, 메모리 사용량 등 시스템 및 애플리케이션 정보를 상세히 포함합니다. 📝
- 로그 형식은 일반 텍스트와 JSON 두 가지를 지원하며, JSON 형식은 CloudWatch 내 필터링 및 검색에 매우 유용합니다. 🔍
- JSON 로그는 Node.js 16+, Python 3.7+, 특정 Java 런타임에서만 지원됩니다. ☕
- CloudWatch 로그 그룹은
/aws/lambda/함수이름 형식을 따르며, 로그 스트림은 실행 환경별로 생성되어 동시 실행을 반영합니다. 📁
- JSON 로그에 한해 Trace, Debug, Info, Warn, Error, Fatal 등 다양한 로그 레벨 필터링 설정이 가능합니다. 🚦
- 람다가 CloudWatch로 로그를 전송하려면
logs:PutLogEvents IAM 권한이 반드시 필요합니다. 🔒
- CloudWatch는 성공/실패, 재시도, 지연 시간, 스로틀링, 최대 동시 함수 수, 에러 확률 등 다양한 람다 지표를 제공합니다. 📈
- AWS X-Ray를 활용하여 람다 함수의 성능을 파악하고 병목 현상을 식별할 수 있습니다. ⚡
- CloudWatch 로그는 Standard와 Infrequent Access(IA) 두 가지 클래스로 나뉘며, IA는 특정 기능 제한 대신 50% 저렴한 저장 비용을 제공합니다. 📉
- 로그 저장 비용은 사용량에 따라 단위 비용이 점진적으로 감소하는 티어 요금제를 채택하고 있습니다. 💰
- 로그는 CloudWatch 외에 Amazon S3 또는 Amazon Kinesis Data Firehose로 전송할 수 있습니다 (동시 다중 선택 불가). ➡️
- Kinesis Data Firehose를 통해 S3, OpenSearch 등 다양한 대상으로 로그를 스트리밍하고, 이를 활용한 분석 아키텍처 구축이 가능합니다. 🏗️
- 데모를 통해 람다 함수 생성, 코드 배포, CloudWatch 로그 확인, JSON 형식 및 로그 레벨 설정 과정을 직접 시연했습니다. 🛠️
데브허브 | DEVHUB | 쉽게 설명하는 AWS Serverless 강의(5) - AWS Lambda 모니터링