適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ 均一スケール セット ✔️ フレキシブル スケール セット
容量予約グループと容量予約を作成した後に、予約を変更することができます。 この記事では、API、Azure portal、PowerShell を使用して次の操作を行う方法について説明します。
- 容量予約で予約されているインスタンスの数を更新する。
- 容量予約グループに関連付けられている VM のサイズを変更する。
- キャパシティ予約グループとキャパシティ予約を削除する。
予約されているインスタンスの数を更新する
容量予約で予約されている仮想マシン (VM) インスタンスの数を更新します。
重要
まれに、既存の容量予約用に予約された数量を増やす要求を Azure で満たすことができない場合、予約が "失敗" 状態になり、数量が元の量に復元されるまで使用できなくなる可能性があります。
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName}?api-version=2021-04-01
リクエスト本文内で、capacity プロパティを、予約する新しいカウントに更新します。
{
"sku":
{
"capacity": 5
}
}
この例では、capacity プロパティは 5 に設定されています。
容量予約グループに関連付けられている VM のサイズを変更する
サイズ変更中の VM が容量予約グループに現在アタッチされていて、そのグループにターゲット サイズの予約がない場合は、次のいずれかのオプションを実行する必要があります。
- そのサイズの新しい予約を作成する。
- サイズを変更する前に、予約グループから VM を削除します。
ターゲット サイズが予約グループの一部であるかどうかを確認します。
グループ内にあるすべてのキャパシティ予約の名前を取得します。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?api-version=2021-04-01{ "name": "<CapacityReservationGroupName>", "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}", "type": "Microsoft.Compute/capacityReservationGroups", "location": "eastUS", "zones": [ "1" ], "properties": { "capacityReservations": [ { "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}" }, { "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName2}" } ] } }予約ごとに予約されている VM サイズを確認します。 以下の例は
capacityReservationName1のものですが、この手順は他の予約に対しても繰り返すことができます。GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}?api-version=2021-04-01{ "name": "capacityReservationName1", "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}", "type": "Microsoft.Compute/capacityReservationGroups/capacityReservations", "location": "eastUS", "sku": { "name": "Standard_D2s_v3", "capacity": 3 }, "zones": [ "1" ], "properties": { "reservationId": "<reservationId>", "provisioningTime": "<provisioningTime>", "provisioningState": "Succeeded" } }次のシナリオで考えてみましょう。
- 対象の VM サイズがグループに含まれていない場合は、対象の VM 用に新しい容量予約を作成します。
- 対象の VM サイズがグループ内に既に存在する場合は、VM のサイズを変更します。
容量予約グループと容量予約を削除する
Azure では、メンバーの容量予約がすべて削除され、グループに VM が関連付けられていない場合に、グループを削除できます。
容量予約を削除するには、まず、それに関連付けられているすべての VM を確認します。 VM の一覧は、virtualMachinesAssociated プロパティで確認できます。
まず、容量予約グループに関連付けられているすべての VM を見つけて、それらの関連付けを解除します。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?$expand=instanceView&api-version=2021-04-01
{
"name": "<capacityReservationGroupName>",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}",
"type": "Microsoft.Compute/capacityReservationGroups",
"location": "eastus",
"properties": {
"capacityReservations": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}/capacityReservations/{capacityReservationName}"
}
],
"virtualMachinesAssociated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VirtualMachineName1}"
},
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VirtualMachineName2}"
}
],
"instanceView": {
"capacityReservations": [
{
"name": "{capacityReservationName}",
"utilizationInfo": {
"virtualMachinesAllocated": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VirtualMachineName1}"
}
]
},
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "<time>"
}
]
}
]
}
}
}
上記の応答から、virtualMachinesAssociated プロパティ配下にあるすべての VM の名前を特定します。
容量予約に対する VM の関連付けを削除する の手順に従って、それらを容量予約グループから削除します。
すべての VM が容量予約グループから削除されたら、メンバーの容量予約を削除します。
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName}?api-version=2021-04-01
最後に、親の容量予約グループを削除します。
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?api-version=2021-04-01
インスタンスの数量を復元する
予約された数量を減らすための適切な形式の要求は、予約に関連付けられている VM の数に関係なく、常に成功します。 ただし、予約量を増やすと、場合によっては、より多くのクォータが必要になり、Azure はより多くの容量の要求を満たす必要があります。 まれに、既存の予約用に予約された数量を増やす要求を Azure で満たすことができない場合、予約が "失敗" 状態になり、予約された数量が元の量に復元されるまで使用できなくなる可能性があります。
注
予約が "失敗" 状態の場合、予約に関連付けられているすべての VM は通常どおりに引き続き動作します。
たとえば、myCapacityReservation には 5 つのインスタンスが予約されているとします。 追加のインスタンスを 5 個要求すると、予約数量の合計は 10 個になります。 ただし、リージョンの容量が制約されている状況であるため、要求した追加の 5 インスタンスを Azure で満たすことができません。 この場合、myCapacityReservation は、予約インスタンス数 10 の意図した状態を満たせず、Failed 状態になります。
この失敗を解決するには、これらの手順に従って、古い数量の予約値を見つけます。
- Azure ポータルで、Change Analysis に移動します。
- フィルターで該当する [サブスクリプション]、[リソース グループ]、[時間の範囲] 設定を選択します。 [時間の範囲] フィルターでは、過去 14 日間までしか戻れません。
- 容量予約の名前を検索します。
- その予約の
sku.capacityプロパティの変更を確認します。 以前に予約された数量は、以前の値列の値です。
myCapacityReservation を以前に予約されていた数量に更新します。 更新後、予約はすぐに VM で使用できるようになります。
または、容量予約のインスタンス ビュー プロパティの currentCapacity フィールドを使用して、正常に予約された VM サイズの容量を確認し、数量を現在の容量値に更新します。
「容量予約 - 取得」を参照してください。