チュートリアル:Azure PowerShell を使用して Windows VM を作成および管理する

Azure 仮想マシンは、完全に構成可能で柔軟なコンピューティング環境を提供します。 このチュートリアルでは、VM サイズや VM イメージの選択、VM のデプロイなどの、Azure 仮想マシンの基本的なデプロイ タスクについて説明します。 学習内容は次のとおりです。

  • VM を作成し接続する
  • VM イメージを選択して使用する
  • 特定の VM サイズを確認して使用する
  • VM のサイズを変更する
  • VM の状態を表示して理解する

Azure Cloud Shell を起動する

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。

リソース グループの作成

New-AzResourceGroup コマンドでリソース グループを作成します。

Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 仮想マシンの前にリソース グループを作成する必要があります。 次の例では、myResourceGroupVM という名前のリソース グループが EastUS リージョンに作成されます。

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

このチュートリアル全体で示しているように、VM の作成時または変更時にリソース グループを指定します。

VM の作成

VM を作成するときに、オペレーティング システム イメージ、ネットワーク構成、管理者資格情報など、いくつかのオプションを使用できます。 次の例では、Windows Server 2016 Datacenter の既定のバージョンを実行する myVM という名前の VM を作成します。

Get-Credential を使用して、VM の管理者アカウントに必要なユーザー名とパスワードを設定します。

$cred = Get-Credential

New-AzVM を使用して VM を作成します。

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

VM への接続

デプロイが完了したら、VM とのリモート デスクトップ接続を作成します。

次のコマンドを実行して、VM のパブリック IP アドレスを取得します。 この IP アドレスを書き留めておきます。後の手順で Web 接続性をテストするときにブラウザーでこの IP アドレスに接続します。

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

ローカル コンピューターで次のコマンドを使用して、VM とのリモート デスクトップ セッションを作成します。 IP アドレスを VM の publicIPAddress に置き換えます。 メッセージが表示されたら、VM の作成時に使用した資格情報を入力します。

mstsc /v:<publicIpAddress>

[Windows セキュリティ] ウィンドウで、 [その他][別のアカウントを使用する] の順に選択します。 VM 用に作成したユーザー名とパスワードを入力し、 [OK] をクリックします。

Marketplace のイメージについて

Azure Marketplace には、新しい VM の作成に使用できるさまざまなイメージが用意されています。 前の手順では、Windows Server 2016 Datacenter イメージを使用して VM を作成しました。 この手順では、PowerShell モジュールを使用して、新しい VM のベースとしても使用できるその他の Windows イメージを Marketplace で検索します。 このプロセスは、イメージを識別するための発行元、プラン、SKU、およびオプションのバージョン番号の検索で構成されます。

Get-AzVMImagePublisher コマンドを使用して、イメージ発行元の一覧を取得します。

Get-AzVMImagePublisher -Location "EastUS"

Get-AzVMImageOffer を使用して、イメージ オファーの一覧を取得します。 このコマンドを使用すると、返される一覧が、MicrosoftWindowsServer という指定した発行元名でフィルター処理されます。

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

結果は次のようになります。

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

Get-AzVMImageSku コマンドでは、発行元とオファー名でフィルター処理されて、イメージ名の一覧が返されます。

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

結果は次のようになります。

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

この情報は、特定のイメージを使用して VM をデプロイするために使用できます。 この例では、Windows Server 2016 with Containers イメージの最新バージョンを使用して VM をデプロイします。

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

-AsJob パラメーターにより、バックグラウンド タスクとして VM が作成されるため、PowerShell プロンプトが表示されます。 Get-Job コマンドレットを使用して、バックグラウンド ジョブの詳細を表示できます。

VM のサイズについて

VM のサイズにより、CPU、GPU、メモリなど、VM で利用できる計算リソースの量が決定されます。 仮想マシンは、ワークロードに適した VM サイズを使用して作成する必要があります。 ワークロードが増えた場合は、既存の仮想マシンのサイズを変更することもできます。

VM サイズ

次の表は、ユース ケース別にサイズを分類したものです。

Type 一般的なサイズ 説明
汎用 B、Dsv3、Dv3、DSv2、Dv2、Av2、DC CPU とメモリのバランスがとれています。 開発/テスト環境や、小中規模のアプリケーションとデータ ソリューションに最適です。
コンピューティングの最適化 Fsv2 メモリに対する CPU の比が大きくなっています。 トラフィックが中程度のアプリケーション、ネットワーク アプライアンス、バッチ処理に適しています。
メモリの最適化 Esv3、Ev3、M、DSv2、Dv2 コアに対するメモリの比が大きくなっています。 リレーショナル データベース、中から大規模のキャッシュ、およびインメモリ分析に適しています。
ストレージの最適化 Lsv2、Ls 高いディスク スループットと IO。 ビッグ データ、SQL、および NoSQL のデータベースに最適です。
GPU NV、NVv2、NC、NCv2、NCv3、ND 負荷の高いグラフィック レンダリングやビデオ編集に特化した VM です。
高性能 H オプションで高スループットのネットワーク インターフェイス (RDMA) を備えた、最も強力な CPU VM です。

使用可能な VM サイズを確認する

特定のリージョンで利用可能な VM サイズのリストを確認するには、Get-AzVMSize コマンドを使用します。

Get-AzVMSize -Location "EastUS"

VM のサイズを変更する

デプロイ後に VM のサイズを変更して、リソースの割り当てを増減できます。

VM のサイズを変更する前に、必要なサイズを現在の VM クラスターで利用できるかどうかを確認します。 Get-AzVMSize コマンドでは、サイズの一覧が返されます。

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

サイズが使用可能な場合は、電源を入れた状態で VM のサイズを変更できます。ただし、この操作中に再起動が行われます。

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

現在のクラスターで目的のサイズを利用できない場合は、サイズ変更操作を行う前に VM の割り当てを解除する必要があります。 VM の割り当てを解除すると、一時ディスク上のデータはすべて削除され、静的 IP アドレスを使用している場合以外はパブリック IP アドレスが変更されます。

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

VM の電源状態

Azure VM は、次のいずれかの電源状態になります。

電源状態 説明
開始中 仮想マシンは起動中です。
実行中 仮想マシンは実行中です。
停止中 仮想マシンは停止中です。
停止済み VM が停止しています。 仮想マシンが停止済みの状態でも、コンピューティング料金は発生します。
割り当て解除中 VM は割り当て解除中です。
割り当て解除済み VM がハイパーバイザーから削除されているものの、コントロール プレーンでは引き続き使用可能であることを示します。 Deallocated 状態の仮想マシンでは、計算料金は発生しません。
- VM の電源状態は不明です。

特定の VM の状態を取得するには、Get-AzVM コマンドを使用します。 VM の有効な名前とリソース グループを必ず指定してください。

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

出力は次の例のようになります。

Status
------
PowerState/running

サブスクリプション内のすべての VM の電源状態を取得するには、statusOnly パラメーターを true に設定して Virtual Machines - List All API を使用します。

管理タスク

VM のライフサイクル中に、VM の起動、停止、削除などの管理タスクを実行することができます。 また、何度も行う作業や複雑な作業は、スクリプトを作成して自動化したい場合もあるでしょう。 日常的な管理タスクの多くは、Azure PowerShell を使ってコマンド ラインやスクリプトから実行できます。

VM の停止

Stop-AzVM を使用して VM を停止し、割り当てを解除します。

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

VM をプロビジョニングされた状態で保持する場合は、-StayProvisioned パラメーターを使用します。

VM の起動

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

リソース グループの削除

リソース グループを削除すると、リソース グループ内のすべてのものが削除されます。

Remove-AzResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

次のステップ

このチュートリアルでは、次のような基本的な VM の作成と管理を実行する方法について説明しました。

  • VM を作成し接続する
  • VM イメージを選択して使用する
  • 特定の VM サイズを確認して使用する
  • VM のサイズを変更する
  • VM の状態を表示して理解する

次のチュートリアルに進み、VM ディスクについて確認してください。