이종관
글 목록으로

장애 대응과 인시던트 관리: 온콜부터 포스트모템까지

인시던트 생명주기, ICS 역할 분담, 런북, 포스트모템, 카오스 엔지니어링

2025년 2월 2일·16 min read·
infra
incident-management
sre
on-call
postmortem
chaos-engineering

개요

장애는 상용 서비스에서 불가피한 현실이다. 모든 시스템은 결국 실패하며, 중요한 것은 장애가 발생하지 않도록 하는 것이 아니라, 장애에 얼마나 빠르고 효과적으로 대응하는가이다. Google SRE의 철학처럼, "실패를 방지하는 것이 아니라 실패로부터 빠르게 복구하는 것"이 핵심이다.

2026년 현재, AI 기반 인시던트 관리 플랫폼이 주류로 진입하면서 MTTR(평균 복구 시간)이 17.8% 감소하고, 선도적 구현에서는 30-70% 감소를 달성하고 있다. 그러나 AI는 인간의 판단을 대체하는 것이 아니라, 탐색 범위를 좁히고 반복 작업을 자동화하여 온콜 엔지니어를 보조하는 방향으로 발전하고 있다.

인시던트 관리 생명주기

plaintext
탐지 (Detection)

트리아지 (Triage)

대응 (Response)

완화 (Mitigation)

복구 (Recovery)

사후 분석 (Post-Mortem)

개선 (Improvement)

온콜과 알림 관리 (On-Call and Alerting)

온콜 체계

온콜(On-Call)은 지정된 시간 동안 시스템 장애에 즉각 대응하는 책임을 가진 엔지니어 체계이다.

건강한 온콜 체계의 원칙:

  1. 로테이션: 최소 8명 이상의 엔지니어로 순환 (1주 단위 권장)
  2. 에스컬레이션 경로: 1차 → 2차 → 관리자 → 경영진 순서
  3. 보상: 온콜 수당 또는 대체 휴일 보장
  4. 알림 품질: 실행 가능한(Actionable) 알림만 발송
  5. 토일 예산: 온콜 시간의 50% 이상이 반복 작업이면 자동화 필요

알림 라우팅과 심각도 분류 (Severity Classification)

심각도설명대응 시간예시
SEV1 (Critical)서비스 전체 중단즉시 (5분 이내)메인 DB 장애, 결제 시스템 다운
SEV2 (High)핵심 기능 부분 장애30분 이내특정 API 엔드포인트 500 에러
SEV3 (Medium)비핵심 기능 영향4시간 이내관리자 대시보드 느림
SEV4 (Low)경미한 문제다음 업무일UI 깨짐, 로그 경고

알림 피로(Alert Fatigue) 방지:

  • 실행 가능하지 않은 알림 제거
  • 관련 알림 자동 그룹핑
  • 알림 억제(Suppression) 규칙 설정
  • 유지보수 윈도우(Maintenance Window) 동안 알림 뮤트

인시던트 커맨드 시스템 (Incident Command System, ICS)

개념

대규모 인시던트 발생 시, 명확한 역할 분담과 의사결정 체계를 통해 효율적으로 대응하는 프레임워크이다. 원래 산불 진화 등 재난 대응에서 유래했으며, 기술 기업에서 채택하여 활용하고 있다.

핵심 역할

plaintext
┌─────────────────────────────────────┐
│        인시던트 커맨더 (IC)           │
│     의사결정 총괄, 외부 커뮤니케이션   │
└───────────┬─────────────────────────┘

    ┌───────┼───────┬────────────┐
    ▼       ▼       ▼            ▼
 ┌──────┐ ┌──────┐ ┌────────┐ ┌────────────┐
 │기술   │ │커뮤니│ │운영    │ │스크라이브  │
 │리드   │ │케이션│ │리드    │ │(Scribe)   │
 │(Tech │ │리드  │ │(Ops   │ │ 타임라인   │
 │ Lead)│ │(Comms│ │ Lead) │ │ 기록      │
 └──────┘ │Lead) │ └────────┘ └────────────┘
           └──────┘
역할책임
인시던트 커맨더 (IC)전체 대응 총괄, 의사결정, 에스컬레이션 판단
기술 리드 (Tech Lead)기술적 조사 및 완화 조치 실행
커뮤니케이션 리드이해관계자, 고객, 경영진에 상황 전달
운영 리드인프라 상태 확인, 서비스 복구 지원
스크라이브타임라인, 조치 사항, 의사결정 기록

인시던트 대응 프로세스

plaintext
1. 알림 수신 → 온콜 엔지니어 확인 (5분 이내)
2. 초기 평가 → 심각도 분류 (SEV1-4)
3. SEV1/SEV2 → 인시던트 선언 → 전쟁방(War Room) 개설
4. 역할 배정 → IC, Tech Lead, Comms Lead, Scribe
5. 조사 및 완화 → 근본 원인 발견 전이라도 증상 완화 우선
6. 커뮤니케이션 → 정기적 상태 업데이트 (15-30분 간격)
7. 해결 → 서비스 정상 확인 → 인시던트 종료 선언
8. 사후 분석 → 48-72시간 이내 포스트모템 작성

런북과 플레이북 (Runbooks and Playbooks)

런북 (Runbook)

특정 알림이나 장애 상황에 대한 단계별 대응 절차를 문서화한 것이다.

markdown
# Runbook: 데이터베이스 연결 고갈 (DB Connection Pool Exhaustion)
 
## 알림 조건
- 활성 DB 연결 수 > 최대 풀 크기의 90%
 
## 초기 진단
1. 현재 활성 연결 수 확인: `SELECT count(*) FROM pg_stat_activity;`
2. 오래 실행 중인 쿼리 확인: `SELECT * FROM pg_stat_activity WHERE state = 'active' AND duration > interval '30 seconds';`
3. 연결 대기 큐 확인
 
## 완화 조치
1. 오래 실행 중인 쿼리 종료: `SELECT pg_cancel_backend(pid);`
2. 필요시 유휴 연결 정리
3. 연결 풀 크기 일시적 증가 (PgBouncer 설정)
 
## 근본 원인 조사
- 느린 쿼리 로그 분석
- 최근 배포 이력 확인
- 트래픽 급증 여부 확인
 
## 에스컬레이션
- 30분 내 해결 불가 시: DBA 팀 호출

플레이북 (Playbook)

런북보다 상위 수준의 대응 전략을 정의한다. 인시던트 유형별 대응 방법, 커뮤니케이션 절차, 에스컬레이션 기준 등을 포함한다.

포스트모템 (Post-Mortem)과 근본 원인 분석 (RCA)

비난 없는 문화 (Blameless Culture)

포스트모템의 핵심은 **"누가 잘못했는가?"가 아니라 "왜 시스템이 이를 허용했는가?"**를 묻는 것이다.

비난 없는 포스트모템의 원칙:

  1. 사람이 아닌 시스템과 프로세스에 초점
  2. 정보를 가진 사람이 안전하게 공유할 수 있는 환경
  3. 실수는 학습의 기회이며, 처벌의 대상이 아님
  4. 모든 포스트모템은 조직 전체에 공개

포스트모템 템플릿

markdown
# 포스트모템: [인시던트 제목]
 
## 요약
- 날짜: YYYY-MM-DD
- 심각도: SEV1
- 영향 시간: HH:MM ~ HH:MM (총 X분)
- 영향 범위: Y% 사용자의 Z 기능
 
## 타임라인
| 시간 | 이벤트 |
|------|--------|
| 14:00 | 배포 v2.3.1 시작 |
| 14:05 | 에러율 1% → 15% 급증 |
| 14:07 | 알림 발송, 온콜 엔지니어 확인 |
| 14:10 | 인시던트 선언 (SEV1), IC 배정 |
| 14:15 | 배포 롤백 결정 |
| 14:20 | 롤백 완료, 에러율 정상화 |
 
## 근본 원인
데이터베이스 마이그레이션 스크립트가 인덱스를 삭제하면서
주요 쿼리의 응답 시간이 10배 증가, 연결 풀 고갈로 이어짐
 
## 기여 요인
- 마이그레이션 스크립트 리뷰 부재
- 카나리 배포 없이 전체 배포
- DB 커넥션 풀 모니터링 알림 미설정
 
## 교훈
- 잘된 점: 빠른 롤백 결정 (10분 이내)
- 개선할 점: 마이그레이션 리뷰 프로세스, 카나리 배포
 
## 액션 아이템
| 번호 | 조치 | 담당자 | 기한 | 우선순위 |
|------|------|--------|------|----------|
| 1 | DB 마이그레이션 리뷰 체크리스트 작성 | DBA팀 | 1주 | P1 |
| 2 | 카나리 배포 필수화 | DevOps | 2주 | P1 |
| 3 | DB 커넥션 풀 알림 추가 | SRE | 1주 | P2 |

근본 원인 분석 기법

5 Whys (다섯 번의 왜):

plaintext
왜 서비스가 중단되었는가?
  → 데이터베이스 연결 풀이 고갈되었기 때문
왜 연결 풀이 고갈되었는가?
  → 쿼리 응답 시간이 10배 증가하여 연결이 반환되지 않았기 때문
왜 쿼리 응답 시간이 증가했는가?
  → 인덱스가 삭제되어 Full Table Scan이 발생했기 때문
왜 인덱스가 삭제되었는가?
  → 마이그레이션 스크립트에 DROP INDEX가 포함되어 있었기 때문
왜 리뷰에서 발견되지 않았는가?
  → 마이그레이션 스크립트 리뷰 프로세스가 없었기 때문 (근본 원인)

Fishbone Diagram (이시카와 다이어그램): 원인을 범주별로 분류하여 시각화: 사람, 프로세스, 기술, 환경

신뢰성 메트릭 (Reliability Metrics)

메트릭의미계산목표
MTTD (Mean Time to Detect)평균 탐지 시간장애 발생 ~ 알림 수신< 5분
MTTA (Mean Time to Acknowledge)평균 인지 시간알림 수신 ~ 확인< 5분
MTTR (Mean Time to Recover)평균 복구 시간장애 발생 ~ 서비스 복구< 1시간
MTTF (Mean Time to Failure)평균 장애 간격복구 ~ 다음 장애최대화
MTBF (Mean Time Between Failures)평균 장애 주기MTTF + MTTR최대화
plaintext
MTBF = MTTF + MTTR
 
가용성 = MTTF / MTBF = MTTF / (MTTF + MTTR)
 
예시: MTTF = 720시간, MTTR = 0.5시간
가용성 = 720 / 720.5 = 99.93%

카오스 엔지니어링과 Game Day

Game Day

계획된 장애 시뮬레이션 이벤트로, 팀이 실제 장애 상황을 연습하고 대응 능력을 검증한다.

Game Day 진행 절차:

  1. 시나리오 설계: "주 데이터베이스가 5분간 응답하지 않는다면?"
  2. 폭발 반경 제한: 비프로덕션 환경 또는 제한된 트래픽
  3. 관찰자 배치: 모니터링 대시보드, 알림 시스템 감시
  4. 실험 실행: 장애 주입
  5. 대응 평가: ICS 활성화, 런북 사용, 커뮤니케이션 효과 평가
  6. 회고: 발견된 약점과 개선점 도출

프리모템 (Pre-Mortem) 분석

장애가 발생하기 전에 "이 프로젝트가 실패했다면 왜 실패했을까?"를 상상하여, 잠재적 위험을 사전에 식별하는 기법이다.

plaintext
가정: "6개월 후, 이 시스템에서 대규모 장애가 발생했다."
질문: "무엇이 잘못되었을까?"
 
팀원들이 독립적으로 실패 시나리오를 작성하고 공유:
- "DB 샤드 간 불균형으로 핫스팟 발생"
- "서드파티 결제 API 장시간 장애"
- "캐시 스탬피드로 DB 과부하"

인시던트 관리 도구 (2026)

주요 플랫폼

도구특징AI 기능
PagerDuty엔터프라이즈 온콜 관리이벤트 인텔리전스, 자동 트리아지
OpsGenie (Atlassian)Jira/Confluence 통합알림 라우팅 자동화
incident.ioSlack 네이티브 인시던트 관리AI 기반 요약, 자동 타임라인
RootlyAI 기반 SRE 자동화근본 원인 추론, 런북 실행
FireHydrant인시던트 라이프사이클 관리자동 상태 페이지 업데이트

AI SRE 에이전트 (2026 트렌드)

AI SRE는 자동화된 사이트 신뢰성 엔지니어로서, 인시던트를 자율적으로 조사하고 근본 원인을 식별하며 수정을 제안하거나 실행한다.

Multi-Agent AI 접근 (2026 최신): 기계에게 호출기를 넘기는 것이 아니라, 여러 AI 에이전트가 온콜 엔지니어와 함께 작업하는 방식으로:

  • 탐색 범위 축소
  • 반복적 단계 자동화
  • 판단이 필요한 결정은 인간에게 위임

AIOps의 SRE 역할 변화: 전통적으로 SRE가 인시던트 대응, 알림 처리, 모니터링 등 반복 작업에 상당 시간을 소비했지만, AIOps가 이러한 기능을 자동화하면서 SRE는 전략적 기여에 집중할 수 있게 되었다.

SRE 문화와 실천

Google SRE의 핵심 원칙

  1. 토일 제거 (Eliminating Toil): 수동 반복 작업을 자동화
  2. 에러 버짓 (Error Budget): 혁신과 안정성의 균형 → 모니터링 및 관측 가능성
  3. 점진적 롤아웃: 한 번에 전체 배포하지 않음 → 배포 전략
  4. 포스트모템: 모든 SEV1/SEV2 인시던트에 대해 수행
  5. 단순성 추구: 복잡성은 장애의 원인

SRE와 DevOps의 관계

plaintext
DevOps = 문화와 철학 (무엇을 해야 하는가)
SRE    = 구체적 구현 (어떻게 해야 하는가)
 
"SRE는 DevOps 철학의 특정 구현이다" - Google

참고 자료

  • Site Reliability Engineering - Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Murphy (Google)
  • Incident Management for Operations - Rob Schnepp, Ron Vidal, Chris Hawley
  • The Phoenix Project - Gene Kim, Kevin Behr, George Spafford
  • PagerDuty Incident Response Guide: https://response.pagerduty.com