Azure Chaos Studio でのターゲットと機能

Azure リソースに対してエラーを注入する前に、リソースに対応するターゲットと機能が有効になっている必要があります。 ターゲットと機能は、フォールト インジェクションに対して有効にするリソースと、それらのリソースに対して実行できるエラーを制御します。

Azure Chaos Studio では、ターゲットと機能を他のセキュリティ対策と共に使用することで、偶発的な事故や悪意のあるフォールト インジェクションを避けることができます。 たとえば、ターゲットと機能を使用すると、CPU 負荷障害が稼働中の仮想マシンに反して実行されるのを許可しながら、それらに対する強制終了プロセス エラーを防ぐことができます。

目標値

カオスのターゲット化により、Azure Chaos Studio が特定のターゲットの種類のリソースを操作できるようになります。 ターゲットの種類は、リソースに対してエラーを注入する方法を表します。 サービスダイレクト障害のみをサポートするリソースの種類では、ターゲットの種類が 1 つになります。 Azure Cosmos DB の Microsoft-CosmosDB 種類などです。

サービスダイレクトおよびエージェントベースの障害をサポートするリソースの種類では、ターゲットの種類が 2 つになります。 サービスダイレクト障害向けにターゲットの種類が 1 つあります (Microsoft-VirtualMachine など)。 エージェントベース障害向けにターゲットの種類がもう 1 つあります (常に Microsoft-Agent)。

ターゲットは、Azure 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 を使用したフォールト インジェクションの対象にできます。

機能

機能によって、Azure 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

実験では、対応する機能が有効になっているオンボード ターゲットに対してのみ、エラーを注入できます。

機能の名前とパラメーターを一覧表示する

参照には、機能名、フォールト URN、パラメーターの一覧をフォールト ライブラリで利用できます。 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 で参照されるスキーマを GET によって取得できます。

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"
}

次のステップ

ターゲットと機能について理解したので、次の理解に進んでください。