Share via


서비스 직접 오류를 사용하여 Azure Cosmos DB 인스턴스를 장애 조치(failover)하는 카오스 실험 만들기

카오스 실험을 사용하여 제어된 환경에서 이러한 오류를 발생시켜 애플리케이션이 오류에 대해 복원력이 있는지 확인할 수 있습니다. 이 문서에서는 카오스 실험과 Azure Chaos Studio를 사용하여 다중 읽기, 단일 쓰기 Azure Cosmos DB 장애 조치(failover)를 발생시킵니다. 이 실험을 실행하면 장애 조치(failover) 이벤트가 발생할 때 데이터 손실을 방지하는 데 도움이 될 수 있습니다.

이러한 동일한 단계를 사용하여 서비스 직접 오류에 대한 실험을 설정하고 실행할 수 있습니다. 서비스 직접 오류는 계측할 필요 없이 Azure 리소스에 대해 직접 실행됩니다. 에이전트 기반 오류에는 카오스 에이전트를 설치해야 합니다.

필수 구성 요소

  • Azure 구독 Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
  • Azure Cosmos DB 계정. Azure Cosmos DB 계정이 없는 경우 다음 단계에 따라 계정을 만듭니다.
  • Azure Cosmos DB 계정에 대한 하나 이상의 읽기 및 하나의 쓰기 지역 설정

Azure Cosmos DB 계정에서 Chaos Studio 사용

Chaos Studio는 리소스가 먼저 Chaos Studio에 추가되지 않는 한 리소스에 대해 오류를 주입할 수 없습니다. 리소스에 대상과 기능을 만들어 리소스를 Chaos Studio에 추가합니다. Azure Cosmos DB 계정에는 하나의 대상 유형(서비스 직접)과 하나의 기능(장애 조치(failover))만 있습니다. 다른 리소스에는 최대 두 가지 대상 유형이 있을 수 있습니다. 한 가지 대상 유형은 서비스 직접 오류에 대한 것입니다. 또 다른 대상 유형은 에이전트 기반 오류에 대한 것입니다. 다른 리소스에도 다른 많은 기능이 있을 수 있습니다.

  1. Azure Portal을 엽니다.

  2. 검색 창에서 Chaos Studio를 검색합니다.

  3. 대상을 선택하고, Azure Cosmos DB 계정으로 이동합니다.

    Screenshot that shows the Targets view in the Azure portal.

  4. Azure Cosmos DB 계정 옆에 있는 확인란을 선택합니다. 대상 사용을 선택한 다음, 드롭다운 메뉴에서 서비스 직접 대상 사용을 선택합니다.

    Screenshot that shows enabling targets in the Azure portal.

  5. 원하는 리소스가 나열되어 있는지 확인합니다. 검토 + 사용을 선택한 다음, 사용을 선택합니다.

  6. 선택한 리소스가 성공적으로 사용하도록 설정되었음을 나타내는 알림이 나타납니다.

    Screenshot that shows a notification showing the target was successfully enabled.

이제 Azure Cosmos DB 계정을 Chaos Studio에 성공적으로 추가했습니다. 대상 보기에서 이 리소스에 대해 사용하도록 설정된 기능을 관리할 수도 있습니다. 리소스 옆에 있는 작업 관리 링크를 선택하면 해당 리소스에 대해 사용하도록 설정된 기능이 표시됩니다.

실험 만들기

이제 실험을 만들 수 있습니다. 카오스 실험은 대상 리소스에 대해 수행하려는 작업을 정의합니다. 작업은 순차적 단계로 구성되고 실행됩니다. 카오스 실험은 병렬로 실행되는 분기에 대해 수행하려는 작업도 정의합니다.

  1. Chaos Studio에서 실험 탭을 선택합니다. 이 보기에서는 모든 카오스 실험을 보고 관리할 수 있습니다. 만들기>새 실험을 선택합니다.

    Screenshot that shows the Experiments view in the Azure portal.

  2. 카오스 실험을 배포하려는 구독, 리소스 그룹위치를 입력합니다. 실험에 이름을 지정합니다. 다음: 실험 디자이너를 선택합니다.

    Screenshot that shows adding basic experiment details.

  3. 이제 Chaos Studio 실험 디자이너에 있습니다. 실험 디자이너를 사용하면 단계, 분기 및 오류를 추가하여 실험을 빌드할 수 있습니다. 단계분기에 식별 이름을 지정한 다음, 작업 추가 > 오류 추가를 선택합니다.

    Screenshot that shows the experiment designer.

  4. 드롭다운 목록에서 CosmosDB 장애 조치(failover)를 선택합니다. 오류를 지속하려는 시간(분)으로 기간을 입력하고 Azure Cosmos DB 계정의 읽기 영역으로 readRegion을 입력합니다. 다음: 대상 리소스를 선택합니다.

    Screenshot that shows fault properties.

  5. Azure Cosmos DB 계정을 선택하고 다음을 선택합니다.

    Screenshot that shows adding a target.

  6. 실험이 올바른지 확인한 다음, 검토 + 만들기>만들기를 차례로 클릭합니다.

    Screenshot that shows reviewing and creating an experiment.

대상 리소스에 실험 권한 부여

카오스 실험을 만들 때 Chaos Studio는 대상 리소스에 대해 오류를 실행하는 시스템이 할당한 관리 ID를 만듭니다. 실험을 성공적으로 실행하려면 이 ID에 대상 리소스에 대한 적절한 권한을 부여해야 합니다. 해당 리소스 및 대상 유형에 대한 적절한 역할과 일치하도록 3단계의 역할 할당을 수정하여 모든 리소스 및 대상 유형에 대해 이러한 단계를 사용할 수 있습니다.

  1. Azure Cosmos DB 계정으로 이동하여 액세스 제어(IAM)를 선택합니다.

    Screenshot that shows the Azure Cosmos DB Overview page.

  2. 추가>역할 할당 추가를 선택합니다.

    Screenshot that shows the Access control overview.

  3. Cosmos DB 운영자를 검색하고, 역할을 선택합니다. 다음을 선택합니다.

    Screenshot that shows assigning the Azure Cosmos DB Operator role.

  4. 멤버 선택을 선택하고 실험 이름을 검색합니다. 실험을 선택하고 선택을 선택합니다. 이름이 같은 여러 실험이 동일한 테넌트에 있는 경우 실험 이름은 임의 문자가 추가되어 잘립니다.

    Screenshot that shows adding an experiment to a role.

  5. 검토 + 할당>검토 + 할당을 선택합니다.

실험 실행

이제 실험을 실행할 준비가 되었습니다. 효과를 보려면 Azure Cosmos DB 계정 개요를 열고 별도의 브라우저 탭에서 전역적으로 데이터 복제로 이동하는 것이 좋습니다. 실험 중에 주기적으로 새로 고치면 영역 교환을 표시합니다.

  1. 실험 보기에서 실험을 선택합니다. 시작>확인을 선택합니다.
  2. 상태실행 중으로 변경되면 기록에서 최신 실행에 대한 세부 정보를 선택하여 실행 중인 실험에 대한 세부 정보를 확인합니다.

다음 단계

이제 Azure Cosmos DB 서비스 직접 실험을 실행했으므로 다음을 수행할 준비가 되었습니다.