우당탕탕
AWS CloudWatch 알람 설정하다가 여러 번 실수한 경험담과 해결법 본문
AWS CloudWatch 알람을 설정하면서 생각보다 삽질을 많이 했어요. 처음에는 알람 조건을 잘못 잡아서 수신이 안 되고, 나중에는 알람이 너무 자주 울려서 진짜 장애 신호를 놓칠 뻔했거든요.
이번 글에서는 제가 직접 겪은 여러 실패 사례와 그때마다 어떻게 고쳤는지, 그리고 꼭 알아야 할 설정값과 명령어를 자세히 풀어볼게요. AWS 환경에서 CloudWatch 알람 제대로 세팅하고 싶으면 끝까지 보시면 도움이 될 거예요.
사용한 AWS 환경과 버전
제가 사용한 환경은 AWS CLI v2.12.4, 그리고 AWS 콘솔 기반 CloudWatch 알람 설정이에요. 주로 EC2, RDS, 그리고 Lambda 리소스에서 알람을 만들었고, SNS를 통해 SMS와 이메일 알람을 받게 했습니다.
AWS CloudWatch 알람 설정으로 장애 미리 잡은 후기 관련 정보
CloudWatch 알람 기본 세팅, 저는 이렇게 했어요
처음에는 콘솔에서 CPU 사용률이 80% 넘으면 알람 울리게 했는데 이게 생각보다 자주 발생하더라고요. 그래서 임계값과 평가 기간 같은 설정을 꼼꼼히 맞추는 게 얼마나 중요한지 깨달았어요.
제가 쓴 기본 CLI 명령어는 이렇습니다.
# CPUUtilization이 80% 이상인 경우 5분 이상 지속 시 알람 생성
aws cloudwatch put-metric-alarm \
--alarm-name HighCPUUtilization \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--evaluation-periods 1 \
--alarm-actions arn:aws:sns:ap-northeast-2:123456789012:MyTopic \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--unit Percent
여기서 제가 처음에 너무 평가 기간(evaluation-periods)을 1로 두고 바로 알람이 울리게 해서 진짜로 잠깐 치솟은 순간에도 알람이 막 울렸어요. 그래서 3으로 늘렸더니 훨씬 유용해졌습니다.
SNS 구독 설정 실수로 알람 못 받았던 경험
CloudWatch 알람을 SNS에 연결하면 문자나 이메일로 알림을 받을 수 있잖아요? 근데 저는 SNS 토픽을 만들고 나서 구독(subscribe)을 안 해서 알람이 울려도 아무 연락이 안 오는 황당한 상황이 있었어요.
SNS 구독은 꼭 구독 확인 절차(Confirm Subscription)를 거쳐야 하거든요. 구독 요청을 받고 확인 누르기 전에 알람이 와도 아무 소용이 없더라고요.
SNS 구독 확인 명령어는 아래와 같아요.
# SNS 구독 리스트 보기
aws sns list-subscriptions-by-topic \
--topic-arn arn:aws:sns:ap-northeast-2:123456789012:MyTopic
# 구독 확인은 실제 이메일이나 SMS로 온 링크 클릭해서 수동으로 해야 함
AWS CloudWatch 알람 설정으로 장애 미리 잡은 후기 관련 정보
알람 지연 문제와 정확한 모니터링 간격 맞추기
AWS CloudWatch는 기본 모니터링 간격이 5분인데, 좀 더 민감하게 감지하려면 1분 단위로도 가능해요. 근데 이걸 설정하지 않으면 장애가 발생해도 최대 5분 늦게 알림이 와서 대응에 지장이 있었죠.
알람을 빠르게 받으려면 아래처럼 --period 60과 함께 고해상도 알람 옵션을 넣어야 해요.
aws cloudwatch put-metric-alarm \
--alarm-name HighCPUUtilizationFast \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 60 \
--evaluation-periods 3 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--alarm-actions arn:aws:sns:ap-northeast-2:123456789012:MyTopic \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
--unit Percent \
--treat-missing-data missing
여기서 중요한 건 --treat-missing-data missing 옵션인데, 이걸 안 넣으면 데이터가 누락됐을 때 알람이 안 울릴 수도 있어요.
초보 때 흔히 하는 알람 불필요 반복 울림 막는 법
처음에 알람이 너무 많이 울려서 업무가 방해받는 상황이 꽤 있었는데, 보니깐 평가 기간이 너무 짧아서 잠깐만 임계치를 넘겨도 계속 울린 거더라고요.
그래서 저는 평가 기간과 함께 datapoints-to-alarm 옵션을 써서, 예를 들어 5분 중 3분 이상 조건을 초과해야 알람이 울리게 조정했어요. 이거 몰라서 3번 정도 재설정했습니다.
aws cloudwatch put-metric-alarm \
--alarm-name StableHighCPU \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 60 \
--evaluation-periods 5 \
--datapoints-to-alarm 3 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--alarm-actions arn:aws:sns:ap-northeast-2:123456789012:MyTopic \
--dimensions Name=InstanceId,Value=i-0123456789abcdef0
이렇게 하면 5번 중 3번 이상 조건을 만족할 때만 알람이 오니까 노이즈가 훨씬 줄었어요.
AWS CloudWatch 알람 설정으로 장애 미리 잡은 후기 관련 정보
경험 중 흔히 겪는 에러와 조치 사례들
한 번은 알람을 만들 때 "ResourceNotFound" 에러가 났는데 보니깐 Dimension 값에 인스턴스 아이디를 틀리게 넣었더라고요. 이게 의외로 찾기 힘들었어요.
An error occurred (ResourceNotFound) when calling the PutMetricAlarm operation: The parameter Dimensions is invalid. Resource Id: i-xxxxxxxxxxxx
이럴 때는 AWS 콘솔에서 EC2 → 인스턴스 메뉴 가서 정확한 InstanceId 복사하는 게 제일 빨라요.
또, Lambda 알람 설정할 때는 네임스페이스가 AWS/Lambda 인 거 꼭 기억해야 하고, 메트릭 이름도 정확하게 써야 합니다.
실전 팁: 여러 리소스 한 번에 모니터링하는 법
한두 개 인스턴스는 그냥 개별로 알람 만들면 되는데, 서버가 많아지면 하나씩 관리하기 어렵죠? 이럴 때는 메트릭 필터나 태그 기반 조건을 활용하면 편해집니다.
예를 들어, EC2에 공통 태그 Environment=Production을 달아놓고, 그 태그 달린 인스턴스 전체 CPU 평균을 감시하는 식으로요.
이건 콘솔에서 Metric Math 기능을 써서 아래처럼 평균을 구할 수 있어요.
SELECT AVG(CPUUtilization) FROM SCHEMA('AWS/EC2', { "Dimensions": { "Environment": "Production" } })
태그 활용이 힘들면 AWS CLI로 모든 인스턴스를 순회하면서 알람을 스크립트로 자동 생성하는 방식도 추천합니다.
자주 묻는 질문들
Q. 알람이 안 울릴 때 가장 먼저 확인할 부분은?
A. SNS 구독 상태와 알람 조건, 그리고 메트릭 데이터 수집 상태를 점검하세요. 특히 SNS 구독 확인을 안 하면 알람이 와도 알림을 못 받아요.
Q. 데이터가 없습니다(missing data) 알람은 왜 뜨나요?
A. 모니터링하는 리소스에서 메트릭 데이터가 올라오지 않을 때도 알람 조건에 따라 알람이 뜰 수 있어요. 이럴 땐 --treat-missing-data 옵션을 적절히 설정하는 게 중요합니다.
Q. 알람이 너무 자주 울려서 곤란해요. 어떻게 조절해야 할까요?
A. evaluation-periods, datapoints-to-alarm 값을 늘리고 임계값을 재검토해보세요. 노이즈를 줄이고 진짜 문제만 걸러낼 수 있습니다.
제가 AWS CloudWatch 알람을 세팅하면서 겪은 시행착오를 쭉 풀어봤는데요, 이 글 보시고 알람 설정하다가 헷갈리는 부분들은 대부분 해결할 수 있을 거예요. 모니터링 안 하면 장애도 모르고 지나치기 십상인데, 제대로 세팅해서 빠르게 대응할 수 있다는 게 얼마나 마음 편한지 직접 겪어보니 알겠더라고요. 앞으로도 이런 모니터링 관련 팁 있으면 공유할게요.
'Tech > AWS' 카테고리의 다른 글
| AWS EC2 프리티어 서버 처음 만들기, 제가 여러 번 실패한 경험담 (0) | 2026.08.12 |
|---|---|
| AWS SES로 이메일 발송 구현하며 겪은 비용과 설정 문제 해결기 (0) | 2026.08.04 |
| AWS Route53 도메인 연결할 때 2026년 업데이트 후 막혔던 DNS 설정 이야기 (0) | 2026.08.03 |
| AWS IAM 권한 설정 처음 할 때 제가 헷갈렸던 부분과 해결법 (0) | 2026.07.09 |
| AWS SES로 이메일 발송할 때 제가 겪은 문제와 해결 방법들 (0) | 2026.07.07 |
