반응형
AWS 환경에서 Lambda 로그, S3 이벤트 등을 Datadog으로 수집하기 위해 사용되는 Datadog Lambda Forwarder를
기존 v3.66.0 → v3.73.0으로 업그레이드하는 작업을 진행했다.
단순한 버전 교체가 아니라, CloudFormation 템플릿 갱신, 환경 변수 백업, 이름 고정, 롤백 전략까지 실무적으로 고려할 포인트가 많았다.
이번 포스트에서는 전체 업그레이드 흐름과 주의사항, 그리고 실전 트러블슈팅 포인트를 정리한다.
✅ 1. 업그레이드 배경
- 기존 Lambda Forwarder는 v3.66.0
- 최신 버전(v3.73.0)은 다음 개선사항 포함:
- CloudWatch 로그 처리 개선
- Lambda + S3 연동 안정화
- Datadog 태그 처리 개선
- Datadog 측에서도 v3.66.0 이하 사용자에게 업그레이드 권장
✅ 2. 버전 업그레이드 전 사전 준비
2-1. 실제 배포된 Lambda Forwarder 함수 확인
- AWS 콘솔 → CloudFormation → 해당 Stack > "리소스" 탭
- 함수 이름 확인 예시:
DatadogIntegration-ForwarderStack-xxx-Forwarder-xxx
2-2. Lambda Function 이름(FunctionName) 변경 방지
❗ 기존 함수 이름이 변경되면 연결된 로그 소스(예: CloudWatch Subscription Filter)가 깨진다.
- 기존 CloudFormation Stack 템플릿 교체 방식으로 진행하면 일반적으로 Lambda 이름은 유지됨
- 그러나, Stack 이름을 바꾸거나 리소스를 제거 후 재생성하면 이름 변경될 수 있으니 Stack 그대로 유지하며 교체할 것
2-3. 기존 파라미터 정보 백업
- 콘솔에서 기존 Stack에 설정된 파라미터 수동 백업
- 주요 항목:
- DdApiKey, DdTags, DdSite, LogForwardingTriggers 등
2-4. 템플릿 내 버전 정보 위치 확인
Mappings:
Constants:
DdForwarder:
Version: 3.73.0
LayerVersion: 30
CloudFormation 템플릿 구조 내에 명시된 버전 정보임
✅ 3. 업그레이드 절차 (템플릿 교체 방식)
3-1. Datadog 공식 템플릿 주소
3-2. Stack 업데이트
- AWS 콘솔 → CloudFormation → 기존 Stack 선택
- "업데이트" > "중첩된 스택 업데이트" > "기존 템플릿 교체" 선택
- 위 템플릿 URL 입력
3-3. Stack 세부 설정
- 프로비저닝 실패 시 동작:
- 성공적으로 프로비저닝된 리소스 보존 선택 권장
- 이유: 일부 리소스가 정상 생성되었을 경우 전체 롤백을 방지
- 특히 Lambda Forwarder는 이미 수많은 로그 소스와 연결돼 있기 때문에 리소스 보존이 중요함
- 성공적으로 프로비저닝된 리소스 보존 선택 권장
✅ 4. 검증 항목
Lambda 함수 동작 | 콘솔에서 상태 확인, 에러 없는지 확인 |
Datadog 로그 수집 여부 | 해당 태그 기반 로그가 Datadog에 도착하는지 |
Lambda 구독 필터 | CloudWatch Logs → 구독 필터가 유지되고 있는지 |
환경 변수 반영 여부 | DD_API_KEY, DD_TAGS 등 정상 설정 확인 |
✅ 5. 롤백 시 주의사항
- Lambda Function 이름은 절대 변경되지 않도록 할 것
- Stack 삭제 시 기존 로그 연결 끊김 발생
- Stack 업데이트 실패 시, 성공한 리소스 보존 설정으로 롤백 영향 최소화
- 기존 파라미터 수동 백업은 필수
반응형
'OPS' 카테고리의 다른 글
Zonal shift delegated to dns가 뭐야? (0) | 2025.04.23 |
---|---|
[AWS 실무 팁] S3 aws s3 sync 시 AccessDenied 해결법 (0) | 2025.04.22 |
[AWS 네트워크] VPC 엔드포인트 완전 정리 (Interface vs Gateway) (0) | 2025.04.21 |
[AWS] ALB/NLB 액세스 로그 저장을 위한 S3 버킷 권한 설정 방법 (0) | 2025.04.21 |
nginx-ingress-controller와 nginx-ingress-controller-admission 어떤 사이야? (0) | 2025.04.02 |