CloudWatch 알람과 알림

AWS 모니터링 및 문제 해결

John Q. Martin

Principal Consultant

CloudWatch 알람이란?

 

핵심 개념

  • 일정 기간 동안 단일 지표를 관찰합니다
  • 지표가 임계값을 초과하면 작업을 수행합니다

 

CloudWatch 알람의 6가지 핵심 구성 요소: 지표, 임계값, 기간, 평가 기간, 알람 데이터포인트, 작업

AWS 모니터링 및 문제 해결

알람 상태

CloudWatch 알람의 세 가지 상태: OK, ALARM, INSUFFICIENT_DATA

지표 데이터가 수집될 때 CloudWatch 알람이 상태를 전환하는 과정을 보여주는 다이어그램

AWS 모니터링 및 문제 해결

알람 평가

 

  1. 지정된 간격으로 데이터포인트를 수집합니다
  2. 기간 동안 통계(평균, 합계, 최대, 최소)를 적용합니다
  3. 결과를 임계값과 비교합니다
  4. 임계값을 초과한 평가 기간 수를 계산합니다
  5. 알람 데이터포인트 기준을 충족하면 상태를 변경합니다

 

Metric: CPUUtilization > 80%
Period: 5 min | 
Eval Periods: 3 | 
Datapoints to Alarm: 2 of 3

Period 1: 85% (breach) | 
Period 2: 75% (ok) | 
Period 3: 90% (breach)
Result: ALARM — 2 of 3 breached
AWS 모니터링 및 문제 해결

평가 전략

 

세 가지 알람 평가 전략: 연속 위반, 부분 위반, 단일 위반과 민감도 트레이드오프

AWS 모니터링 및 문제 해결

알람 작업 유형과 트리거

 

작업 트리거

  • OK
  • ALARM
  • INSUFFICIENT_DATA

 

작업 유형

  • SNS 알림
  • Auto Scaling
  • EC2 작업(중지/종료/재부팅/복구)
  • Systems Manager
AWS 모니터링 및 문제 해결

누락 데이터 처리 방식

 

알람의 누락 데이터 처리 옵션: notBreaching, breaching, ignore, missing

AWS 모니터링 및 문제 해결

AWS CLI로 표준 알람 생성하기

aws cloudwatch put-metric-alarm \
  --alarm-name HighCPUUtilization \
  --alarm-description "Alert when CPU exceeds 80%" \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 2 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold \
  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:my-topic
AWS 모니터링 및 문제 해결

복합 알람: 정의와 필요성

문제

  • 관련 알람이 개별적으로 발생 = 알림 피로

해결책

  • 논리 연산자로 알람을 결합합니다

AND, OR, NOT 연산자로 하위 알람을 결합하는 복합 알람 로직

AWS 모니터링 및 문제 해결

AWS CLI로 복합 알람 생성하기

aws cloudwatch put-composite-alarm \
  --alarm-name CriticalSystemHealth \
  --alarm-description "Critical when CPU and Memory both high" \
  --actions-enabled \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:critical-alerts \
  --alarm-rule "ALARM(HighCPUAlarm) AND ALARM(HighMemoryAlarm)"
복잡한 규칙 예시
--alarm-rule "(ALARM(HighErrorRate) OR ALARM(HighLatency)) \
  AND NOT ALARM(MaintenanceMode)"
AWS 모니터링 및 문제 해결

임계값 선택 전략

네 가지 임계값 선택 전략: 기준값 편차, 용량 한계, SLA 목표, 변화율

AWS 모니터링 및 문제 해결

다단계 알람 전략

 

경고, 심각, 긴급 단계로 구분되어 각각 다른 SNS 주제로 전달되는 다단계 알람 대응 체계

예시: CPU 경고는 75%, 심각은 90%에서 발생하며 각각 다른 SNS 주제를 사용합니다

AWS 모니터링 및 문제 해결

이상 탐지 알람

aws cloudwatch put-metric-alarm \
  --alarm-name AnomalousTraffic \
  --comparison-operator LessThanLowerOrGreaterThanUpperThreshold \
  --metrics '[
    {"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/ApplicationELB",
      "MetricName":"RequestCount"},"Period":300,"Stat":"Average"}},
    {"Id":"e1","Expression":"ANOMALY_DETECTION_BAND(m1, 2)"}
  ]'
  • ML 모델이 정상적인 지표 동작을 학습합니다
  • 동적 임계값 범위를 생성합니다(구성 가능)
  • 일별/주별 패턴에 적응합니다
  • 수동 임계값 조정 작업을 줄입니다
AWS 모니터링 및 문제 해결

리소스 알람: Lambda와 ALB

Lambda 알람

오류 수, 스로틀링, 제한 시간에 근접한 긴 실행 시간을 감시하는 권장 Lambda 알람

ALB 알람

대상 응답 시간, 비정상 호스트, 5xx 오류 수를 감시하는 권장 ALB 알람

AWS 모니터링 및 문제 해결

알람 관리 권장 사례

  • 이름 규칙: <Service>-<Metric>-<Resource>-<Severity>
  • 설명: 모니터링 대상, 임계값, 문제 해결 힌트, 런북 링크
  • 태그: 환경, 팀, 심각도
  • 월별 검토: 임계값 조정, 불필요한 항목 제거, 작업 업데이트
aws cloudwatch set-alarm-state \
  --alarm-name MyAlarm \
  --state-value ALARM \
  --state-reason "Testing alarm notification"
AWS 모니터링 및 문제 해결

동영상 요약

  • 세 가지 알람 상태: OK, ALARM, INSUFFICIENT_DATA
  • 평가 전략: 연속 위반, 부분 위반, 단일 위반
  • 복합 알람은 AND, OR, NOT으로 여러 알람을 결합합니다
  • 네 가지 임계값 전략: 통계적, 용량, SLA, 변화율
  • 다단계 알림: 경고 → 심각 → 긴급
  • Lambda(오류, 스로틀링, 실행 시간)와 ALB(5xx, 지연 시간) 리소스 알람
AWS 모니터링 및 문제 해결

연습해 봅시다!

AWS 모니터링 및 문제 해결

Preparing Video For Download...