チュートリアル:Azure PowerShell を使用して Windows VM を作成および管理する
適用対象: ✔️ 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
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"
VM リソースの削除
VM は削除できますが、既定では VM リソースだけが削除され、VM で使用されるディスクやネットワーク リソースは削除されません。 既定の動作を変更して、VM を削除するときに他のリソースを削除することができます。 詳細については、VM およびアタッチされたリソースの削除に関するページを参照してください。
次のステップ
このチュートリアルでは、次のような基本的な VM の作成と管理を実行する方法について説明しました。
- VM を作成し接続する
- VM イメージを選択して使用する
- 特定の VM サイズを確認して使用する
- VM のサイズを変更する
- VM の状態を表示して理解する
次のチュートリアルに進み、VM ディスクについて確認してください。