Power ShellでAzure VM起動/停止と一緒にディスクタイプを変更
Azure Managed Disksですが、Azure VMの起動停止状態に関わらず使用料金が発生します。
Account Type(Premium SSD、Standard HDD)により使用料金が異なります。
Azure VMを停止している時に、Premium SSDを利用する事はコストの無駄になります。Azure VM停止時にPremiumSSD等からStandard HDDに戻す事等で、Azureの利用料金を抑えることができます。
今回は、Azure VM起動時や停止時に、Managed DiskのAccount Typeを変更するPower Shellを作ってみました。
作成にあたっては、以下のサイトを参考にしています。
マネージド ディスクのストレージの種類を更新する(公式サイト)
Azure VMの起動停止をRunbook使って実施する記事やAzure VMの停止忘れ対応に関する記事も併せて参考にして頂ければと。
Azure VM起動と共にディスクタイプを変更するPower Shell(HDD→SSD)
Azure VMの起動に併せて、Azure VMに接続されているすべてのManaged DiskをStandard SSDとするようにしてみました。
Power Shell実行時に、VM名を変数として指定し、実行するようにしています。(VM IDを2回指定してますが、気にしないでください。)
#Vm Start (Changed Disk Type) #VM名を固定にする場合は、下記の通り指定します。(param部分はコメントアウト) param ( $resourceGroupName =“リソースグループ名" $VM = Get-AzVM -Name $vmName -resourceGroupName $resourceGroupName foreach ($disk in $vmDisks) Start-AzVM -ResourceGroupName $resourceGroupName -Name $vmName |
起動対象のVM名を指定し、Power Shell実行します。(今回はPowerShell名を、VM_Start_SelectDiskType.ps1としています。)
c:\VM_Start_SelectDiskType.ps1 -vmName VM Name |
Azure VM停止と共にディスクタイプを変更するPower Shell(SSD→HDD)
Azure VM停止に併せて、VMに接続されているManaged DiskをすべてStandard HDDにしています。Power Shell実行時に、VM名を変数として指定し、実行するようにしています。
#Vm Stop (Changed Disk Type) #VM名を固定にする場合は、下記の通り指定します。(param部分はコメントアウト) param ( $resourceGroupName =“リソースグループ名" Stop-AzVM -ResourceGroupName $resourceGroupName -Name $vmName -Force $VM = Get-AzVM -Name $vmName -resourceGroupName $resourceGroupName foreach ($disk in $vmDisks) } |
停止対象のVM名を指定し、Power Shell実行します。(今回はPowerShell名を、VM_Stop_SelectDiskType.ps1としています。)
c:\VM_Stop_SelectDiskType.ps1 -vmName VM Name |
Managed DisksのAccount Typeを確認
Power ShellでManaged DiskのAccount Typeを表示する事ができます。変更後の確認に使えます。
Get-AzDisk -resourceGroupName ”リソースグループ名” |ft Name,@{Name="Name"; Expression={$_.Sku.Name}} |