Interview
프로덕션에서 장애가 발생했다면, 어떤 단계로 접근할 것인가요?
DevOps Engineer
2025. 3. 16. 22:37
728x90
장애 발생 시, 먼저 모니터링 시스템을 활용해 문제를 감지하고, 영향을 분석하여 빠르게 복구 가능한 조치를 실행합니다. 이후, 근본 원인을 분석하여 재발 방지 대책을 마련하고, 포스트모템을 통해 대응 프로세스를 지속적으로 개선합니다.
모범 답변: 프로덕션 장애 발생 시 대응 방법
장애 발생 시 신속한 대응과 체계적인 접근이 중요합니다. 저는 장애 대응을 5단계 프로세스로 접근합니다:
1️⃣ 장애 감지 및 초기 대응 (Detection & Triage)
- 모니터링 시스템(Alerting & Logging):
- 프로덕션 환경에서는 Prometheus, Grafana, Datadog, CloudWatch 등을 활용하여 실시간 장애 감지
- 중요한 지표(예: API 응답 속도, 에러율, CPU/메모리 사용량)에서 비정상적인 패턴 탐지
- 즉각적인 영향 분석 (Initial Assessment):
- 장애가 전사적인 영향(서비스 전체 중단)인지, 일부 트래픽(특정 지역, 특정 API)만 문제인지 확인
- Slack, PagerDuty, OpsGenie 등의 알람을 통해 온콜 엔지니어가 대응
✅ 예시:
"로그 분석과 메트릭 대시보드를 확인하여 장애가 특정 API에서 발생한 것인지, 전체 시스템 문제인지 빠르게 파악합니다."
2️⃣ 장애 범위 및 원인 분석 (Isolation & Root Cause Analysis)
- 문제의 영향을 명확히 분리(Isolation)
- 장애가 발생한 컴포넌트가 애플리케이션 레벨, 인프라 레벨, 외부 의존성(DB, CDN 등) 중 어디인지 확인
- 최근 배포(Deployment) 변경 사항 확인
- 트래픽이 급격히 증가했는지, 특정 서비스에 장애가 발생했는지 로그와 메트릭을 통해 분석
✅ 예시:
"최근 배포된 코드에서 문제가 발생했는지 kubectl rollout history, git log 등을 활용하여 변경 사항을 확인하고, 이상 징후가 있는 서비스만 개별적으로 롤백 테스트를 진행합니다."
3️⃣ 긴급 조치 및 임시 해결책 (Mitigation & Quick Fix)
- 빠르게 복구할 수 있는 방법 우선 실행
- 최근 배포된 코드라면 즉시 롤백(Rollback) or Canary Deployment 진행
- API 트래픽 과부하라면 Auto-scaling 트리거 or Rate Limiting 적용
- DB 문제라면 Replica Failover 진행 or Query 최적화
- 네트워크 이슈라면 CDN 캐시 초기화 or DNS Failover 적용
✅ 예시:
"장애가 특정 배포 이후 발생했다면 kubectl rollback을 통해 이전 버전으로 롤백하고, 트래픽을 줄이기 위해 Rate Limiting을 적용합니다."
4️⃣ 근본 원인 분석 및 영구적 해결 (Root Cause Fix & Postmortem)
- 장애의 근본적인 원인을 해결하기 위해 심층 분석
- 서비스 로그와 트레이싱(AWS X-Ray, OpenTelemetry)으로 정확한 문제 지점 확인
- 재발 방지를 위해 테스트 커버리지 추가, 장애 대응 매뉴얼 개선
- Postmortem 작성하여 장애 원인, 대응 조치, 예방책 공유
✅ 예시:
"이번 장애의 원인은 데이터베이스 커넥션 풀 설정이 적절하지 않아 대량의 연결이 누적된 것이었습니다. 향후 이를 방지하기 위해 커넥션 풀 크기를 조정하고, Circuit Breaker 패턴을 도입할 예정입니다."
5️⃣ 사후 리뷰 및 장애 대응 프로세스 개선 (Postmortem & Continuous Improvement)
- 팀 내부 공유 및 피드백 세션 진행
- 장애 대응 중 개선할 점이 있었는지 분석
- 필요한 경우 온콜 프로세스 개선, 모니터링 강화, 복구 자동화 추가
✅ 예시:
"이번 장애는 특정 트래픽 패턴을 감지하지 못해 발생했습니다. 이를 방지하기 위해 로그 기반의 실시간 이상 감지 시스템을 추가하고, 온콜 프로세스를 개선하겠습니다."
💡 최종 정리 (One-liner Summary)
"장애 발생 시, 먼저 모니터링 시스템을 활용해 문제를 감지하고, 영향을 분석하여 빠르게 복구 가능한 조치를 실행합니다. 이후, 근본 원인을 분석하여 재발 방지 대책을 마련하고, 포스트모템을 통해 대응 프로세스를 지속적으로 개선합니다."
728x90