【Azure】Azure PowerShellでAzureVMのサイズを変更する

Azure

【Azure】Azure PowerShellでAzureVMのサイズを変更する

2018年6月4日

こんにちは!

 

AzureVM(仮想マシン)の VM サイズを Azure PowerShell で変更してみました。

ここでは、既にデプロイしたある仮想マシンに対して、VM サイズを変更します。

 

まずは VM サイズの種類から見てゆきましょう。

 

 

VM サイズの種類

 

 

Microsoft Azure では、仮想マシンの種類が予め決められており、種類によって性能が異なります。

以下のように、目的別に種類が分かれており、種類の中にサイズがあって、細分化されているイメージです。

ユーザーは、目的別に応じて仮想マシンの種類とサイズを選び、デプロイします。

 

 

Azure の Windows 仮想マシンのサイズ | Microsoft Azure

 

 

※以下の画像は、上記 URL から切り取って貼り付けたものになります。(2018年6月4日時点)

 

 

ロケーションで使用可能な VM サイズ

 

 

仮想マシンを使っているロケーションで、どの種類の VM サイズが使用可能なのか、Azure PowerShell で確認する事ができます。

例えば、私の場合、仮想マシンは米国東部 (eastus) 上で実行中でありますが、使用可能な VM サイズを確認するには以下のコマンドを実行します。

 

構文:Get-AzureRmVMSize -Location "ロケーション名"

 

 

Get-AzureRmVMSize | Microsoft Azure

 

 

Get-AzureRmVMSize -Location "eastus"

# 実行結果

Name NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
---- ------------- ---------- ---------------- -------------- --------------------
...
Standard_DS1_v2 1 3584 4 1047552 7168
Standard_DS2_v2 2 7168 8 1047552 14336
Standard_DS3_v2 4 14336 16 1047552 28672
Standard_DS4_v2 8 28672 32 1047552 57344
Standard_DS5_v2 16 57344 64 1047552 114688
...

 

 

事前準備

 

 

  • Azure PowerShell で Azure Portal に接続済みである事。

方法は以下の記事を参考にしていただければ幸いです。

 

【Azure】Azure PowerShellでAzureに接続する

 

 

注意事項

 

 

仮想マシンの VM サイズの変更は、仮想マシンの状態が Azure Portal 上で停止、実行中のいずれも可能なようです。

しかしここで注意が必要なのですが、仮想マシンが起動中(実行中)のまま VM サイズの変更をしますと、仮想マシンが再起動します。

 

ですので基本的には、VM サイズ変更は Azure Portal から停止の操作を行い、停止済み(割り当て解除)の状態にする事をおすすめします。

またこの案内は、Microsoft で推奨されています。他にも気になる事が色々書いてありますので参考になります。

 

VM のサイズ変更について | Japan Azure IaaS Support Blog

 

 

VM サイズを変更する

 

 

では早速 VM サイズを変更します。

 

  • 変更前の VM サイズ:Standard_D2_V3
  • 変更後の VM サイズ:Standard_D4_V3

 

 

使用中の VM サイズを確認する

 

 

Azure Portal から確認してみます。Standard D2 v3 になっています。

 

 

 

Azure PowerShell で使用中の VM サイズを確認できます。以下の Azure PowerShell を実行します。

 

 

$size = (Get-AzureRmVM -ResourceGroupName "TestLab" -Name "labvm01").HardwareProfile.VMSize
Get-AzureRmVMSize -location "eastus" | ?{ $_.name -eq $size }


# 実行結果

警告: Get-AzureRmVM: A property of the output of this cmdlet will change in an upcoming breaking change release. The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS

Name NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
---- ------------- ---------- ---------------- -------------- --------------------
Standard_D2_v3 2 8192 4 1047552 51200

 

 

仮想マシンを停止する

 

 

使用中の VM サイズを確認しましたら、仮想マシンを停止(割り当て解除)します。

Azure Portal からではなく、AzurePowerSell で行います。

 

Azure Portal 上では実行中だと、以下のステータスが表示されています。

 

 

これが停止(割り当て解除)しますと、以下のステータスが表示されています。

 

 

 

Stop-AzureRmVM -ResourceGroupName "TestLab" -Name "labvm01" -Force


# 実行結果
OperationId : 
Status : 
StartTime : 
EndTime : 
Error : 

 

 

仮想マシンの状態を確認する

 

 

仮想マシンが正常に停止されたか、以下の方法で確認します。

Get-AzureRmVm コマンドレット で仮想マシンの状態を取得し、変数 VMStat に代入します。

状態は配列として Statuses の 2 番目に表示されるので、[1] を指定します。これを #VMPwStat に代入します。

最後に Write-Host でコンソールに状態を出力します。

 

 

$VMStat = Get-AzureRmVM -ResourceGroupName "TestLab" -Name "labvm01" -Status
$VMPwStat = $VMStat.Statuses[1].DisplayStatus
Write-Host $VMPwStat


# 実行結果

VM deallocated ← VM deallocated が停止(割り当て解除)の状態になります。

 

 

仮想マシンの VM サイズを変更する

 

 

ここまで少し長かったですが、これから VM サイズを変更します。

Get-AzureRmVm コマンドレットを使用し、仮想マシンを取得し変数 $vm に代入します。

 

 

$vm = Get-AzureRmVm -ResourceGroupName "TestLab" -VMName "labvm01"


# 実行結果(警告以外に何も表示されなければ OK です。)

警告: Get-AzureRmVM: A property of the output of this cmdlet will change in an upcoming breaking change release. The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS

 

 

次に、変数 $vm を使用し、VM サイズを変更します。

 

 

$vm.HardwareProfile.VmSize = "Standard_D4_V3"


# 実行結果
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK 

 

 

仮想マシンの VM サイズを変更されたか確認する

 

 

最後に、VM サイズが変更されたかどうか確認します。以下は Azure Portal からの確認結果になります。

Standard D4 v3 に変更されています。

 

 

 

Azure PowerShell で使用中の VM サイズを確認できます。以下の Azure PowerShell を実行します。

 

 

$size = (Get-AzureRmVM -ResourceGroupName "TestLab" -Name "labvm01").HardwareProfile.VMSize
Get-AzureRmVMSize -location "eastus" | ?{ $_.name -eq $size }


# 実行結果
警告: Get-AzureRmVM: A property of the output of this cmdlet will change in an upcoming breaking change release.

Name NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
---- ------------- ---------- ---------------- -------------- --------------------
Standard_D4_v3 4 16384 8 1047552 102400

 

 

以上になります。

 

 

いかがでしょうか。

 

これで Azure PowerShell を使って、VM サイズを変更する方法が分かりました。

ただし、VM サイズを変更すると仮想マシンが再起動したり、その他いくつかの影響がありますので、事前に確認した上で実施する事をおすすめします。

 

 

では最後までお読みいただきありがとうございました!

 

 

おすすめの本はこちら ↓↓↓

 

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りでマイペースな人です。

人気記事

1

こんにちは!SE ブログの相馬です。       今回は、PC に適用されている GPO を確認する方法について書きました。     グループポリシー ...

2

こんにちは!SE ブログの相馬です。       今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは ...

3

こんにちは!SE ブログの相馬です。       今回は、グループポリシーを使って、特定のコンピューターに対して、ドメインユーザーに Administrators 権限を ...

4

こんにちは!SE ブログの相馬です。       今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 ...

5

こんにちは!SEブログの相馬です。       今回は、ユーザープロファイルを削除する方法について書いてみました。     1 台の PC を複数人で ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!SE ブログの相馬です。       今回は、Windows Server 2016 で NTP サーバーと同期する方法について書きました。   & ...

-Azure
-, ,