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

Azure 仮想マシンは、完全に構成可能で柔軟なコンピューティング環境を提供します。Azure virtual machines provide a fully configurable and flexible computing environment. このチュートリアルでは、VM サイズや VM イメージの選択、VM のデプロイなどの、Azure 仮想マシンの基本的なデプロイ タスクについて説明します。This tutorial covers basic Azure virtual machine (VM) deployment tasks like selecting a VM size, selecting a VM image, and deploying a VM. 学習内容は次のとおりです。You learn how to:

  • VM を作成し接続するCreate and connect to a VM
  • VM イメージを選択して使用するSelect and use VM images
  • 特定の VM サイズを確認して使用するView and use specific VM sizes
  • VM のサイズを変更するResize a VM
  • VM の状態を表示して理解するView and understand VM state

Azure Cloud Shell を起動するLaunch Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。It has common Azure tools preinstalled and configured to use with your account.

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。To open the Cloud Shell, just select Try it from the upper right corner of a code block. https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

リソース グループの作成Create resource group

New-AzureRmResourceGroup コマンドでリソース グループを作成します。Create a resource group with the New-AzureRmResourceGroup command.

Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。An Azure resource group is a logical container into which Azure resources are deployed and managed. 仮想マシンの前にリソース グループを作成する必要があります。A resource group must be created before a virtual machine. 次の例では、myResourceGroupVM という名前のリソース グループが EastUS リージョンに作成されます。In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

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

このチュートリアル全体で示しているように、VM の作成時または変更時にリソース グループを指定します。The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

VM の作成Create a VM

VM を作成するときに、オペレーティング システム イメージ、ネットワーク構成、管理者資格情報など、いくつかのオプションを使用できます。When creating a VM, several options are available such as operating system image, network configuration, and administrative credentials. 次の例では、Windows Server 2016 Datacenter の既定のバージョンを実行する myVM という名前の VM を作成します。This example creates a VM named myVM, running the default version of Windows Server 2016 Datacenter.

Get-Credential を使用して、VM の管理者アカウントに必要なユーザー名とパスワードを設定します。Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

New-AzureRmVM を使用して VM を作成します。Create the VM with New-AzureRmVM.

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

VM への接続Connect to VM

デプロイが完了したら、VM とのリモート デスクトップ接続を作成します。After the deployment has completed, create a remote desktop connection with the VM.

次のコマンドを実行して、VM のパブリック IP アドレスを取得します。Run the following commands to return the public IP address of the VM. この IP アドレスを書き留めておきます。後の手順で Web 接続性をテストするときにブラウザーでこの IP アドレスに接続します。Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

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

ローカル コンピューターで次のコマンドを使用して、VM とのリモート デスクトップ セッションを作成します。Use the following command, on your local machine, to create a remote desktop session with the VM. IP アドレスを VM の publicIPAddress に置き換えます。Replace the IP address with the publicIPAddress of your VM. メッセージが表示されたら、VM の作成時に使用した資格情報を入力します。When prompted, enter the credentials used when creating the VM.

mstsc /v:<publicIpAddress>

[Windows セキュリティ] ウィンドウで、[その他][別のアカウントを使用する] の順に選択します。In the Windows Security window, select More choices and then Use a different account. VM 用に作成したユーザー名とパスワードを入力し、[OK] をクリックします。Type the username and password you created for the VM and then click OK.

Marketplace のイメージについてUnderstand marketplace images

Azure Marketplace には、新しい VM の作成に使用できるさまざまなイメージが用意されています。The Azure marketplace includes many images that can be used to create a new VM. 前の手順では、Windows Server 2016 Datacenter イメージを使用して VM を作成しました。In the previous steps, a VM was created using the Windows Server 2016 Datacenter image. この手順では、PowerShell モジュールを使用して、新しい VM のベースとしても使用できるその他の Windows イメージを Marketplace で検索します。In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. このプロセスは、イメージを識別するための発行元、プラン、SKU、およびオプションのバージョン番号の検索で構成されます。This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Get-AzureRmVMImagePublisher コマンドを使用して、イメージ発行元の一覧を取得します。Use the Get-AzureRmVMImagePublisher command to return a list of image publishers:

Get-AzureRmVMImagePublisher -Location "EastUS"

Get-AzureRmVMImageOffer を使用して、イメージ プランの一覧を取得します。Use the Get-AzureRmVMImageOffer to return a list of image offers. このコマンドを使用すると、返される一覧が、MicrosoftWindowsServer という指定した発行元名でフィルター処理されます。With this command, the returned list is filtered on the specified publisher named MicrosoftWindowsServer:

Get-AzureRmVMImageOffer -Location "EastUS" -PublisherName "MicrosoftWindowsServer"

結果は次のようになります。The results will look something like this example:

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

Get-AzureRmVMImageSku コマンドは、発行元とプラン名でフィルター処理して、イメージ名の一覧を返します。The Get-AzureRmVMImageSku command will then filter on the publisher and offer name to return a list of image names.

Get-AzureRmVMImageSku -Location "EastUS" -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer"

結果は次のようになります。The results will look something like this example:

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 をデプロイするために使用できます。This information can be used to deploy a VM with a specific image. この例では、Windows Server 2016 with Containers イメージの最新バージョンを使用して VM をデプロイします。This example deploys a VM using the latest version of a Windows Server 2016 with Containers image.

New-AzureRmVm `
    -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 プロンプトが表示されます。The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. Get-Job コマンドレットを使用して、バックグラウンド ジョブの詳細を表示できます。You can view details of background jobs with the Get-Job cmdlet.

VM のサイズについてUnderstand VM sizes

VM のサイズにより、CPU、GPU、メモリなど、VM で利用できる計算リソースの量が決定されます。A VM size determines the amount of compute resources such as CPU, GPU, and memory that are made available to the VM. 仮想マシンは、ワークロードに適した VM サイズを使用して作成する必要があります。Virtual machines should to be created using a VM size appropriate for the workload. ワークロードが増えた場合は、既存の仮想マシンのサイズを変更することもできます。If a workload increases, an existing virtual machine can also be resized.

VM サイズVM Sizes

次の表は、ユース ケース別にサイズを分類したものです。The following table categorizes sizes into use cases.

typeType 一般的なサイズCommon sizes [説明]Description
汎用General purpose B、Dsv3、Dv3、DSv2、Dv2、Av2、DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC CPU とメモリのバランスがとれています。Balanced CPU-to-memory. 開発/テスト環境や、小中規模のアプリケーションとデータ ソリューションに最適です。Ideal for dev / test and small to medium applications and data solutions.
コンピューティングの最適化Compute optimized Fsv2、Fs、FFsv2, Fs, F メモリに対する CPU の比が大きくなっています。High CPU-to-memory. トラフィックが中程度のアプリケーション、ネットワーク アプライアンス、バッチ処理に適しています。Good for medium traffic applications, network appliances, and batch processes.
メモリの最適化Memory optimized Esv3、Ev3、M、GS、G、DSv2、Dv2Esv3, Ev3, M, GS, G, DSv2, Dv2 コアに対するメモリの比が大きくなっています。High memory-to-core. リレーショナル データベース、中から大規模のキャッシュ、およびインメモリ分析に適しています。Great for relational databases, medium to large caches, and in-memory analytics.
ストレージの最適化Storage optimized LsLs 高いディスク スループットと IO。High disk throughput and IO. ビッグ データ、SQL、および NoSQL のデータベースに最適です。Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV、NVv2、NC、NCv2、NCv3、NDNV, NVv2, NC, NCv2, NCv3, ND 負荷の高いグラフィック処理やビデオ編集に特化した VM です。Specialized VMs targeted for heavy graphic rendering and video editing.
高性能High performance HH オプションで高スループットのネットワーク インターフェイス (RDMA) を備えた、最も強力な CPU VM です。Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

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

特定のリージョンで利用可能な VM サイズのリストを確認するには、Get-AzureRmVMSize コマンドを使用します。To see a list of VM sizes available in a particular region, use the Get-AzureRmVMSize command.

Get-AzureRmVMSize -Location "EastUS"

VM のサイズを変更するResize a VM

デプロイ後に VM のサイズを変更して、リソースの割り当てを増減できます。After a VM has been deployed, it can be resized to increase or decrease resource allocation.

VM のサイズを変更する前に、現在の VM クラスターで目的のサイズを利用可能であるか確認します。Before resizing a VM, check if the desired size is available on the current VM cluster. Get-AzureRmVMSize コマンドは、サイズの一覧を返します。The Get-AzureRmVMSize command returns a list of sizes.

Get-AzureRmVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

目的のサイズが使用可能な場合は電源を入れた状態で VM のサイズを変更できます。ただし、この操作中に再起動が行われます。If the desired size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

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

現在のクラスターで目的のサイズを利用できない場合は、サイズ変更操作を行う前に VM の割り当てを解除する必要があります。If the size you want is not available on the current cluster, the VM needs to be deallocated before the resize operation can occur. VM の割り当てを解除すると、一時ディスク上のデータはすべて削除され、静的 IP アドレスを使用している場合以外はパブリック IP アドレスが変更されます。Deallocating a VM will remove any data on the temp disk, and the public IP address will change unless a static IP address is being used.

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

VM の電源の状態VM power states

Azure VM は、さまざまな電源状態のいずれかになります。An Azure VM can have one of many power states. この状態は、ハイパーバイザーから見た VM の現在の状態を表しています。This state represents the current state of the VM from the standpoint of the hypervisor.

電源の状態Power states

電源の状態Power State 説明Description
開始中Starting 仮想マシンが起動中であることを示します。Indicates the virtual machine is being started.
実行中Running 仮想マシンが実行中であることを示します。Indicates that the virtual machine is running.
停止中Stopping 仮想マシンが停止中であることを示します。Indicates that the virtual machine is being stopped.
停止済みStopped VM が停止していることを示します。Indicates that the VM is stopped. 仮想マシンが停止済みの状態でも、コンピューティング料金は発生します。Virtual machines in the stopped state still incur compute charges.
割り当て解除中Deallocating VM の割り当てが解除中であることを示します。Indicates that the VM is being deallocated.
割り当て解除済みDeallocated VM がハイパーバイザーから削除されているものの、コントロール プレーンでは引き続き使用可能であることを示します。Indicates that the VM is removed from the hypervisor but still available in the control plane. Deallocated 状態の仮想マシンでは、計算料金は発生しません。Virtual machines in the Deallocated state do not incur compute charges.
- VM の電源状態が不明であることを示します。Indicates that the power state of the VM is unknown.

電源の状態を確認するFind power state

特定の VM の状態を取得するには、Get-AzureRmVM コマンドを使用します。To retrieve the state of a particular VM, use the Get-AzureRmVM command. VM の有効な名前とリソース グループを必ず指定してください。Be sure to specify a valid name for a VM and resource group.

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

出力は次の例のようになります。The output will look something like this example:

Status
------
PowerState/running

管理タスクManagement tasks

VM のライフサイクル中に、VM の起動、停止、削除などの管理タスクを実行することができます。During the lifecycle of a VM, you may want to run management tasks such as starting, stopping, or deleting a VM. また、何度も行う作業や複雑な作業は、スクリプトを作成して自動化したい場合もあるでしょう。Additionally, you may want to create scripts to automate repetitive or complex tasks. 日常的な管理タスクの多くは、Azure PowerShell を使ってコマンド ラインやスクリプトから実行できます。Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

VM の停止Stop a VM

Stop-AzureRmVM を使用して VM を停止し、割り当てを解除します。Stop and deallocate a VM with Stop-AzureRmVM:

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

VM をプロビジョニングされた状態で保持する場合は、-StayProvisioned パラメーターを使用します。If you want to keep the VM in a provisioned state, use the -StayProvisioned parameter.

VM の起動Start a VM

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

Delete resource groupDelete resource group

リソース グループを削除すると、そこに含まれているリソースもすべて削除されます。Deleting a resource group also deletes all resources contained within.

Remove-AzureRmResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

次の手順Next steps

このチュートリアルでは、次のような基本的な VM の作成と管理を実行する方法について説明しました。In this tutorial, you learned about basic VM creation and management such as how to:

  • VM を作成し接続するCreate and connect to a VM
  • VM イメージを選択して使用するSelect and use VM images
  • 特定の VM サイズを確認して使用するView and use specific VM sizes
  • VM のサイズを変更するResize a VM
  • VM の状態を表示して理解するView and understand VM state

次のチュートリアルに進み、VM ディスクについて確認してください。Advance to the next tutorial to learn about VM disks.