Phase 6레슨 30

Chaos Engineering

Chaos Monkey, Fault Injection, Game Day — 장애를 의도적으로 일으켜 검증

💡ELI5·

소방 훈련과 Chaos Engineering

Chaos Engineering:
  정상 운영 중 → 의도적 장애 주입
  ├── 인스턴스 종료 (Chaos Monkey)
  ├── 네트워크 지연/분할
  ├── DB 연결 끊기
  ├── CPU/메모리 고갈
  └── 의존 서비스 응답 지연

  → 모니터링이 감지하는가?
  → 자동 복구가 동작하는가?
  → 사용자 영향이 있는가?
💡 비유소방 훈련. 실제 화재가 나기 전에 가짜 화재를 내서 대피 경로, 소화기 사용, 알림 시스템을 점검. 진짜 화재 때 당황하지 않도록. Chaos Engineering은 시스템의 소방 훈련.
🔬Deep Dive·

Chaos 실험 설계

단계내용예시
가설 설정정상 상태 가설인스턴스 1개 종료 시 서비스 정상 유지
범위 설정블라스트 반경 제한단일 AZ, 1개 서비스
장애 주입의도적 장애인스턴스 종료, 네트워크 지연
관찰모니터링/알림 확인알림이 1분 내 발생?
검증가설 확인서비스 정상? SLO 유지?
복구실험 종료 + 복구인스턴스 자동 재시작?
🔬Deep Dive·

장애 주입 유형

유형도구검증 항목
인스턴스 종료Chaos Monkey, AWS FIS자가 치유, Failover
네트워크 지연/분할Chaos Mesh, ToxiproxyTimeout, Retry, Circuit Breaker
DB 장애Chaos MeshFallback, Cache 동작
CPU/메모리 고갈StressNGHPA, OOM 처리
DNS 장애FISFallback DNS, 캐싱
⚖️Trade-off·

Chaos Engineering의 Trade-off

이점위험/대가
실제 장애 대응 능력 향상프로덕션 영향 가능성
숨겨진 취약점 발견실험 설계/실행 시간
복구 절차(런북) 검증팀 교육 필요
신뢰성 문화 형성초기에는 장애 빈번 가능
Chaos Engineering은 '장애를 만드는 것'이 아니라 '장애에 대한 준비 상태를 검증하는 것'이다. 모니터링과 자동 복구가 없는 상태에서 실행하면 위험하다.

❓ 체크포인트 질문

  1. 1.Chaos Engineering의 핵심 전제는?
  2. 2.Chaos Monkey가 Netflix에서 탄생한 배경은?
  3. 3.Game Day가 무엇이고 왜 유용한가?
  4. 4.Chaos Engineering을 프로덕션에서 안전하게 수행하는 조건은?
  5. 5.Chaos Engineering이 '장애 테스트'와 다른 점은?