Fault Injection Testing를 사용하면 결함 주입 실험을 실행할 수 있습니다. 결함 주입은 고객에게 영향을 미치는 실제 예상치 못한 오류가 발생하기 전에 시스템에 결함을 도입하여 복원력을 테스트하는 방법입니다. Fault Injection Testing을 사용하면 Google Cloud 환경의 다양한 구성요소에 오류를 삽입하여 애플리케이션이 예측 가능한 방식으로 오류를 처리하는지 확인할 수 있습니다.
Fault Injection Testing의 초기 출시에서 결함은 일반적으로 타겟 리소스의 실패와 동일합니다. 이러한 장애는 애플리케이션에 내결함성을 설계한 경우 애플리케이션이 트래픽을 정상 인스턴스로 리디렉션하도록 트리거해야 합니다.
오류를 삽입하기 전, 삽입하는 동안, 삽입한 후에 애플리케이션을 관찰하여 애플리케이션이 예상대로 오류를 처리했는지 확인해야 합니다.
Fault Injection Testing을 사용해야 하는 이유
Fault Injection Testing을 사용하면 Google Cloud 다양한 장애 시나리오에서 애플리케이션의 복원력을 실험할 수 있습니다. 이 스펙트럼의 기본 부분은 영역과 지역의 장애를 근사하기 위한 실험을 실행하는 것입니다. 이는 사용자가 직접 완전히 실행하기 어렵거나 불가능합니다. Google Cloud 또한 Fault Injection Testing은 설계된 복원력 메커니즘을 프로덕션 환경에 도입하기 전에 실험을 실행할 수 있는 유용한 개발 및 개선 도구로도 사용됩니다. 문제가 프로덕션에 표시되기 전에 문제를 포착하면 설계를 더 빠르게 개선하고, 비용이 많이 드는 다운타임과 평판 손실을 방지하며, 전반적인 경험을 개선할 수 있습니다.
Google Cloud네이티브 결함 삽입 제품이 없으면 자체 실험을 해야 합니다. 직접 실험하는 것은 문제가 됩니다.Google Cloud 는 공유 환경이며, 대부분의 경우 기본 서비스와 인프라에 직접 액세스할 수 없습니다. 이 시나리오에서는 애플리케이션 복원력을 적절하게 실험하는 목표에 궁극적으로 비효율적일 수 있는 부적절하고 힘든 실험이 발생할 수 있습니다. Fault Injection Testing을 사용하면 이러한 실험을 자동화하는 데 필요한 노력을 줄이고, 그렇지 않으면 액세스할 수 없는 장애 모드를 유도할 수 있으며, 실험 노력의 충실도를 개선할 수 있습니다.
규제가 적용되는 고객의 경우 정기적인 실험은 업계 관리 기관의 규정을 준수하기 위한 요구사항인 경우가 많습니다. 이러한 경우 실험은 재해 복구 테스트의 형태를 취하는 경우가 많으며, 영역 또는 리전의 장애가 애플리케이션의 효과적인 작동을 중단하지 않음을 보여줍니다.
실험에 사용할 수 있는 결함
다음 오류를 사용할 수 있습니다.
- Cloud SQL 장애 조치 - 데이터베이스를 기본에서 대기로 장애 조치합니다.
- 애플리케이션 트래픽 저하 - 레이어 7 부하 분산기를 통한 트래픽 저하 시뮬레이션
이러한 결함은 실험 범위를 단일 리전 또는 더 좁은 범위의 단일 프로젝트 리소스로 제한하도록 설계되었습니다. 실험이 의도한 것보다 넓은 범위에 영향을 미치지 않습니다. 하지만 이러한 결함은 환경의 타겟 리소스에 실제 장애를 일으킵니다.
Cloud SQL 데이터베이스, 애플리케이션 부하 분산기와 같은 인프라 구성요소와 향후 지원될 기타 구성요소를 타겟팅하면 자체 애플리케이션의 컨텍스트에서 영역 또는 리전 장애를 적절하게 근사할 수 있습니다.
Fault Injection Testing 사용 방법
Fault Injection Testing을 사용하기 전에 다음을 확인하세요.
- 실험할 환경에 중복이 있습니다. 결함이 삽입되면 이 환경의 애플리케이션이 중복 인프라에서 계속 실행될 수 있습니다.
- Google Cloud 리소스의 관리자 또는 소유자: Fault Injection Testing 실험을 설정하고 실행할 권한을 부여할 사용자를 신중하게 고려하세요. Google Cloud 환경에서 실행 중인 인프라 구성요소에 오류가 발생하면 중단이 발생합니다. 따라서 클라우드 환경이 설계되는 방식과 해당 아키텍처의 복원력을 안전하게 실험하는 방법을 이해하는 운영자에게만 권한을 부여해야 의도치 않은 중단을 일으키지 않는 방식으로 실험을 구성할 수 있습니다.
Fault Injection Testing을 사용하려면 실험을 설정해야 합니다. 새 실험을 설정하려면 먼저 주입할 결함과 타겟 리소스를 정의하는 실험 템플릿을 만듭니다. 다음으로 템플릿에서 실험을 실행합니다. 실험은 템플릿에 정의된 작업 집합으로, 템플릿에서 선택한 리소스에 대해 실행됩니다.