📌 원문 문제
카오스 엔지니어링(Chaos Engineering)을 설명하시오.
출제 의도 분석
마이크로서비스·클라우드 환경에서 장애가 언제든 발생한다는 전제 하에 의도적으로 장애를 주입하여 시스템 복원력을 사전에 검증하는 방법론입니다. SRE·에러 버짓과 연계하여 설명하면 완성도가 높아집니다.
1. 개념
카오스 엔지니어링이란 운영 환경에서 통제된 장애를 의도적으로 주입하여 시스템의 불확실성을 드러내고, 약점을 사전에 발견·개선하여 복원력(Resilience)을 높이는 실험적 훈련 방법론입니다. Netflix가 AWS 의존 시스템의 복원력 검증을 위해 2010년 Chaos Monkey를 공개하며 체계화되었습니다.
2. 4단계 실험 프로세스
| 단계 | 활동 | 예시 |
|---|---|---|
| ① 가설 수립 | 정상 상태(Steady State) 정의, 예상 영향 가설 작성 | “결제 서버 1대 중단 시 전체 결제 성공률 99% 유지” |
| ② 장애 주입 | 실험 대상 선정, 최소 범위로 장애 실행 | 랜덤 EC2 인스턴스 종료, 네트워크 지연 50ms 주입 |
| ③ 관찰·검증 | 실제 지표 vs 가설 비교, 편차 분석 | 성공률이 95%로 하락 → 가설 기각 |
| ④ 개선·반복 | 발견된 약점 수정, 범위 확대 재실험 | 서킷 브레이커 추가 후 동일 실험 재수행 |
3. 주요 실천 도구
- Chaos Monkey (Netflix): 운영 환경에서 무작위로 서버 인스턴스를 종료. Simian Army로 확장 (Chaos Gorilla: AZ 전체 중단)
- Chaos Toolkit: 오픈소스. 쿠버네티스·AWS·Azure 환경 장애 주입 자동화
- AWS Fault Injection Simulator: AWS 관리형 카오스 엔지니어링 서비스
- Game Day: 팀 전체가 참여하는 대규모 장애 시뮬레이션 훈련 행사
4. 도입 원칙
- 최소 폭발 반경: 처음엔 스테이징 환경·소규모부터 시작. 자신감이 붙으면 점진적으로 운영 확대
- 자동 중단(Kill Switch): 실험이 예상 외로 확산될 경우 즉시 중단하는 메커니즘 필수
- 경영진 지지: 의도적 장애 주입은 문화적 저항 큼 → 사전 교육·승인 필수
✅ 핵심 암기: 카오스 엔지니어링 = 장애 의도 주입으로 약점 사전 발견 | 4단계: 가설→주입→관찰→개선 | Chaos Monkey·Game Day
카오스 엔지니어링을 안전하게 시작하는 순서
카오스 엔지니어링은 장애를 일부러 일으키는 것이 목적이 아니라, 시스템이 실제 장애에 견디는지를 가설로 세우고 통제된 실험으로 검증하는 활동입니다. 넷플릭스의 Chaos Monkey가 대표 사례로 알려져 있습니다.
실험은 정상 상태 정의 → 가설 수립 → 변수 주입 → 결과 관찰 → 개선의 순서로 진행합니다. 가설은 “한 가용 영역이 내려가도 결제 성공률이 유지된다”처럼 측정 가능한 지표로 씁니다.
- 작게 시작: 스테이징 환경과 낮은 영향 범위에서 시작해 점차 운영으로 넓힙니다.
- 안전장치: 폭발 반경 제한, 즉시 중단(kill switch), 사전 공지와 모니터링 확인.
- 주입 예: 인스턴스 종료, 네트워크 지연·패킷 손실, 의존 서비스 장애, 디스크 가득 참.
- 도구: Chaos Mesh, LitmusChaos, AWS Fault Injection Service 등.
- 전제 조건: 관측 가능성이 없으면 실험 결과를 해석할 수 없습니다.
정리 포인트
카오스 엔지니어링은 무모한 장애 주입이 아니라 가설 검증형 실험이라는 점을 강조하고, 안전장치를 반드시 포함하세요.
카오스 엔지니어링은 무모한 장애 주입이 아니라 가설 검증형 실험이라는 점을 강조하고, 안전장치를 반드시 포함하세요.
※ 이 글은 학습·참고용 정리입니다. 제품 사양과 표준 개정 사항은 공식 문서에서 최신 내용을 확인하세요.