← 목록

AWS Health Dashboard 모니터링 및 알림 자동화

AWS 내부 인프라 작업(ECS Task Patching Retirement 등)이 프로덕션에 미치는 영향을 사전에 감지하고 이메일 알림을 자동화하는 모니터링 구축

2024-09-18AWSMonitoringDevOpsAutomation

배경

실제 장애 사례

ECS 기반 배치 서비스에서 주문 수집이 중단되는 이슈가 발생했다. 원인을 추적한 결과, AWS 내부적으로 진행된 ElasticContainerService task patching retirement 작업이 ECS Task를 재기동시킨 것이 원인이었다.

[문제]
배치 서비스 주문 수집 중단

[원인]
AWS Health Dashboard: ElasticContainerService task patching retirement
→ AWS Fargate 플랫폼 버전 업데이트로 인해
   이전 플랫폼 버전의 Task가 자동 종료 및 교체

[영향]
Task 재기동 중 배치 처리 중단 → 주문 수집 누락

이 사건은 단순한 참고용 알림이 아니라, 실제 프로덕션에 영향을 주는 계획된 인프라 작업이었다.


왜 AWS Health Dashboard 모니터링이 필요한가

AWS 내부 작업이 사용자 리소스에 영향을 줌

AWS Fargate는 서버 관리 없이 자동으로 리소스를 제공하는 서비스이기 때문에, 기능 추가와 유지보수를 위해 플랫폼을 정기적으로 업데이트한다.

ElasticContainerService task patching retirement는 AWS가 새로운 플랫폼 버전 revision을 배포함에 따라 이전 플랫폼 버전에서 실행 중인 태스크가 자동으로 종료되고 교체되는 작업이다.

업데이트 내용:

조기 경보의 가치

대부분의 Health Dashboard 알림은 사전에 공지된다.

"ElasticContainerService task patching retirement가 진행될 예정입니다"

이 정보를 바탕으로 사전 조치가 가능하다:


모니터링 대상

EC2를 제외한 AWS 관리형 서비스 관련 이벤트를 중점 모니터링한다.

서비스주요 이벤트
ECS FargateTask Patching Retirement, 플랫폼 버전 업데이트
LambdaRuntime Deprecation, 보안 패치
S3서비스 장애, API 오류율 증가
기타 관리형 서비스Retirement, Patching, Reboot

중요 알람: ECS Task Patching Retirement

AWS Fargate 플랫폼 버전 업데이트
    ↓
이전 플랫폼 버전의 Task 자동 종료
    ↓
새 플랫폼 버전으로 Task 교체 (재기동)
    ↓
재기동 중 서비스 일시 중단 가능

알림 자동화 구성

방식: AWS User Notifications

AWS Health Dashboard
    ↓
AWS User Notifications (알림 규칙 설정)
    ↓
이메일 채널 → 팀 메일로 자동 전달

설정 과정

  1. AWS User Notifications 활성화

    • AWS 콘솔 → User Notifications → 알림 규칙 생성
  2. 알림 대상 이벤트 설정

    • Fargate, Lambda, S3 등 관리형 서비스의 Retirement, Patching, Reboot 이벤트
  3. 이메일 채널 연결

    • 팀 메일 주소를 수신 대상으로 등록
  4. 동작 확인

    • 이메일 정상 수신 확인 완료

EventBridge 연동 (확장)

더 세밀한 제어가 필요한 경우 EventBridge를 활용할 수 있다.

{
  "source": ["aws.health"],
  "detail-type": ["AWS Health Event"],
  "detail": {
    "service": ["ELASTICCONTAINERSERVICE", "LAMBDA", "S3"],
    "eventTypeCategory": ["scheduledChange", "accountNotification"]
  }
}
AWS Health Event
    ↓
EventBridge Rule (서비스/이벤트 유형 필터)
    ↓
SNS Topic → 이메일 / Slack / SMS

운영 프로세스

일일 모니터링 목록에 추가

AWS Health Dashboard를 일일 모니터링 체크리스트에 포함시켰다.

일일 모니터링 체크리스트:
  ☐ CloudWatch 알람 상태 확인
  ☐ ECS Task 상태 확인
  ☐ AWS Health Dashboard 확인 ← 추가
  ☐ Agent 동기화 상태 확인

사전 알림 수신 시 대응 절차

1. Health Dashboard 알림 수신 (이메일)
2. 영향 범위 파악 (어떤 서비스, 어떤 리전)
3. 사전 조치 실행
   - ECS: 이미지 최신화, 롤링 업데이트 사전 실행
   - Lambda: 런타임 버전 업데이트
4. 작업 예정 시간대에 모니터링 강화
5. 작업 완료 후 서비스 정상 동작 확인

정리


배운 점

우리가 아무것도 바꾸지 않아도 서비스는 멈출 수 있다. 관리형 서비스를 쓴다는 건 운영의 일부를 AWS에 맡긴다는 뜻이고, 그 쪽에서 하는 작업도 우리 서비스의 변경 이벤트라는 걸 이 장애로 알게 됐다.

그래서 모니터링 대상에 "우리 인프라의 상태"만이 아니라 "AWS가 우리 인프라에 하려는 작업"을 추가했다. 감지가 아니라 예고를 받는 채널이라는 점에서 성격이 다르다.

Fargate 플랫폼 교체로 Task가 재기동된다는 건, 언제든 컨테이너가 사라질 수 있다는 전제를 다시 확인해 준 사건이기도 했다. 이 전제는 ECS Fargate 컨테이너 Health Check 기반 자동 재시작 구현과 ECS Task STOPPED 상태 감지에서 계속 이어진다.


이어 읽기