제134회 정보관리기술사 4교시 3번 — 카오스 엔지니어링(Chaos Engineering)과 회복탄력성 설계

카오스 엔지니어링(Chaos Engineering)은 프로덕션 시스템에 의도적으로 장애를 주입하여 시스템의 취약점을 사전에 발견하고 회복탄력성(Resilience)을 강화하는 실험적 방법론입니다. Netflix의 Simian Army에서 시작되어 현재 SRE의 핵심 실천으로 자리 잡았습니다.

1. 카오스 엔지니어링 개념

1-1. 정의 및 원칙 (Principles of Chaos Engineering)

정상 상태 행동 정의: 측정 가능한 시스템 정상 행동 지표(가용성·응답시간·처리량) 설정
가설 수립: 실험군과 대조군이 동일한 정상 상태를 유지할 것이라고 가설 설정
실제 장애 이벤트 시뮬레이션: 실제 장애를 반영하는 현실적인 혼돈 변수 도입
프로덕션 실험: 가능한 한 프로덕션 환경에서 실험 수행
폭발 반경 최소화: 실험 범위를 제한하여 영향을 통제

2. Netflix Simian Army

도구 역할
Chaos Monkey 랜덤하게 인스턴스(서버) 종료 — 단일 서버 장애 복구 검증
Chaos Gorilla AWS 가용 영역(AZ) 전체 장애 시뮬레이션
Chaos Kong AWS 리전 전체 장애 시뮬레이션
Latency Monkey 서비스 간 인위적 지연 주입 — 타임아웃·서킷 브레이커 검증
Conformity Monkey 모범 사례 미준수 인스턴스 탐지·종료
Security Monkey 보안 정책 위반 인스턴스 탐지

3. 카오스 엔지니어링 실험 유형

3-1. 장애 주입 범주

범주 예시 검증 대상
인프라 장애 서버 강제 종료, 디스크 꽉 참, OOM 자동 복구·헬스 체크
네트워크 장애 패킷 손실, 지연 주입, 파티션 분리 서킷 브레이커·재시도 정책
의존성 장애 외부 API 타임아웃, DB 연결 끊김 폴백·Graceful Degradation
자원 고갈 CPU/메모리 스트레스, 스레드 고갈 오토스케일링·쓰로틀링
상태 장애 데이터 부패, 캐시 무효화 데이터 일관성·복구

4. GameDay & 카오스 실험 프로세스

4-1. 실험 절차

  • 1단계: 가설 수립 — “서버 A가 다운돼도 P99 응답시간이 200ms 이내를 유지한다”
  • 2단계: 측정 지표 설정 — 가용성·응답시간·오류율·처리량 메트릭 정의
  • 3단계: 범위 결정 — 폭발 반경(Blast Radius) 최소화 (특정 % 트래픽만)
  • 4단계: 장애 주입 — 자동화 도구(Gremlin·LitmusChaos·ChaosBlade)로 실행
  • 5단계: 관찰·분석 — 가설 검증, 취약점 식별
  • 6단계: 자동화·반복 — CI/CD 파이프라인에 통합, 정기 실행

5. 회복탄력성 설계 패턴

패턴 설명 구현
서킷 브레이커 반복 실패 시 빠른 실패로 전환 Resilience4j, Hystrix
재시도(Retry) 지수 백오프 + Jitter로 재시도 Polly, AWS SDK 내장
타임아웃 무한 대기 방지, 적절한 타임아웃 설정 서비스 SLO 기반 설정
Bulkhead 스레드풀·리소스를 격리하여 장애 전파 방지 스레드풀 분리, K8s ResourceQuota
Graceful Degradation 핵심 기능 유지, 비핵심 기능만 비활성화 Feature Flag, 캐시 폴백

6. 카오스 엔지니어링 도구 비교

도구 특징 대상 환경
Gremlin SaaS형, GUI 기반, 엔터프라이즈 기능 온프레미스·클라우드·K8s
LitmusChaos CNCF 프로젝트, K8s 네이티브 Kubernetes 중심
ChaosBlade Alibaba 오픈소스, 다양한 장애 유형 K8s·JVM·OS·네트워크
AWS FIS AWS Fault Injection Simulator, 네이티브 통합 AWS 서비스 전용

7. 결론

카오스 엔지니어링은 ‘장애는 피할 수 없다’는 전제하에 시스템의 취약점을 능동적으로 발견하는 실험 문화입니다. 폭발 반경을 최소화하며 단계적으로 시작(개발→스테이징→프로덕션)하고, 서킷 브레이커·Bulkhead·Graceful Degradation 패턴으로 회복탄력성을 높이는 것이 SRE의 핵심 역량입니다.

Leave a Comment