Learning
토픽 107 / 192·소프트웨어 표준과 법제도

Chaos Engineering

Chaos Engineering

프로덕션 환경에서 의도적으로 장애를 주입하여 시스템의 회복 탄력성(Resilience)을 검증하고 취약점을 발견하는 실험 기반 엔지니어링 분야

목적: 시스템 회복력 검증, 장애 대응 능력 향상, 취약점 발견, 신뢰성 개선

특징: 프로덕션 실험, 가설 기반, 최소 폭발 반경, 자동화, 점진적 확대

5가지 원칙: ① 정상 상태 정의 → ② 실험군/대조군 가설 → ③ 현실적 장애 시뮬레이션 → ④ 프로덕션 실험 → ⑤ 자동화

장애 시나리오: 인스턴스 종료, 네트워크 지연, CPU/메모리 부하, 디스크 장애, 클라우드 리전 장애, 의존성 실패

도구: Chaos Monkey(Netflix, 인스턴스 종료), Gremlin(상용), Chaos Toolkit(오픈소스), Litmus(Kubernetes), Pumba(Docker)

실험 절차: ① 가설 수립 → ② 최소 폭발 반경 설정 → ③ 모니터링 준비 → ④ 장애 주입 → ⑤ 관찰·분석 → ⑥ 개선

장점: 실제 환경 검증, 취약점 발견, 장애 대응 훈련, 신뢰성 향상

단점: 고객 영향 위험, 복잡한 설정, 조직 문화 필요, 프로덕션 실험 부담

적용사례: Netflix, Amazon, Google, 금융, 대규모 분산 시스템

비교: Chaos Engineering(프로덕션/실험) vs 재해복구 훈련(시뮬레이션) vs 부하 테스트(성능)

연관: Resilience, Netflix, Chaos Monkey, SRE, 장애 대응