카오스 엔지니어링 세번째 모임은 미리 예고한 대로 매월 각종 카오스 도구를 공부하고 소개하는 시간을 가지기로 했습니다.
ChaosMonkey in Action (변정훈)
Chaos Monkey는 2011 년 Netflix에서 IT 인프라의 탄력성을 테스트하기 위해 개발 한 도구입니다. 의도적으로 장애를 주입하여, 나머지 시스템이 어떻게 대처하는지 테스트합니다. Chaos Monkey는 Simian Army라는 오픈소스의 일환으로 본 세션에서는 설치 및 사용 방법 등을 살펴봅니다.

Game Day in Action (윤석찬)
AWS GameDay는 AWS하에서 생기는 문제를 해결하는 팀 기반의 실습 학습 활동입니다. 팀으로 구성된 참가자들을 모호한 상황에 빠뜨리고, 제대로 된 아키텍처 패턴에 대해 배울 수 있는 기회를 제공합니다. 이를 통해 장애 상황을 함께 해결할 수 있는 모범 사례를 알 수 있는 사내 이벤트를 만들어 볼 수 있습니다.

Game Day라는 개념은 2006년에 Jesse Robbins (Chef 창업자)가 Amazon에서 일하면서 만들어졌습니다. GameDay: Creating Resiliency Through Destruction라는 발표를 보면, Jesse는 의도적으로 주요 실패를 정기적으로 생성하여 안정성을 높이는 것을 목표로 Game Day를 만들었습니다. Game Day에는 데이터 센터의 중단, 중요한 데이터베이스 종료, 갑작스러운 고객 트래픽 급증 같은 장애 테스트를 포함합니다.
Game Day 소개
- 주요 목적 – 소방 훈련처럼 안전한 환경에서 잠재적으로 위험한 시나리오 연습 기회, 팀별 참여 및 문제 해결, 팀간 경계 이슈 등 다양한 테스트 가능, 향후 프로덕션 환경의 실제 테스트에 대한 범위 산정 가능
- 주요 원칙 – 소통의 중요성 GameDay 행사를 사내에 전파 및 관련 팀에게 미리 알림, 대화방, 회의실 및 대시 보드 같은 오프라인 장소 마련
- 폭발 반경의 제한 – 중단 기준과 롤백 계획을 미리 구성하여 고객 영향을 최소화, 테스트 및 사내 배포 환경에서 구성 (단일 서버, 단일 콘테이너, 단일 API)
Game Day 진행 방법
- 단계적 테스트 확장 –기능 테스트 (예외 사항을 바로 처리 하나?), 성능 테스트 (성능이 저하된 상태에서 어떤 일이 일어나나?), 자원 제약 테스트 (서버가 부족하면, 자가 치유되는가?), 네트웍 트래픽 테스트 (타임아웃이 나게 되면 어떻게 되나?)
- 프로덕션 테스트 – Game Day의 최종 목표는 Production 환경에서 진행해야 함, 팀의 대응 능력을 보고 이를 훈련하는 것이므로, 사전에 정보를 주지 않음
- 진행 방법 – 모든 엔지니어가 한방에 모여, 세 가지 역할을 수행한다. On-call 및 고객, 그리고 실패 주입자로 구성한다. 실패 주입이 시작되면, On-call은 기존 디버깅 도구를 통해 원인 파악 및 문제 해결을 하고, 고객은 접속 실패량 및 고객 영향을 파악한다. 실패 주입자는 정해진 목록에 따라 순차적으로 실행한다.
- 피드백 내용 – On-call은 현재 디버깅 도구의 문제점, 빠르게 롤백 및 복구 방식 파악, 고객은 접속 실패 등 잠재 고객에게 생길 영향을 파악, 실패 주입자는 On-call 및 고객의 진행 상황과 문제 해결 과정을 파악
- Introduction to GameDays
- “GameDay” – Achieving Resilience through Chaos Engineering
- Our First Engineering Game Day
- How to Run an Adversarial Game Day
다음 모임에서는 Gremlin 도구와 O’REILLY Chaos Engineering 북 리뷰를 진행합니다.
※ Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)