スケール セットの自動ゾーン配置を構成する (プレビュー)

Virtual Machine Scale Setsの自動ゾーン配置を使用すると、容量と SKU の可用性に基づいてスケール セットの可用性ゾーンをAzure選択できます。 すべてのリージョンのゾーンの固定リストを指定する代わりに、配置の要件を構成し、Azure、それらを最も適切に満たすゾーンを選択します。

自動ゾーン配置は、統一オーケストレーション モードとフレキシブル オーケストレーション モードを使用したVirtual Machine Scale Setsでサポートされます。

Important

Virtual Machine Scale Setsの自動ゾーン配置は現在プレビュー段階です。 プレビュー版は、追加使用条件に同意することを条件に使用できます。 この機能の一部の側面は、一般公開 (GA) の前に変更される可能性があります。

ゾーンの自動配置のしくみ

自動ゾーン配置では、SKU の可用性、容量、および可用性ゾーンを選択して VM インスタンスを配置するように構成する配置の制約が評価されます。

既定では、スケール セットは 3 つの可用性ゾーンにインスタンスを分散するために機能します。 maxZoneCountを構成した場合、スケール セットは代わりに、インスタンスをその数のゾーンに分散し、構成された制限を超えないように動作します。 実際の配置は、SKU の可用性、容量、スケール セットの現在のゾーン分散、およびその他の配置の制約によって異なります。 maxZoneCountが構成されておらず、リージョンに 3 つ以上の可用性ゾーンがある場合、現在のゾーンがスケールアウト要求を満たさない場合、スケール セットは既定の 3 ゾーン分散を超えて拡張できます (4 番目のゾーンなど)。

既定では、自動ゾーン配置:

  • 3 つの可用性ゾーンにまたがる均等な分散をターゲットにします。
  • インスタンスを少なくとも 2 つの可用性ゾーンに分散させる必要があります。
  • 1 つのゾーン内のインスタンスの数をスケール セットの 50% に制限します。
  • 現在のゾーンにインスタンスを増やすために十分な容量がなく、リージョン内で別のゾーンを使用できる場合は、追加の可用性ゾーンに拡張できます。

すべての配置要件を満たすために容量を使用できない場合、Azureはポリシーで許可されている数のインスタンスを割り当て、残りのインスタンスはプロビジョニングに失敗する可能性があります。 この動作は部分的な割り当てエラーであり、要求全体の失敗ではありません。

Note

自動ゾーン配置では、新しいインスタンスが作成されるときにゾーンが選択されます。 ゾーンの不均衡を修正するために、既存のインスタンスは移動または再作成されません。 既存の不均衡を事前に修正するには、「 自動ゾーンバランス」を参照してください。

自動ゾーン配置を使用する場合

次の場合は、自動ゾーン配置を使用します。

  • ゾーンまたはゾーンにまたがるスケール セットが必要ですが、特定の可用性ゾーンにインスタンスを配置する必要はありません。 ゾーン分散の要件を定義し、Azureがゾーンを選択できるようにします。
  • ゾーン SKU の可用性が異なるリージョン間でデプロイします。 ゾーンの自動配置は、リージョン固有のゾーン リストを維持するのではなく、一貫した構成を適用するのに役立ちます。
  • Azure が可用性ゾーンを選択する際に、現在の容量シグナルを考慮するようにしたいです。

ワークロードで配置操作ごとに特定のゾーンを使用する必要がある場合は、代わりに 顧客が選択した可用性 ゾーンを使用します。

前提条件

ゾーンの自動配置を構成する前に、次のことを確認します。

AFEC にサブスクリプションを登録する

サブスクリプションを Azure Feature Exposure Control (AFEC) フラグ Microsoft.Compute/VmssAutomaticZonePlacementに登録する必要があります。 この登録は、サブスクリプションの自動ゾーン配置機能を有効にするために必要です。

  1. Azure portal にサインインする
  2. 検索ボックスに「サブスクリプション」と入力し、[ サブスクリプション] を選択 します。
  3. サブスクリプションを選択します。
  4. 設定の中でプレビュー機能を選択してください。
  5. VmssAutomaticZonePlacement を検索し、機能を選択します。
  6. 登録を選択します。

制限事項

  • スケール セットでは、顧客が選択したゾーンに対して zones プロパティを使用することも、自動ゾーン配置にplacement.zonePlacementPolicyを使用することもできますが、両方を使用することはできません。
  • 近接配置グループはサポートされていません。
  • 容量予約グループはサポートされていません。
  • パブリック プレビュー期間中、Virtual Machine Scale Setsのインスタンス ミックスはサポートされていません。 GA によるサポートが必要です。
  • スタンバイ プールはサポートされていません。
  • 専用ホスト グループはサポートされていません。
  • エッジ ゾーンはサポートされていません。
  • オーバープロビジョニングはサポートされていません。 placement.zonePlacementPolicyを追加する前に、overprovisionがfalseに設定されていることを確認します。それ以外の場合、デプロイは失敗します。
  • Service Fabric スケール セットはサポートされていません。
  • 新しい VM の作成とアタッチ はサポートされていません。 ゾーンがスケール セットの配置構成に準拠している場合は、 既存のゾーン VM をアタッチ できます。

設定プロパティ

次の例は、スケール セット モデルで自動ゾーン配置プロパティが表示される場所を示しています。 placement.zonePlacementPolicyのみが必要です。 その他のプロパティはすべて省略可能です。

{
  "placement": {
    "zonePlacementPolicy": "auto",
    "includeZones": [
      "1",
      "2",
      "4"
    ]
  },
  "properties": {
    "zoneBalance": false,
    "resiliencyPolicy": {
      "zoneAllocationPolicy": {
        "maxZoneCount": 2,
        "maxInstancePercentPerZonePolicy": {
          "enabled": true,
          "value": 70
        }
      }
    }
  }
}

Note

includeZonesまたはexcludeZonesを使用します。 同じスケール セットで両方のプロパティを構成することはできません。

次のプロパティは、ゾーンの自動配置動作を制御します。

プロパティ Description
placement.zonePlacementPolicy 必須。 ゾーンの自動配置を有効にするには、 "auto" に設定します。
placement.includeZones Optional. Azure が配置先として考慮できる可用性ゾーンの一覧。 Azureは、この一覧からのみゾーンを選択しますが、一覧のすべてのゾーンにインスタンスをデプロイすることはできません。 このプロパティは、 excludeZonesでは使用できません。
placement.excludeZones Optional. 配置から除外する必要Azureゾーンの一覧。 このプロパティは、 includeZonesでは使用できません。
zoneBalance Optional. スケーリング操作中のゾーン分散を制御します。 既定値は false であり、ベスト エフォート分散が使用されます。 ゾーンの自動配置で zoneBalance を有効にする場合は、 maxZoneCountも指定する必要があります。 zoneBalanceがfalseされている場合、maxZoneCountは省略可能です。
resiliencyPolicy.zoneAllocationPolicy.maxZoneCount Optional. スケール セットで使用できるゾーンの最大数。 このプロパティを指定しない場合、Azureは 3 つのゾーンを対象とし、スケーリング要求を満たすために必要に応じて追加のゾーンに拡張できます。
resiliencyPolicy.zoneAllocationPolicy.maxInstancePercentPerZonePolicy.enabled Optional. ゾーンあたりのインスタンスの割合の最大値ポリシーを有効または無効にします。 このポリシーは、 zoneBalance が falseされている場合にのみサポートされます。
resiliencyPolicy.zoneAllocationPolicy.maxInstancePercentPerZonePolicy.value Optional. 1 つのゾーンに割り当てることができるスケール セットのターゲット容量の最大割合。 要求を満たすのがこの値を超える場合、Azureはポリシーに準拠するインスタンスを割り当てます。残りのインスタンスはプロビジョニングに失敗する可能性があります。

自動ゾーン配置を使用してスケール セットを作成する

次のシナリオでは、ゾーンの自動配置を構成する方法と、想定される配置動作について説明します。 スケール セットをデプロイする前に、オペレーティング システム、ストレージ、およびネットワーク プロファイルを完了します。

既定の配置動作を使用する

スケール セット リソースに placement.zonePlacementPolicy を追加します。 2026-03-01 以降の Compute API バージョンを使用します。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2026-03-01
{
  "placement": {
    "zonePlacementPolicy": "auto"
  }
}

この構成を完全な仮想マシン スケール セット要求に追加します。

予想される動作

配置の制約を指定しない場合、Azureはインスタンスを 3 つのゾーンに均等に分散します。 たとえば、インスタンス数が 100 のスケール セットには、34、33、33 の分散がある場合があります。

偶数の 3 つのゾーンの分散が不可能な場合、Azureではインスタンスが少なくとも 2 つのゾーンにまたがる必要があり、1 つのゾーンのインスタンスの既定の制限である 50% が適用されます。 プラットフォームでは、 maxInstancePercentPerZonePolicy が明示的に構成されていない場合でも、この制限が適用されます。

たとえば、100 個のインスタンスを要求し、3 つのゾーンで使用可能な容量が 70、30、0 であるとします。 Azureは、50、30、および 20 の分散を試行します。 3 番目のゾーンには容量がないため、最終的なディストリビューションは 50、30、0 であり、20 個のインスタンスはプロビジョニングに失敗します。 既定の配布制限よりも割り当ての成功に優先順位を付けるために、より高い maxInstancePercentPerZonePolicy.valueを構成します。

対象ゾーンを構成する

Azure が配置時に考慮するゾーンを制御するには、includeZones または excludeZones のいずれかを使用します。 同じスケール セットで両方のプロパティを構成することはできません。

次の例では、配置にゾーン1と2のみを考慮するようにAzureを制限します。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2026-03-01
{
  "placement": {
    "zonePlacementPolicy": "auto",
    "includeZones": [
      "1",
      "2"
    ]
  }
}

または、excludeZonesを使用して、Azureが特定のゾーンを選択できないようにします。 次の例では、ゾーンの 3を除外します。

{
  "placement": {
    "zonePlacementPolicy": "auto",
    "excludeZones": [
      "3"
    ]
  }
}

予想される動作

includeZonesを構成する場合、Azureは、指定した一覧からのみゾーンを選択します。 この設定では、Azureが一覧のすべてのゾーンにインスタンスを配置することは保証されません。 Azureは、インスタンスを配置するときに、容量、SKU の可用性、現在のディストリビューション、およびその他の配置の制約を引き続き考慮します。

excludeZonesを構成する場合、Azureは除外されたゾーンで新しいインスタンスを選択または配置しません。 サポートされている他のすべてのゾーンは、引き続き対象となります。 同じスケール セットで includeZones と excludeZones を組み合わせることはできません。

1 つのゾーン内のインスタンスの割合を制限する

maxInstancePercentPerZonePolicyを使用して、任意の 1 つのゾーンに割り当てることができるスケール セットのターゲット容量の最大割合を制御します。 割合が高いほど、Azure割り当て要求を満たす柔軟性が高くなりますが、1 つのゾーンに集中できるインスタンスが増えます。

ポリシーは、 zoneBalance が falseされている場合にのみサポートされます。

最小インスタンス割合

最小値は、includeZones、excludeZones、およびmaxZoneCountが適用Azure後の配置の対象となるゾーンの数によって異なります。

minimum instance percentage = ceil(100 / number of eligible zones)

たとえば、includeZones にゾーン 1、2、4 が含まれており、maxZoneCount が 2 であるとします。 有効なゾーンの有効な数は 2 であるため、有効な最小パーセンテージは 50 です。

1 つのゾーン内のインスタンスの最大数

Azureは、スケール セットのターゲット容量に基づいて、1 つのゾーンで許可されるインスタンスの最大数を計算します。

maximum instances per zone = ceil(maximum instance percentage * target capacity / 100)

Azureは、結果を最も近い整数に丸めます。 たとえば、ターゲット容量が 101 インスタンスで、最大インスタンスの割合が 85 の場合、スケール セットは 1 つのゾーンに最大 86 個のインスタンスを配置できます。

次の例では、1 つのゾーン内のインスタンスの最大 85% を許可します。

PUT or PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2026-03-01
{
  "placement": {
    "zonePlacementPolicy": "auto"
  },
  "properties": {
    "resiliencyPolicy": {
      "zoneAllocationPolicy": {
        "maxInstancePercentPerZonePolicy": {
          "enabled": true,
          "value": 85
        }
      }
    }
  }
}

予想される動作

Azure最初に、インスタンスを 3 つのゾーンに均等に分散しようとします。 偶数分布が不可能な場合、Azureはインスタンスの最大 85% を 1 つのゾーンに割り当てることができます。 この設定により、Azure割り当て要求を満たす柔軟性が向上しますが、1 つのゾーン内のインスタンスの濃度が高くなります。

ゾーンが計算された最大値に達すると、Azureは他の対象ゾーンに残りのインスタンスを配置しようとします。 これらのゾーンに十分な容量がない場合、残りのインスタンスはプロビジョニングに失敗する可能性があります。

たとえば、100 個のインスタンスを要求し、3 つのゾーンで使用可能な容量が 90、10、0 であるとします。 Azureは、85、10、5 の分布を試行します。 3 番目のゾーンには容量がないため、最終的なディストリビューションは 85、10、0 で、5 つのインスタンスはプロビジョニングに失敗します。

厳密なゾーン バランシングを使用する

zoneBalanceをtrueに設定して、選択したゾーン間で分散を調整する必要があります。 厳密なゾーン分散が有効な場合は、 maxZoneCount を指定する必要があります。

次の例では、3 つのゾーン間で厳密なゾーン分散を有効にします。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2026-03-01
{
  "placement": {
    "zonePlacementPolicy": "auto"
  },
  "properties": {
    "zoneBalance": true,
    "resiliencyPolicy": {
      "zoneAllocationPolicy": {
        "maxZoneCount": 3
      }
    }
  }
}

予想される動作

Azureでは、選択したゾーン全体のインスタンス数が互いの 1 つのインスタンス内に留まるようにする必要があります。 maxZoneCountを 3 に設定すると、Azureは最大 3 つのゾーンを選択し、使用中のゾーン間で厳密なバランスを維持します。

容量またはゾーンの可用性のためにAzure厳密なバランスを維持できない場合、ポリシー内に配置できないインスタンスはプロビジョニングに失敗します。 したがって、厳密なゾーン分散は、ベストエフォート分散と比べて、割り当ての成功率を低下させる可能性があります。

既存のスケール セットでゾーンの自動配置を有効にする

顧客が選択したゾーンまたはリージョンの配置を使用する既存のスケール セットで、ゾーンの自動配置を有効にすることができます。

Warning

リージョン スケール セットでゾーンの自動配置を有効にした後は、スケール セットをリージョンの配置に戻すことはできません。 既存のリージョン インスタンスはリージョンのままですが、Azureは新しいインスタンスを可用性ゾーンに配置します。

リージョン スケール セットでゾーンの自動配置を有効にする前に、「 ゾーン拡張の準備」を確認してください。

ユーザーが選択したゾーンを使用するスケール セットの場合は、 zones プロパティをクリアし、同じ更新操作で placement.zonePlacementPolicy を auto に設定します。 リージョン スケール セットの場合は、 placement.zonePlacementPolicy を auto に設定します。

PATCH 要求を次のエンドポイントに送信します。

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2026-03-01

顧客が選択したゾーンを使用するスケール セットの場合は、 zones をクリアし、同じ要求でゾーンの自動配置を有効にします。

{
  "zones": [],
  "placement": {
    "zonePlacementPolicy": "auto"
  }
}

リージョン スケール セットの場合は、 zonesを指定せずにゾーンの自動配置を有効にします。

{
  "placement": {
    "zonePlacementPolicy": "auto"
  }
}

予想される動作

この更新により、新しいインスタンスのゾーンの自動配置が有効になります。 既存のインスタンスは移動も再作成もされません。

顧客が選択したゾーンを使用するスケール セットの場合、既存のインスタンスは現在の可用性ゾーンに残ります。 リージョン スケール セットの場合、既存のリージョン インスタンスはリージョンのままです。 Azureは、新しいインスタンスを配置するときに自動ゾーン配置を使用します。

配置の要件が変更された場合は、自動ゾーン配置から顧客が選択したゾーンに切り替えることができます。 同じ更新操作で、 placement.zonePlacementPolicy をクリアし、 zones プロパティを設定します。 この更新プログラムは、既存のインスタンスを移動または再作成しません。

次のステップ