適用対象: ✔️ 均一スケール セット
Azure Virtual Machine Scale Sets には次の 2 つのモードがあります。
- 均一オーケストレーション モード: このモードの Virtual Machine Scale Sets は、仮想マシン (VM) プロファイルまたはテンプレートを使用して目的の容量に拡張します。 個々の VM インスタンスを管理またはカスタマイズする機能はいくつかありますが、均一オーケストレーションでは同一の VM インスタンスを使用します。 これらのインスタンスは、仮想マシン スケール セットの VM API を介して公開され、Azure サービスとしてのインフラストラクチャ (IaaS) VM の標準である API コマンドとは互換性がありません。 スケール セットは実際の VM 操作をすべて実行するため、予約は Virtual Machine Scale Sets に直接関連付けられます。 スケール セットが予約に関連付けられると、それ以降の VM 割り当てはすべて、予約に対して行われます。
- フレキシブル オーケストレーション: このモードでは、個々の Virtual Machine Scale Sets の VM インスタンスをより柔軟に管理することができます。 スケール セット インターフェイスを使用する代わりに、標準の Azure IaaS VM API を使用できます。 フレキシブル オーケストレーション モードで予約を使用するには、各 VM の Virtual Machine Scale Sets プロパティと容量予約プロパティの両方を定義します。
これらのモードの詳細については、「Virtual Machine Scale Sets オーケストレーション モード」を参照してください。
このコンテンツは、均一オーケストレーション モードに適用されます。 フレキシブル オーケストレーション モードについては、「フレキシブル オーケストレーションで Virtual Machine Scale Sets を容量予約グループに関連付ける」を参照してください。
均一オーケストレーションでのスケール セットの制限
- 容量予約と互換性のある均一オーケストレーションの Virtual Machine Scale Sets については、
singlePlacementGroupプロパティ をFalseに設定する必要があります。 - 複数ゾーンの均一スケール セットの可用性オプションである [静的固定拡散] は、容量予約ではサポートされていません。 このオプションでは、5 つの障害ドメインを使用する必要があります。 しかし、予約では、汎用目的のサイズの障害ドメインは 3 つまでしかサポートされません。 お勧めのアプローチとして、最大拡散オプションを使用する方法があります。このオプションを使用すると、各ゾーン内の可能な限り多くの障害ドメインに VM が拡散されます。 必要に応じて、3 つ以下のカスタム障害ドメイン構成を構成します。
容量予約を使用する場合は、他にもいくつかの制限があります。 完全な一覧については、「容量予約の概要」を参照してください。
新しい Virtual Machine Scale Sets を容量予約グループに関連付ける
重要
2023 年 11 月以降、PowerShell と Azure CLI を使用して作成された Virtual Machine Scale Sets は、オーケストレーション モードが指定されていない場合、既定でフレキシブル オーケストレーション モードになります。 この変更の詳細と実行する必要があるアクションについては、「VMSS PowerShell/CLI のお客様向けの重大な変更 - Microsoft コミュニティ ハブ」を参照してください。
新しい均一 Virtual Machine Scale Sets を容量予約グループに関連付けるには、Microsoft.Compute プロバイダーに次の PUT 要求を挙げます。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
virtualMachineProfile プロパティに capacityReservationGroup プロパティを追加します。
{
"name": "<VMScaleSetName>",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"location": "eastus",
"sku": {
"name": "Standard_D2s_v3",
"tier": "Standard",
"capacity": 3
},
"properties": {
"virtualMachineProfile": {
"capacityReservation": {
"capacityReservationGroup":{
"id":"subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroup/{CapacityReservationGroupName}"
}
},
"osProfile": {
…
},
"storageProfile": {
…
},
"networkProfile": {
…,
"extensionProfile": {
…
}
}
}
既存の仮想マシン スケール セットを容量予約グループに関連付ける
既存のゾーン仮想マシン スケール セットは、割り当て解除を必要とせずに、容量予約グループのプロパティを使用して簡単に更新できます。 既存のリージョン仮想マシン スケール セットには同様のプロセスを含めることができますが、再割り当てする必要があります。
リージョン仮想マシン スケールセット
既存のリージョン容量予約グループを既存の均一スケール セットに追加するには:
- スケール セットを停止し、VM インスタンスの割り当てを解除します。
- 一致する容量予約グループを使うようにスケール セットを更新します。
- スケール セットを開始します。
このプロセスにより、リージョン内の容量予約とスケール セットの配置の互換性が確保されます。
アップグレード ポリシーに関する重要な注意事項
- 自動アップグレード - このモードでは、ユーザーが他の操作を行う必要なく、スケール セット VM インスタンスが容量予約グループに自動的に関連付けられます。 スケール セット VM が再割り当てされると、予約容量の消費が開始されます。
- ローリング アップグレード - このモードでは、ユーザーが他の操作を行うことなく、スケール セット VM インスタンスが容量予約グループに関連付けられます。 ただし、バッチ間に任意の一時停止時間が設けられたバッチで更新されます。 スケール セット VM が再割り当てされると、予約容量の消費が開始されます。
- 手動アップグレード - このモードでは、仮想マシン スケール セットが容量予約グループに関連付けられても、スケール セット VM インスタンスに対しては何も起こりません。 最新のスケール セット モデルでアップグレードして、各スケール セット VM を更新する必要があります。
Virtual Machine Scale Sets の割り当てを解除する:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01capacityReservationGroupプロパティをスケール セット モデルに追加します。Microsoft.Computeプロバイダーに、次のPUT要求を挙げます。PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01要求本文に、
capacityReservationGroupプロパティを含めます。"location": "eastus", "properties": { "virtualMachineProfile": { "capacityReservation": { "capacityReservationGroup": { "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}" } } } }
ゾーナル仮想マシン スケール セット
既存の容量予約グループに容量があり、既存のゾーン統一スケール セットを追加する場合は、スケール セットを容量予約グループに更新するだけで、一致する容量予約を使用できます。
重要
割り当てを解除せずに既存のゾーン スケール セットを予約グループに関連付ける機能は、現在 プレビュー段階です。 ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される法的条件については、 プレビュー使用条件 を参照してください。 この機能は現在、21Vianet が運営する Microsoft Azure Government および Microsoft Azure では使用できません。
アップグレード ポリシーに関する重要な注意事項
- 自動アップグレード - このモードでは、ユーザーが他の操作を行う必要なく、スケール セット VM インスタンスが容量予約グループに自動的に関連付けられます。 既に実行されている場合、スケール セット VM インスタンスは予約容量の使用を開始します。 既存のスケール セット VM が割り当て解除状態の場合、再割り当て時に予約容量の使用が開始されます。
- ローリング アップグレード - このモードでは、ユーザーが他の操作を行うことなく、スケール セット VM インスタンスが容量予約グループに関連付けられます。 ただし、バッチ間に任意の一時停止時間が設けられたバッチで更新されます。 既に実行されている場合、スケール セット VM インスタンスは予約容量の使用を開始します。 既存のスケール セット VM が割り当て解除状態の場合、再割り当て時に予約容量の使用が開始されます。
- 手動アップグレード - このモードでは、仮想マシン スケール セットが容量予約グループに関連付けられても、スケール セット VM インスタンスに対しては何も起こりません。 最新のスケール セット モデルでアップグレードして、各スケール セット VM を更新する必要があります。
capacityReservationGroup プロパティをスケール セット モデルに追加します。
Microsoft.Compute プロバイダーに、次の PUT 要求を挙げます。
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
要求本文に、capacityReservationGroup プロパティを含めます。
"location": "eastus",
"properties": {
"virtualMachineProfile": {
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
}
}
}
}
ゼロ サイズ予約を使用して既存のゾーン仮想マシン スケール セットをセキュリティで保護する
Zonally にデプロイされた仮想マシン スケール セットは、再割り当てなしでオンデマンド容量予約を使用するように変換できます。 既存の容量予約グループに容量がない場合は、まず、ゼロ サイズの一致する予約を作成してワークロードをセキュリティで保護できます。 基本的なプロセスには、次の 3 つの手順が含まれます。
容量予約グループを作成し、予約数量がゼロに設定された各ターゲット ゾーンの容量予約を照合します。 これには、追加のクォータや容量は必要ありません。 予約を作成する方法の詳細については、「容量予約の 作成」を参照してください。
既存の実行中のゾーン仮想マシン スケール セットを容量予約に関連付けます。 仮想マシン スケール セット (VMSS) capacityReservationGroup プロパティを目的の容量予約グループに設定し、VMSS (VMSS uniform) でモデル更新を実行するか、capacityReservationGroup プロパティ (VMSS Flex) を使用して各メンバー VM を更新します。 完了すると、各ターゲット容量予約が割り当て超過になります。ゾーン仮想マシン ス ケールセットに関する説明を参照してください。
割り当てられた仮想マシン (VM) の数に合わせて、各容量予約 (CR) の予約量を増やします。 各 CR は既に割り当て超過になっているため、この手順では追加のクォータや容量は必要ありません。 予約数を更新する方法の詳細については、「容量予約の変更」を参照してください。
数量が増えると、すべての VMSS 仮想マシンが割り当てられて、CR が完全な割り当て済み状態になることが分かります。 「インスタンス ビューを使用して VM の割り当てを表示する」を参照してください。
共有容量予約グループの使用については、「共有容量予約グループ のゼロ サイズ予約を使用して既存のゾーン ワークロードをセキュリティで保護する」を参照してください。
リージョンと可用性ゾーンに関する考慮事項
Virtual Machine Scale Sets をリージョンまたは 1 つ以上の可用性ゾーンで作成すると、データセンター レベルの障害から保護できます。 複数ゾーンの Virtual Machine Scale Sets の詳細については、「可用性ゾーンを使用する Virtual Machine Scale Sets」を参照してください。
重要
関連付けを成功させるには、Virtual Machine Scale Sets と容量予約グループの場所 (リージョンまたは可用性ゾーン) を一致させる必要があります。 リージョン スケール セットの場合、スケール セットと容量予約グループの間でリージョンを一致させる必要があります。 ゾーン スケール セットの場合、スケール セットと容量予約グループの間でリージョンとゾーンの両方を一致させる必要があります。
スケール セットが複数のゾーンに分散されている場合は常に、含まれている可用性ゾーン全体への均等なデプロイが試行されます。 この均等なデプロイのために、容量予約グループの予約済み VM の数量を各ゾーンで常に同じにする必要があります。 デプロイが重要である理由の説明として、次の例を考慮します。
この例では、各ゾーンの予約済み数量が異なります。 Virtual Machine Scale Sets が、75 のインスタンスに拡張されるとします。 スケール セットはゾーン間で常に均等なデプロイが試行されるため、VM の配分は次のようになります。
| ゾーン | 予約済み数量 | 各ゾーンのスケール セット VM の数 | 未使用の予約済み数量 | Overallocated |
|---|---|---|---|---|
| 1 | 40 | 25 | 15 | 0 |
| 2 | 20 | 25 | 0 | 5 |
| 3 | 15 | 25 | 0 | 10 |
この場合、スケール セットでは、ゾーン 1 の 15 個の未使用インスタンスに対して追加コストが発生します。 さらに、このスケールアウトは、容量予約によって保護されていない、ゾーン 2 の 5 個の VM とゾーン 3 の 10 個の VM に依存しています。 各ゾーンで容量インスタンスが 25 個ずつ予約されていれば、75 個のすべての VM が容量予約によって保護され、デプロイによって、未使用インスタンスに対する追加コストが発生することはありません。
予約を過剰割り当てすることができるため、スケール セットは、予約の制限を超えて通常どおりスケーリングを続けることができます。 唯一の違いは、予約された数量を超えて割り当てられた VM は、容量予約のサービス レベル アグリーメントの対象にならないことです。 詳細については、「容量予約の割り当て超過」を参照してください。