Azure Chaos Studio의 대상과 기능

Azure 리소스에 오류를 주입하려면 먼저 리소스에서 해당 대상과 기능을 사용하도록 설정해야 합니다. 대상과 기능은 오류 주입에 사용할 수 있는 리소스와 해당 리소스에 대해 실행할 수 있는 오류를 제어합니다.

다른 보안 조치와 함께 대상 및 기능을 사용하면 Azure Chaos Studio에서 악성 또는 실수로 인한 오류 주입을 방지할 수 있습니다. 예를 들어 대상과 기능을 사용하면 프로덕션 가상 머신에 CPU 압력 오류를 실행하도록 허용하면서 종료 프로세스 오류가 실행되지 않도록 할 수 있습니다.

대상

카오스 대상을 사용하면 Chaos Studio에서 특정 대상 유형의 리소스와 상호 작용할 수 있습니다. 대상 유형은 리소스에 오류를 주입하는 방법을 나타냅니다. 서비스 직접 오류만 지원하는 리소스 종류에는 한 가지 대상 유형이 있습니다. 예를 들어 Azure Cosmos DB의 Microsoft-CosmosDB 유형이 있습니다.

서비스 직접 및 에이전트 기반 오류를 지원하는 리소스 종류에는 두 가지 대상 유형이 있습니다. 한 가지 대상 유형은 서비스 직접 오류에 대한 것입니다(예: Microsoft-VirtualMachine). 또 다른 대상 유형은 에이전트 기반 오류에 대한 것입니다(항상 Microsoft-Agent).

대상은 Chaos Studio에 온보딩되는 리소스의 자식으로 만든 확장 리소스입니다. 예를 들어 가상 머신 또는 네트워크 보안 그룹이 있습니다. 대상은 리소스에서 사용하도록 설정된 대상 유형을 정의합니다. 예를 들어 이 리소스 ID를 사용해 Azure Cosmos DB 인스턴스를 온보딩하는 경우는 다음과 같습니다.

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB

Azure Cosmos DB 리소스에는 다음 예제와 같은 형식의 자식 리소스가 있습니다.

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB

대상에서 만들어진 리소스만 Chaos Studio를 사용하여 오류 주입의 대상으로 지정할 수 있습니다.

기능

기능을 사용하면 Chaos Studio에서 가상 머신을 종료하는 등 리소스에 특정 오류를 실행할 수 있습니다. 기능은 대상 유형별로 고유합니다. 예를 들어 CPUPressure-1.0을 사용할 수 있는 오류를 나타냅니다. 사용 가능한 모든 오류와 해당 기능의 이름 및 대상 유형을 파악하려면 Chaos Studio 오류 라이브러리를 참조하세요.

기능은 대상의 자식으로 만든 확장 리소스입니다. 예를 들어 서비스 직접 대상 ID를 사용해 가상 머신에서 종료 오류를 사용하도록 설정하는 경우는 다음과 같습니다.

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine

대상 리소스에는 다음 예제와 같은 형식의 자식 리소스가 있습니다.

/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0

실험 시 해당 기능을 사용한 온보딩 대상에만 오류를 주입할 수 있습니다.

기능 이름 및 매개 변수 나열

참조를 위해 기능 이름, 오류 URL 및 매개 변수 목록은 장애 라이브러리에서 사용할 수 있습니다. HTTP 응답을 사용하여 기능을 만들거나 기존 기능에서 GET을 수행하여 요청 시 이 정보를 가져올 수 있습니다. 예를 들어 VM 종료 기능에서 GET을 수행하려면 다음을 수행합니다.

az rest --method get --url "https://management.azure.com/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0?api-version=2023-11-01"

다음 JSON을 반환합니다.

{
  "id": "/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0",
  "name": "shutdown-1.0",
  "properties": {
    "description": null,
    "name": "shutdown-1.0",
    "parametersSchema": "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json",
    "publisher": "Microsoft",
    "targetType": "VirtualMachine",
    "type": "shutdown",
    "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
    "version": "1.0"
  },
  "resourceGroup": "myRG",
  "systemData": {
    "createdAt": "2021-09-15T23:00:00.826575+00:00",
    "lastModifiedAt": "2021-09-15T23:00:00.826575+00:00"
  },
  "type": "Microsoft.Chaos/targets/capabilities"
}

properties.urn 속성은 카오스 실험에서 실행하려는 오류를 정의하는 데 사용됩니다. 이 오류의 매개 변수 스키마를 이해하려면 properties.parametersSchema에서 참조하는 스키마를 가져오면 됩니다.

az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"

다음 JSON을 반환합니다.

{
  "$schema": "https://json-schema.org/draft-07/schema",
  "properties": {
    "abruptShutdown": {
      "type": "boolean"
    },
    "restartWhenComplete": {
      "type": "boolean"
    }
  },
  "type": "object"
}

다음 단계

이제 대상과 기능이 무엇인지 이해했으므로 다음을 수행할 준비가 되었습니다.