VM およびアタッチされたリソースの削除
[アーティクル] 08/26/2024
16 人の共同作成者
フィードバック
この記事の内容
VM を削除する方法によっては、VM リソースのみが削除され、ネットワークとディスク リソースは削除されないことがあります。 VM を削除するときに削除されるその他のリソースに関する既定の設定を変更できます。
VM を作成するときに削除オプションを設定する
ポータル を開きます。
[+ リソースの作成] を選択します。
[リソースの作成] ページの [仮想マシン] で [作成] を選択します。
[基本] で選択を行い、[Next : Disks >](次へ : ディスク >) を選択します。[ディスク] タブが開きます。
[ディスク オプション] では、既定で OS ディスクが [Delete with VM](VM と共に削除する) に設定されています。 OS ディスクを削除しない場合は、このチェックボックスをオフにします。 既存の OS ディスクを使用している場合、既定では、VM が削除されたときに OS ディスクはデタッチされます。
[データ ディスク] では、既存のデータ ディスクをアタッチするか、新しいディスクを作成して VM にアタッチできます。
ディスク情報の追加が完了したら、[Next : Networking >](次へ: ネットワーク >) を選択します。[ネットワーク] タブが開きます。
ページの下の方にある [Delete public IP and NIC when VM is deleted](VM が削除されるさきにパブリック IP と NIC を削除する) を選択します。
選択が完了したら、[確認と作成] を選択します。
VM を削除するときに削除するように選択したリソースを確認できます。
選択内容に問題がなく、検証に合格したら、[作成] を選択して VM をデプロイします。
VM を削除するときに、アタッチされたリソースをどのように処理するかを指定するには、delete-option
パラメーターを使用します。 それぞれ、Delete
に設定して、VM を削除するときにリソースを完全に削除することも、Detach
に設定して、リソースをデタッチして Azure に残し、後で再利用できるようにすることができます。 CLI を使用して作成された VM の既定値では、OS ディスクはデタッチされます。 Detach
を指定したリソースは、ディスクと同様に、その後も適用される料金が発生します。
--os-disk-delete-option
- OS ディスク。
--data-disk-delete-option
- データ ディスク。
--nic-delete-option
- NIC。
この例では、 myImage という名前のイメージを使用して myResourceGroup という名前のリソース グループに myVM という名前の VM を作成し、VM を削除するときに OS ディスクと NIC を削除するように設定します。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image myImage \
--public-ip-sku Standard \
--nic-delete-option delete \
--os-disk-delete-option delete \
--admin-username azureuser \
--generate-ssh-keys
VM を削除するときに、アタッチされたリソースをどのように処理するかを指定するには、DeleteOption
パラメーターを使用します。 それぞれ、Delete
に設定して、VM を削除するときにリソースを完全に削除することも、Detach
に設定して、リソースをデタッチして Azure に残し、後で再利用できるようにすることができます。 PowerShell を使用して作成された VM の既定値では、VM を削除するときに OS ディスクはデタッチされます。 Detach
を指定したリソースは、ディスクと同様に、その後も適用される料金が発生します。
DeleteOption
パラメーターは次のとおりです。
-OSDiskDeleteOption
- OS ディスク。
-DataDiskDeleteOption
- データ ディスク。
-NetworkInterfaceDeleteOption
- NIC。
この例では、VM を作成し、VM を削除するときに OS ディスクと NIC が削除されるように設定します。
New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-OSDiskDeleteOption Delete `
-NetworkInterfaceDeleteOption Delete `
-Location "East US" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-SecurityGroupName "myNetworkSecurityGroup" `
-PublicIpAddressName "myPublicIpAddress"
この例では、VM が削除されたときに、データ ディスクと NIC が削除されるように設定する方法を示します。 削除オプションを構成するには、api-version パラメーターで指定された API バージョンが '2021-03-01' 以降である必要があることに注意してください。
PUT
https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/myVM?api-version=xx
{
"storageProfile": {
"dataDisks": [
{
"diskSizeGB": 1023,
"name": "myVMdatadisk",
"createOption": "Empty",
"lun": 0,
"deleteOption": "Delete"
}
]
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/.../Microsoft.Network/networkInterfaces/myNIC",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
]
}
}
また、NIC に関連付けられているパブリック IP に対してこのプロパティを設定して、NIC が削除されたときにパブリック IP が自動的に削除されるようにすることもできます。
PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/test-nic?api-version=xx
{
"properties": {
"enableAcceleratedNetworking": true,
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"publicIPAddress": {
"id": "/subscriptions/../publicIPAddresses/test-ip",
"properties": {
"deleteOption": "Delete"
}
},
"subnet": {
"id": "/subscriptions/../virtualNetworks/rg1-vnet/subnets/default"
}
}
}
]
},
"location": "eastus"
}
既存の VM の削除動作を更新する
VM を削除するときに動作を変更できます。
次の例では、ディスクを再利用できるように削除オプションを detach
に設定します。
az resource update --resource-group myResourceGroup --name myVM --resource-type virtualMachines --namespace Microsoft.Compute --set properties.storageProfile.osDisk.deleteOption=detach
次の例では、VM を削除するときに OS ディスク、すべてのデータ ディスク、およびすべての NIC を削除するように VM を更新します。
$vmConfig = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
$vmConfig.StorageProfile.OsDisk.DeleteOption = 'Delete'
$vmConfig.StorageProfile.DataDisks | ForEach-Object { $_.DeleteOption = 'Delete' }
$vmConfig.NetworkProfile.NetworkInterfaces | ForEach-Object { $_.DeleteOption = 'Delete' }
$vmConfig | Update-AzVM
次の例では、VM を更新して、VM が削除されたときに NIC、OS ディスク、およびデータ ディスクが削除されるようにします。 削除オプションを構成するには、api-version パラメーターで指定された API バージョンが '2021-03-01' 以降である必要があることに注意してください。
PATCH https://management.azure.com/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/virtualMachines/testvm?api-version=2021-07-01
{
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D2s_v3"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest",
"exactVersion": "17763.3124.2111130129"
},
"osDisk": {
"osType": "Windows",
"name": "OsDisk_1",
"createOption": "FromImage",
"caching": "ReadWrite",
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/OsDisk_1"
},
"deleteOption": "Delete",
"diskSizeGB": 127
},
"dataDisks": [
{
"lun": 0,
"name": "DataDisk_0",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": false,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/DataDisk_0"
},
"deleteOption": "Delete",
"diskSizeGB": 1024,
"toBeDetached": false
},
{
"lun": 1,
"name": "DataDisk_1",
"createOption": "Attach",
"caching": "None",
"writeAcceleratorEnabled": false,
"managedDisk": {
"storageAccountType": "Premium_LRS",
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Compute/disks/DataDisk_1"
},
"deleteOption": "Delete",
"diskSizeGB": 1024,
"toBeDetached": false
}
]
},
"osProfile": {
"computerName": "testvm",
"adminUsername": "azureuser",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"patchSettings": {
"patchMode": "AutomaticByOS",
"assessmentMode": "ImageDefault",
"enableHotpatching": false
}
},
"secrets": [],
"allowExtensionOperations": true,
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/subID/resourceGroups/resourcegroup/providers/Microsoft.Network/networkInterfaces/nic336",
"properties": {
"deleteOption": "Delete"
}
}
]
}
}
}
VM の強制削除
強制削除では、仮想マシンを強制的に削除できます。削除の待ち時間が短縮され、アタッチされているリソースがすぐに解放されます。 グレースフル シャットダウンを必要としない VM の場合、強制削除の目的は、正常なシャットダウンとクリーンアップ操作の一部をバイパスして、VM から論理リソースを解放しながら、できるだけ早く VM を削除することです。 強制削除では、VM に関連付けられている MAC アドレスはすぐには解放されません。これは、解放まで最大 10 分かかる物理リソースであるためです。 新しい VM で MAC アドレスをすぐに再利用する必要がある場合、強制削除は推奨されません。 強制削除は、仮想ハード ディスクを再利用する予定がない場合にのみ使用してください。 強制削除は、ポータル、CLI、PowerShell、REST API から使用できます。
既存の VM を削除すると、削除ウィンドウに強制削除を適用するオプションが表示されます。
ポータル を開きます。
仮想マシンに移動します。
[概要] ページで [削除] を選択します。
[仮想マシンの削除] ウィンドウで [強制削除の適用] のチェックボックスを選択します。
[OK] を選択します。
az vm delete の --force-deletion
パラメーターを使用します。
az vm delete \
--resource-group myResourceGroup \
--name myVM \
--force-deletion none
Remove-AzVm の -ForceDeletion
パラメーターを使用します。
Remove-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVM" `
-ForceDeletion $true
スケール セットの強制削除
強制削除を使うと、仮想マシン スケール セットを強制的に削除できます。これにより、削除の待ち時間が短縮され、接続されているリソースがすぐに解放されます。 強制削除では、VM に関連付けられている MAC アドレスはすぐには解放されません。これは、解放まで最大 10 分かかる物理リソースであるためです。 新しい VM で MAC アドレスをすぐに再利用する必要がある場合、強制削除は推奨されません。 強制削除は、仮想ハード ディスクを再利用する予定がない場合にのみ使用してください。 強制削除は、ポータル、CLI、PowerShell、REST API から使用できます。
既存のスケール セットを削除するために移動すると、削除ペインに強制削除を適用するオプションが表示されます。
ポータル を開きます。
仮想マシン スケール セットに移動します。
[概要] ページで [削除] を選択します。
[仮想マシン スケール セットの削除] ペインで [強制削除の適用] のチェックボックスをオンにします。
[OK] を選択します。
az vmss delete
で --force-deletion
パラメーターを使用します。
az vmss delete \
--resource-group myResourceGroup \
--name myVMSS \
--force-deletion true
Remove-AzVmss の -ForceDeletion
パラメーターを使用します。
Remove-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Name "myVMSS" `
-ForceDeletion $true
よく寄せられる質問
Q: この機能は共有ディスクで動作しますか?
A: 共有ディスクの場合は、'deleteOption' プロパティを 'Delete' に設定できません。 空白のままにするか、'Detach' に設定することができます
Q: この機能をサポートする Azure リソースは何ですか?
A: この機能は、OS ディスク、データディスク、NIC、パブリック IP として使用されるすべてのマネージド ディスクの種類でサポートされています。
Q: VM に関連付けられていないディスクと NIC でこの機能を使用できますか?
A: いいえ。この機能は、VM に関連付けられているディスクと NIC でのみ使用できます。
Q: この機能はフレキシブル仮想マシン スケール セットでどのように動作しますか?
A: フレキシブル仮想マシン スケール セットでは、ディスク、NIC、パブリック IP の deleteOption
が既定で Delete
に設定されているため、VM が削除されると、これらのリソースは自動的にクリーンアップされます。
明示的に作成されて VM にアタッチされたデータ ディスクの場合、VM が削除された後もディスクを保持する場合は、このプロパティを 'Delete' ではなく 'Detach' に変更できます。
Q: スポット VM はこの機能をサポートしていますか?
A: はい。オンデマンドの VM の場合と同じように、この機能をスポット VM に使用することができます。
Q: VM に関連付けられているディスク、NIC、パブリック IP を保持するにはどうすればよいですか?
A: 既定では、VM に関連付けられているディスク、NIC、パブリック IP は、VM が削除されたときに保持されます。 これらのリソースを自動的に削除するように構成している場合は、VM が削除された後もリソースが保持されるように設定を更新できます。 これらのリソースを保持するには、deleteOption
プロパティを Detach
に設定します。
次のステップ
基本的な VM 管理の詳細については、「チュートリアル: Azure CLI を使用した Linux VM の作成と管理 」を参照してください。