DEVELOPMENT NOTE / CHIP THRONE

Slack Webhook 기반 장애 알림

문제

  • 애플리케이션 내부 알림만 두면 서버가 내려갔을 때 알림도 전송되지 않음
  • 외부 응답 확인만으로는 서버가 살아 있지만 시세 수집만 실패하는 상황을 알 수 없음

해결 전략

  • GitHub Actions가 EC2 밖에서 프론트와 API를 5분마다 확인하고 각 요청이 3회 실패하면 Slack 알림
  • 매일 오전 8시에 API 상태와 배포 버전을 확인해 정상 여부를 한 번 보고
  • 애플리케이션 기동 시 배포 버전을 알리고 시세 수집이 5회 연속 실패하면 장애 알림
  • 장애 상태에서 수집이 다시 성공하면 복구 알림 1회 전송
프론트 · API5분마다 확인GitHub Actions시세 수집결과 기록Failure State5회 연속 실패 시 장애응답 실패장애 · 복구Slack Webhook
외부 진입점 응답과 애플리케이션 내부 시세 수집 상태를 서로 다른 위치에서 감시

알림 빈도 제어

  • 3초 주기 시세 수집은 1시간 장애 시 최대 1,200번 실패하므로 건별 알림 제외
  • 5회 연속 실패할 때 상태를 장애로 바꾸고 같은 종류의 알림은 10분 동안 재전송하지 않음

검증

  • 5회 이전에는 알림을 보내지 않고 임계값에 도달하면 한 번만 전송하는 단위 테스트 작성
  • 장애 상태에서 다음 성공 응답이 들어오면 복구 알림을 한 번만 보내는 상태 전이 검증