기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 카오스 엔지니어링을 사용하여 복원력 향상 및 고객 경험 향상 AWS
Laurent Domb, Amazon Web Services Federal Financials의 수석 기술자
2025년 4월(문서 기록)
카오스 엔지니어링은 프로덕션 환경에서 격렬한 조건을 견딜 수 있는 조직 및 애플리케이션의 기능에 대한 신뢰를 구축하기 위해 애플리케이션을 실험하는 분야입니다. 이는 애플리케이션과 조직이 사람, 프로세스 및 기술 전반에 제어된 장애를 도입하여 서비스 장애를 흡수하고 이에 적응하며 궁극적으로 복구할 수 있는지 확인하는 것을 목표로 하는 복원력에 대한 선제적 접근 방식입니다. 또한 약점이 프로덕션 중단 또는 기타 중단을 일으킬 수 있기 전에 약점을 식별하고 제거하는 것이 목적입니다.
Amazon은 장애 발생에도 불구하고 작동하는 것이 정상적인 작동 방식이라는 점에서 분산 시스템에서 장애가 불가피하다는 점을 이해합니다. 서비스 간 상호 작용이 실패할 수 있으므로 다양한 장애 모드에서 서비스가 어떻게 반응하는지 이해하고 종속성 장애, 재시도 폭풍, 손상된 가용 영역, 호스트 리소스 소진과 같은 주요 취약성에 복원력이 뛰어난 서비스를 구축해야 합니다.
재시도 폭풍의 예를 들어 보겠습니다. 클라이언트의 현지화된 장애는 여러 서비스에 상당한 영향을 미칠 수 있습니다. 이를 일반적으로 나비 효과라고 합니다. 재시도 폭풍은 실패한 종속성이 클라이언트와 해당 클라이언트의 클라이언트를 트리거하여 실패한 작업을 재시도하여 트래픽이 기하급수적으로 증가하는 나비 효과의 표현입니다. 성능 저하를 처리하는 동안 트래픽을 재시도하는 것 외에도 일반 트래픽에 응답해야 하기 때문에 서비스가 오버로드됩니다.
분산 시스템의 복잡성 증가에 대한 대응으로 카오스 엔지니어링이 등장했습니다. 카오스 이론, 시스템 사고 및 엔지니어링의 원칙을 결합하여 예상치 못한 이벤트 및 동작에 복원력이 뛰어난 복잡한 시스템을 설계하고 관리하는 다학제적 접근 방식입니다. 카오스 엔지니어링의 핵심은 불확실성과 예측 불가능한 조건에서 복잡한 시스템의 동작을 이해하고 관리하는 것입니다. 결과 예측 및 제어에 의존하는 엔지니어링에 대한 기존 접근 방식은 분산 시스템의 복잡하고 동적인 특성을 처리하기에 충분하지 않은 경우가 많습니다. 이러한 시스템이 성장함에 따라 단일 개인의 이해 범위를 초과하는 경우가 많습니다.
카오스 엔지니어링은 시스템에 장애를 의도적으로 주입하여 프로덕션에서 발견되기 전에 약점을 발견하는 개념, 기법 및 도구를 제공합니다. 이러한 선제적 접근 방식을 통해 조직은 시스템이 스트레스가 많은 조건에서 작동할 것이라는 확신을 구축할 수 있습니다. 카오스 엔지니어링은 여전히 진화하는 관행이지만 복잡성과 상호 연결성 증가에 직면하여 최신 컴퓨팅 시스템을 설계, 관리 및 운영하기 위한 근본적인 전환을 나타냅니다.
이 가이드의 다음 섹션에서는 카오스 엔지니어링의 이점을 설명하고, 카오스 엔지니어링 실험을 수행하는 방법을 설명하고, 조직에서 대규모 카오스 엔지니어링을 구현하기 위해 취할 수 있는 접근 방식을 설명합니다. 카오스 엔지니어링 실험의 템플릿으로 사용할 수 있는 샘플 실험 계획 및 실험 결과 문서도 포함되어 있습니다.
다음 섹션에서는 카오스 엔지니어링의 특성이 단위, 연기 또는 통합 테스트와 같은 기존 복원력 테스트와 어떻게 다른지 살펴봅니다.