Logging&Monitoring
AWS Lambda의 효과적인 로깅과 모니터링: CloudWatch와 X-Ray 활용하기
- AWS Lambda는 서버리스 컴퓨팅의 핵심 서비스로, 코드 실행에 대한 인프라 관리 없이 애플리케이션을 구축할 수 있게 해줍니다.
- 그러나 서버리스 환경에서도 애플리케이션의 성능과 동작을 모니터링하고 문제를 진단하는 것은 매우 중요합니다.
- AWS는 Lambda 함수의 효과적인 로깅과 모니터링을 위해 CloudWatch와 X-Ray를 제공합니다.
1 CloudWatch를 이용한 Lambda 로깅과 Metrics
1.1 CloudWatch Logs
- Lambda 실행 로그는 자동으로 CloudWatch Logs에 저장됩니다.
- 로그 저장을 위해서는 Lambda 함수의 실행 역할에 CloudWatch Logs 쓰기 권한이 있어야 합니다.
IAM 정책 예시
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
}
]
}
1.2 CloudWatch Metrics
- CloudWatch Metrics를 통해 다양한 Lambda 관련 지표를 모니터링할 수 있습니다:
- Invocations: 함수 호출 횟수
- Duration: 함수 실행 시간
- Concurrent Executions: 동시 실행 수
- Error count 및 Success Rates: 오류 발생 횟수와 성공률
- Throttles: 제한(throttling) 발생 횟수
- Async Delivery Failures: 비동기 호출 실패 횟수
- Iterator Age: Kinesis 및 DynamoDB Streams 사용 시 레코드 처리 지연 시간
- 이러한 지표를 통해 Lambda 함수의 성능과 상태를 실시간으로 모니터링하고, 필요한 경우 경보를 설정하여 신속하게 대응할 수 있습니다.
2 X-Ray를 이용한 Lambda 트레이싱
- AWS X-Ray는 애플리케이션의 분산 추적을 가능하게 하는 서비스로, Lambda 함수의 성능 분석과 병목 현상 식별에 매우 유용합니다.
2.1 X-Ray 활성화 방법
- Lambda 콘솔에서 함수 구성의 "Active Tracing" 옵션을 활성화합니다.
- Lambda 함수 코드에 AWS X-Ray SDK를 통합합니다.
- Lambda 함수의 실행 역할에 적절한 X-Ray 권한을 부여합니다.
필요한 IAM 관리형 정책
AWSXRayDaemonWriteAccess
2.2 X-Ray 환경 변수
X-Ray와 관련된 주요 환경 변수:
_X_AMZN_TRACE_ID
: 트레이싱 헤더 정보를 포함AWS_XRAY_CONTEXT_MISSING
: 기본값은 LOG_ERRORAWS_XRAY_DAEMON_ADDRESS
: X-Ray 데몬의 IP 주소와 포트
2.3 X-Ray 사용 이점
- 함수 실행의 전체 흐름을 시각화할 수 있습니다.
- 다운스트림 서비스 호출의 지연 시간을 식별할 수 있습니다.
- 오류 발생 지점을 정확히 파악할 수 있습니다.