View a markdown version of this page

에서 카오스 엔지니어링 구현 AWS - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 카오스 엔지니어링 구현 AWS

카오스 엔지니어링은 다음 다이어그램과 같이 AWS 복원력 수명 주기의 평가 및 테스트 단계의 일부입니다. 분산 애플리케이션은 다른 애플리케이션 또는 클라이언트와 별도로 작동하지 않으므로 전체 복원력 수명 주기를 검토하는 것이 좋습니다. 네트워크가 발전하고, 업스트림 및 다운스트림 애플리케이션이 변화하고, 시간이 지남에 따라 클라이언트 사용량이 변화함에 따라 분산 애플리케이션에서는 변화가 일정합니다.

복원력 수명 주기의 AWS 5가지 주요 단계입니다.

애플리케이션에 대한 이러한 변경 사항이 복원력에 어떤 영향을 미칠 수 있는지 이해하려면 카오스 엔지니어링을 day-to-day 작업의 일부로 만드세요. 카오스 실험을 다양한 방식으로 구현할 수 있습니다.

  • 임시 - 카오스 실험을 일회성 실험으로 수행하여 특정 문제나 질문을 해결할 수 있습니다.

  • 카오스 게임 데이 - 애플리케이션의 신뢰성과 복원력을 확인하도록 설계된 구조화되고 반복적인 이벤트입니다. 카오스 게임 데이의 목적은 사람, 프로세스 및 기술 전반의 잠재적 복원력 문제 또는 결함을 식별하고 인시던트를 식별, 완화 및 대응하기 위한 프로세스와 절차를 연습하는 것입니다.

  • 카오스 파이프라인 - 지속적 통합 및 지속적 전달(CI/CD)은 새로운 기능을 구축하고 환경 전체에 안전하게 배포하는 것입니다. 카오스 엔지니어링 실험을 구현하려면 CI/CD 파이프라인과 별도의 카오스 파이프라인을 생성합니다. 이유를 이해하기 위해 다운스트림 구성 요소에 증가하는 패킷 손실을 주입하는 단일 카오스 엔지니어링 실험을 CI/CD 파이프라인에 추가하려고 한다고 가정해 보겠습니다. 이 실험은 3회 실행되며 매번 완료하는 데 5분이 걸립니다. 패킷 손실은 실행마다 10%에서 20%로, 30%로 증가하며, 실험을 완료하는 데 전체적으로 15분이 걸립니다. 병렬 배포가 100개 있는 경우 단일 실험이 완료될 때까지 1500분을 기다려야 합니다. 실험을 10회 실행하면 개발자에게 미치는 영향을 감당할 수 없습니다. 대규모로 카오스 엔지니어링에는 소프트웨어 개발 수명 주기(SDLC) 프로세스와 병렬로 실험을 실행할 수 있는 자체 파이프라인이 필요합니다.

  • 카나리아 배포 - 카나리아는 카나리아 실험을 위한 테스트 환경을 제공합니다. 적은 비율의 트래픽을 카나리아 서비스로 전달하거나 트래픽 미러링 또는 재생과 같은 방법을 사용하여 안정적인 프로덕션 시스템에 영향을 주지 않고 새 인프라 또는 코드 변경을 확인할 수 있습니다. 최종 사용자에게 미치는 영향 범위를 제한할 수 있으므로 카나리아에 대해 실험을 실행하고 필요에 따라 결함을 주입할 수 있습니다.

  • 예약된 실험 - 실험을 예약하여 애플리케이션의 예측 가능한 복구 메커니즘을 확인할 수 있습니다. 예약된 실험을 사용하여 일반적으로 알려진 이벤트를 재생하여 자동 조정 그룹 뒤의 EC2 인스턴스 종료, Kubernetes 포드 제거 또는 Amazon ECS 작업 삭제와 같은 이벤트에서 시스템이 복구되는 방법을 캡처합니다.