容量予約を変更する
適用対象: ✔️ 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 で満たすことができない場合、予約が "失敗" 状態になり、予約された数量が元の量に復元されるまで使用できなくなる可能性があります。
Note
予約が "失敗" 状態の場合、予約に関連付けられているすべての VM は通常どおりに引き続き動作します。
たとえば、myCapacityReservation
に 5 個のインスタンスが予約されているとします。 追加のインスタンスを 5 個要求すると、予約数量の合計は 10 個になります。 ただし、リージョンの容量が制約されている状況であるため、要求した追加の 5 インスタンスを Azure で満たすことができません。 この場合、myCapacityReservation
は 10 個の予約インスタンスという意図した状態を満たすことができず、"失敗" 状態になります。
この失敗を解決するには、これらの手順に従って、古い数量の予約値を見つけます。
- Azure portal で、[アプリケーション変更分析] に移動します。
- フィルターで該当する [サブスクリプション]、[リソース グループ]、[時間の範囲] 設定を選択します。 [時間の範囲] フィルターでは、過去 14 日間までしか戻れません。
- 容量予約の名前を検索します。
- その予約の
sku.capacity
プロパティの変更を探します。 古い予約されている数量は、[古い値] 列の値です。
myCapacityReservation
を古い予約済みの数量で更新します。 更新後、予約はすぐに VM で使用できるようになります。