容量予約を変更する

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ 均一スケール セット ✔️ フレキシブル スケール セット

容量予約グループと容量予約を作成した後に、予約を変更することができます。 この記事では、API、Azure portal、PowerShell を使用して次の操作を行う方法について説明します。

  • 容量予約で予約されているインスタンスの数を更新する
  • 容量予約グループに関連付けられている 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 が容量予約グループに現在アタッチされていて、そのグループにターゲット サイズの予約がない場合は、次のいずれかのオプションを実行する必要があります。

  • そのサイズの新しい予約を作成する
  • サイズを変更する前に予約グループから仮想マシンを削除する。

ターゲット サイズが予約グループの一部であるかどうかを確認します。

  1. グループ内のすべての容量予約の名前を取得します。

        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}" 
                } 
            ] 
        } 
    } 
    
  2. 予約ごとに予約されている 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" 
        } 
    }  
    
  3. 次のシナリオで考えてみましょう。

    1. ターゲット VM サイズがグループの一部ではない場合は、ターゲット VM の新しい容量予約を作成します
    2. ターゲット VM サイズがグループに既に存在する場合は、仮想マシンのサイズを変更します

容量予約グループと容量予約を削除する

Azure では、メンバーの容量予約がすべて削除され、グループに VM が関連付けられていない場合に、グループを削除できます。

容量予約を削除するには、まず、それに関連付けられているすべての仮想マシンを確認します。 仮想マシンの一覧は virtualMachinesAssociated プロパティで確認できます。

まず、容量予約グループに関連付けられているすべての仮想マシンを見つけて、関連付けを解除します。

    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 の関連付けを削除する」の手順を使用して、それらを容量予約グループから削除します。

すべての仮想マシンが容量予約グループから削除されたら、メンバーの容量予約を削除します。

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 個の数量が予約されている意図された状態を満たすことができず、"失敗" 状態になります。

この失敗を解決するには、次の手順を実行して、予約された数量の古い値を見つけます。

  1. Azure portal で、[アプリケーション変更分析] に移動します
  2. フィルターで該当する [サブスクリプション][リソース グループ][時間の範囲] を選択します
    • [時間の範囲] フィルターでは、過去 14 日間までしか戻れません
  3. 容量予約の名前を検索します
  4. その予約の sku.capacity プロパティの変更を探します
    • 古い予約されている数量は、 [古い値] 列の値です

myCapacityReservation を古い予約済みの数量で更新します。 更新されると、仮想マシンでその予約をすぐに使用できるようになります。

次のステップ