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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Azure Cosmos DB 리소스에는 다음 예제와 같은 형식의 자식 리소스가 있습니다.
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
대상에서 만들어진 리소스만 Chaos Studio를 사용하여 오류 주입의 대상으로 지정할 수 있습니다.
기능
기능을 사용하면 Chaos Studio에서 가상 머신을 종료하는 등 리소스에 특정 오류를 실행할 수 있습니다. 기능은 대상 유형별로 고유합니다. 예를 들어 CPUPressure-1.0
을 사용할 수 있는 오류를 나타냅니다. 사용 가능한 모든 오류와 해당 기능의 이름 및 대상 유형을 파악하려면 Chaos Studio 오류 라이브러리를 참조하세요.
기능은 대상의 자식으로 만든 확장 리소스입니다. 예를 들어 서비스 직접 대상 ID를 사용해 가상 머신에서 종료 오류를 사용하도록 설정하는 경우는 다음과 같습니다.
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
대상 리소스에는 다음 예제와 같은 형식의 자식 리소스가 있습니다.
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
}
다음 단계
이제 대상과 기능이 무엇인지 이해했으므로 다음을 수행할 준비가 되었습니다.