Scheduled Health Checks on AWS Lambda

Scheduled Health Checks on AWS Lambda

AWS 리소스 상태를 주기적으로 점검하고 이상 감지 시 Slack/전화로 통보하는 서버리스 시스템입니다.
담당: 아키텍처 설계, Lambda 구현, 알림 연동 (온콜 정책과 대응 절차는 파트 협의)

1. Current Status

기존 구축, 일부 기능 운영 중

현재 전사 서버 모니터링은 Datadog(핵심 PG 영역) 과 Elastic Stack(그 외 서버) 이 담당합니다. 이 시스템은 그중 LB Target Group unhealthy 상태 점검에 주로 활용하고 있습니다.

아래 내용은 구축 당시의 설계와 구현을 기록한 것이며, 현재 운영 중인 기능과는 구분해서 읽어주세요.


2. Overview

AWS 리소스 상태를 EventBridge로 5분마다 주기 점검하고, 이상 상태가 지속되면 Slack 알림과 전화 발신으로 통보하는 서버리스 시스템을 설계/구축했습니다.

점검 주기가 5분이라는 뜻이며, 모든 장애를 5분 이내에 인지한다는 보장은 아닙니다. 상태 변화 시점, 지속 여부 판정, 통보 경로에 따라 실제 인지 시점은 달라집니다.


3. Background

What Triggered It

AWS 물리 호스트 장애로 운영 서버 1대가 응답 불가 상태에 빠진 일이 있었습니다. NLB 헬스체크 실패로 해당 인스턴스는 자동으로 트래픽에서 제외되어 서비스 영향은 없었지만, 새벽 시간대에 발생한 탓에 DevOps 파트가 인스턴스 장애 자체를 인지하기까지 수 시간이 걸렸습니다.

서비스는 이중화 덕분에 버텼지만, 인스턴스 장애를 빠르게 인지하지 못한 것이 문제로 지적되었습니다.

Root Causes

  • EC2 상태 변화에 대한 자동 알람 체계 부재
  • SSM 연결 끊김, Target Group Unhealthy 등에 대한 점검 없음
  • 야간/주말 장애 시 담당자에게 통보할 온콜 체계 없음

이 사건의 개선책으로 주기적 상태 점검 시스템을 설계/구축하게 되었습니다.


4. Problem Statement

문제영향
서버 상태를 수동으로 확인장애 인지까지 수십 분~수 시간 소요
장애 알림 체계 부재사용자 신고 후에야 인지
온콜 체계 없음야간/주말 장애 대응 불가

5. Architecture


EC2 Monitoring

EC2 Monitoring Diagram

  1. Lambda + EventBridge: 5분 주기로 점검 함수 실행
  2. S3 상태 관리: 이전 상태와 비교하여 일정 시간 지속된 문제만 알림 (오알람 방지)
  3. 스누즈 기능: Slack 버튼 클릭으로 15분간 알람 차단 (알람 피로 방지)
  4. 심각도 분리: WARNING은 Slack만, CRITICAL은 Slack + 전화 발신

6. Monitored Checks

Core Checks

#항목방식
1EC2 Instance StatusEC2 API (running 여부)
2SSM 연결 상태SSM API (online 여부)
3Target Group HealthELB API (healthy 여부)

Additional Checks (Added in Operation)

#항목방식
4Disk 사용량SSM RunCommand (80%+ 알람)
5Batch 실행 여부S3 마커 파일 확인
6인증서 만료일만료 D-30 사전 알람

7. Results at Launch

지표BeforeAfter
상태 확인수동 확인5분 주기 자동 점검
장애 인지사용자 신고 또는 우연한 발견이상 감지 시 Slack 통보
야간/주말 대응불가전화 발신 + 온콜 연계

8. Limitations & Current State

  • 상태 점검은 UP/DOWN 판별까지이며, 리소스 추이나 로그 분석은 다루지 않습니다. 이 영역은 이후 ECK 기반 수집 플랫폼이 담당하게 되었습니다.
  • Lambda 역시 함수 오류/타임아웃/호출 실패가 발생할 수 있으므로, 이 시스템 자체의 실패 가능성을 전제하고 운영해야 합니다.
  • 현재는 전사 모니터링의 주력이 Datadog과 Elastic Stack으로 이동했고, 이 시스템은 LB Target Group 점검 용도로 남아 있습니다.

9. Used Skills

  • AWS Lambda (Python)
  • Amazon EventBridge
  • Amazon S3 (상태 관리)
  • SSM Parameter Store
  • API Gateway (스누즈 엔드포인트)
  • Slack Webhook + 전화 발신 연동