장애 사후 분석 보고서 (Incident Postmortem)

장애 발생 원인을 분석하고 재발 방지 대책을 수립하기 위한 사후 분석 보고서 템플릿입니다.

Gist

장애 사후 분석 보고서: [서비스명/장애 요약]

날짜: 2026-05-05
작성자: [이름]
상태: [Draft / Reviewed / Completed]

1. 개요 (Summary)

장애의 전반적인 요약입니다. 무엇이 발생했고 어떤 영향이 있었는지 2~3문장으로 기술합니다.

  • 장애 발생: 2026-05-05 14:00 (KST)
  • 장애 복구: 2026-05-05 15:30 (KST)
  • 총 장애 시간: 90분
  • 영향 범위: [예: 결제 API 호출 실패, 전체 사용자의 약 15%]

2. 타임라인 (Timeline)

장애 발생부터 복구까지의 주요 이벤트를 시간 순서대로 기록합니다.

시간이벤트비고
14:00시스템 모니터링 알람 발생 (HTTP 500 에러 급증)온콜 담당자 할당
14:15DB 커넥션 풀 고갈 확인인프라 팀 협업 요청
14:40특정 배치 작업에 의한 부하 발생 확인원인 파악 완료
15:00배치 프로세스 강제 종료 및 커넥션 리셋복구 작업 시작
15:30서비스 정상화 확인복구 완료

3. 원인 분석 (Root Cause Analysis)

“왜” 발생했는지 심층 분석합니다. (5-Whys 기법 활용 권장)

  • 표면적 원인: DB 커넥션 풀 부족으로 인한 API 타임아웃.
  • 근본 원인: 정기 배치 작업의 쿼리가 인덱스 최적화가 되어 있지 않아 테이블 풀 스캔이 발생했고, 이로 인해 트랜잭션이 길어지면서 커넥션을 반환하지 못함.

4. 해결 방법 (Resolution)

장애를 복구하기 위해 취한 즉각적인 조치입니다.

# 긴급 조치 예시
# 배치 프로세스 중단
$ ./scripts/stop-batch.sh --job-id=X123
# DB 커넥션 강제 종료
$ psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE ..."

5. 재발 방지 대책 (Action Items)

장애가 다시 발생하지 않도록 하기 위한 향후 과제입니다.

  • 배치 쿼리 인덱스 최적화 (담당: [이름], 기한: 2026-05-10)
  • DB 커넥션 풀 임계치 도달 시 자동 알림 강화
  • 서비스 부하가 적은 새벽 시간대로 배치 작업 스케줄 변경

6. 결론 (Conclusion)

이번 장애를 통해 배운 점이나 향후 시스템 안정성을 위한 제언을 기술합니다.