문제 해결 과정에서 사용한 AWS CLI 명령어들을 단계별로 설명드리겠습니다.
# timeout 관련 모든 로그 그룹 조회
aws logs describe-log-groups \
--log-group-name-prefix "/aws/lambda/timeout" \
--region ap-northeast-2 \
--query 'logGroups[].{LogGroupName:logGroupName,CreationTime:creationTime,MetricFilterCount:metricFilterCount}'
# 특정 로그 그룹의 메트릭 필터 조회
aws logs describe-metric-filters \
--log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" \
--region ap-northeast-2
# TimeoutTest 관련 모든 알람 조회
aws cloudwatch describe-alarms \
--alarm-name-prefix "LambdaTimeoutAlarm" \
--region ap-northeast-2 \
--query 'MetricAlarms[?contains(AlarmName, `TimeoutTest`)].{AlarmName:AlarmName,MetricName:MetricName,Namespace:Namespace}'
# v2 메트릭 데이터 확인 (24시간)
aws cloudwatch get-metric-statistics \
--namespace "LambdaTimeouts" \
--metric-name "timeout-v2-dev-TimeoutTest" \
--dimensions \
--start-time "2025-07-12T00:00:00" \
--end-time "2025-07-13T00:00:00" \
--period 3600 \
--statistics Sum \
--region ap-northeast-2
# LambdaTimeouts 네임스페이스의 모든 메트릭
aws cloudwatch list-metrics \
--namespace "LambdaTimeouts" \
--region ap-northeast-2
# 최신 3개 로그 스트림 조회
aws logs describe-log-streams \
--log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" \
--order-by LastEventTime \
--descending \
--max-items 3 \
--region ap-northeast-2
# 특정 로그 스트림의 이벤트 조회
aws logs get-log-events \
--log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" \
--log-stream-name "2025/07/12/[6]abc1d4cd56d04c8fad395f55c1c5081d" \
--region ap-northeast-2
# timeout 패턴으로 로그 검색
aws logs filter-log-events \
--log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" \
--start-time $(date -d '1 hour ago' +%s)000 \
--filter-pattern '"Status: timeout"' \
--region ap-northeast-2
# 메트릭 필터 패턴이 로그와 매치되는지 테스트
aws logs test-metric-filter \
--filter-pattern '"Status: timeout"' \
--log-event-messages 'REPORT RequestId: xxx...Status: timeout' \
--region ap-northeast-2
# 최신 로그로 패턴 테스트 (한 줄로)
aws logs test-metric-filter \
--filter-pattern '"Status: timeout"' \
--log-event-messages "$(aws logs get-log-events --log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" --log-stream-name "로그스트림명" --region ap-northeast-2 --query 'events[-1].message' --output text)" \
--region ap-northeast-2
# 특정 알람의 최근 10개 히스토리 조회
aws cloudwatch describe-alarm-history \
--alarm-name "LambdaTimeoutAlarm - timeout-v2-dev-TimeoutTest" \
--region ap-northeast-2 \
--max-records 10 \
--query 'AlarmHistoryItems[].{Timestamp:Timestamp,HistoryItemType:HistoryItemType,HistoryData:HistoryData}'
# 알람의 현재 설정과 상태
aws cloudwatch describe-alarms \
--alarm-names "LambdaTimeoutAlarm-V2 - timeout-v2-dev-TimeoutTest" \
--region ap-northeast-2 \
--query 'MetricAlarms[0].{Period:Period,Statistic:Statistic,StateValue:StateValue,AlarmConfigurationUpdatedTimestamp:AlarmConfigurationUpdatedTimestamp}'
# Unix timestamp를 사람이 읽을 수 있는 형식으로
date -d @1752196796 '+%Y-%m-%d %H:%M:%S UTC'
# 1시간 전 timestamp (밀리초)
date -d '1 hour ago' +%s)000
# 현재 시간을 ISO 형식으로
date -u +%Y-%m-%dT%H:%M:%S
# 1. 전체 상황 파악
aws logs describe-log-groups --log-group-name-prefix "/aws/lambda/timeout" --region ap-northeast-2
# 2. 메트릭 필터 확인
aws logs describe-metric-filters --log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" --region ap-northeast-2
# 3. 알람 상태 확인
aws cloudwatch describe-alarms --alarm-name-prefix "LambdaTimeoutAlarm" --region ap-northeast-2 --output table
# 4. 최신 로그 확인
aws logs describe-log-streams --log-group-name "/aws/lambda/timeout-v2-dev-TimeoutTest" --order-by LastEventTime --descending --max-items 1 --region ap-northeast-2
# 5. 메트릭 데이터 확인
aws cloudwatch get-metric-statistics --namespace "LambdaTimeouts" --metric-name "timeout-v2-dev-TimeoutTest" --dimensions --start-time "2025-07-12T00:00:00" --end-time "2025-07-13T00:00:00" --period 3600 --statistics Sum --region ap-northeast-2
# 6. 알람 히스토리 확인
aws cloudwatch describe-alarm-history --alarm-name "문제가_된_알람명" --region ap-northeast-2 --max-records 5
--output table, --output json, --output text 활용--query 옵션으로 필요한 필드만 추출 가능이 명령어들을 순서대로 실행하시면 Lambda timeout 모니터링 시스템의 전체 상황을 파악하고 문제를 진단할 수 있습니다.