チュートリアル: Azure PowerShell を使用して Windows 仮想マシン用の Azure 仮想ネットワークを作成および管理するTutorial: Create and manage Azure virtual networks for Windows virtual machines with Azure PowerShell

Azure 仮想マシンでは、内部と外部のネットワーク通信に Azure ネットワークが使用されます。Azure virtual machines use Azure networking for internal and external network communication. このチュートリアルでは、2 台の仮想マシンをデプロイし、それらの VM に使用する Azure ネットワークを構成する手順について説明します。This tutorial walks through deploying two virtual machines and configuring Azure networking for these VMs. このチュートリアルの例では、これらの VM が、データベース バックエンドを持つ Web アプリケーションのホストになっていることを想定していますが、アプリケーションのデプロイは、このチュートリアルでは行いません。The examples in this tutorial assume that the VMs are hosting a web application with a database back-end, however an application is not deployed in the tutorial. このチュートリアルで学習する内容は次のとおりです。In this tutorial, you learn how to:

  • 仮想ネットワークとサブネットの作成Create a virtual network and subnet
  • パブリック IP アドレスの作成Create a public IP address
  • フロントエンド VM の作成Create a front-end VM
  • ネットワーク トラフィックのセキュリティ保護Secure network traffic
  • バックエンド VM の作成Create back-end VM

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 に貼り付けて Enter キーを押すだけで、コードを実行することができます。Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Cloud Shell は、次のようにいくつかの方法で起動することができます。There are a few ways to launch the Cloud Shell:

コード ブロックの右上隅にある [使ってみる] をクリックします。Click Try It in the upper right corner of a code block. この記事の Cloud Shell
ブラウザーで Cloud Shell を開きます。Open Cloud Shell in your browser. https://shell.azure.com/powershell
Azure Portal の右上のメニューの [Cloud Shell] ボタンをクリックします。Click the Cloud Shell button on the menu in the upper right of the Azure portal. ポータルの Cloud ShellCloud Shell in the portal

PowerShell をインストールしてローカルで使用する場合、このチュートリアルでは Azure PowerShell モジュール バージョン 5.7.0 以降が必要になります。If you choose to install and use the PowerShell locally, this tutorial requires the Azure PowerShell module version 5.7.0 or later. バージョンを確認するには、Get-Module -ListAvailable AzureRM を実行します。Run Get-Module -ListAvailable AzureRM to find the version. アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。If you need to upgrade, see Install Azure PowerShell module. PowerShell をローカルで実行している場合、Connect-AzureRmAccount を実行して Azure との接続を作成することも必要です。If you are running PowerShell locally, you also need to run Connect-AzureRmAccount to create a connection with Azure.

VM ネットワークの概要VM networking overview

Azure 仮想ネットワークを使用すると、仮想マシン、インターネット、その他の Azure サービス (Azure SQL Database など) の間でセキュリティ保護されたネットワーク接続を実現できます。Azure virtual networks enable secure network connections between virtual machines, the internet, and other Azure services such as Azure SQL database. 仮想ネットワークは、サブネットと呼ばれる論理セグメントに分割することができます。Virtual networks are broken down into logical segments called subnets. サブネットは、ネットワーク フローを制御する目的のほか、セキュリティ境界としても使用されます。Subnets are used to control network flow, and as a security boundary. VM をデプロイするときは、通常、そこに仮想ネットワーク インターフェイスが含まれているので、それをサブネットに接続することになります。When deploying a VM, it generally includes a virtual network interface, which is attached to a subnet.

このチュートリアルを実行していく中で、次のようなリソースが作成されます。While completing this tutorial, you can see these resources created:

2 つのサブネットのある仮想ネットワーク

  • myVNet - VM 間、およびインターネットと通信するために VM によって使用される仮想ネットワーク。myVNet - The virtual network that the VMs use to communicate with each other and the internet.
  • myFrontendSubnet - フロントエンド リソースによって使用される、myVNet 内のサブネット。myFrontendSubnet - The subnet in myVNet used by the front-end resources.
  • myPublicIPAddress - インターネットから myFrontendVM にアクセスするために使用するパブリック IP アドレス。myPublicIPAddress - The public IP address used to access myFrontendVM from the internet.
  • myFrontendNic - myFrontendVMmyBackendVM と通信するために使用するネットワーク インターフェイス。myFrontendNic - The network interface used by myFrontendVM to communicate with myBackendVM.
  • myFrontendVM -インターネットと myBackendVM との間の通信に使用する VM。myFrontendVM - The VM used to communicate between the internet and myBackendVM.
  • myBackendNSG - myFrontendVMmyBackendVM 間の通信を制御するネットワーク セキュリティ グループ。myBackendNSG - The network security group that controls communication between the myFrontendVM and myBackendVM.
  • myBackendSubnet - myBackendNSG に関連付けられ、バックエンド リソースによって使用されるサブネット。myBackendSubnet - The subnet associated with myBackendNSG and used by the back-end resources.
  • myBackendNic - myBackendVMmyFrontendVM と通信するために使用するネットワーク インターフェイス。myBackendNic - The network interface used by myBackendVM to communicate with myFrontendVM.
  • myBackendVM - ポート 1433 を使用して myFrontendVM と通信する VM。myBackendVM - The VM that uses port 1433 to communicate with myFrontendVM.

仮想ネットワークとサブネットの作成Create a virtual network and subnet

このチュートリアルでは、2 つのサブネットと共に単一の仮想ネットワークが作成されます。For this tutorial, a single virtual network is created with two subnets. Web アプリケーションのホストとなるフロントエンド サブネットと、データベース サーバーのホストとなるバックエンド サブネットです。A front-end subnet for hosting a web application, and a back-end subnet for hosting a database server.

仮想ネットワークを作成する前に、New-AzureRmResourceGroup を使用してリソース グループを作成します。Before you can create a virtual network, create a resource group using New-AzureRmResourceGroup. 次の例では、myRGNetwork という名前のリソース グループを場所 EastUS に作成します。The following example creates a resource group named myRGNetwork in the EastUS location:

New-AzureRmResourceGroup -ResourceGroupName myRGNetwork -Location EastUS

サブネットの構成の作成Create subnet configurations

New-AzureRmVirtualNetworkSubnetConfig を使用して myFrontendSubnet という名前のサブネット構成を作成します。Create a subnet configuration named myFrontendSubnet using New-AzureRmVirtualNetworkSubnetConfig:

$frontendSubnet = New-AzureRmVirtualNetworkSubnetConfig `
  -Name myFrontendSubnet `
  -AddressPrefix 10.0.0.0/24

また、myBackendSubnet という名前のサブネット構成を作成します。And, create a subnet configuration named myBackendSubnet:

$backendSubnet = New-AzureRmVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

Create virtual networkCreate virtual network

New-AzureRmVirtualNetwork を使用して、myFrontendSubnetmyBackendSubnet を使用する myVNet という名前の VNET を作成します。Create a VNET named myVNet using myFrontendSubnet and myBackendSubnet using New-AzureRmVirtualNetwork:

$vnet = New-AzureRmVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $frontendSubnet, $backendSubnet

この時点で、1 つのネットワークが作成され、フロントエンド サービス用とバックエンド サービス用の 2 つのサブネットに分割されました。At this point, a network has been created and segmented into two subnets, one for front-end services, and another for back-end services. 次のセクションでは、仮想マシンを作成してこれらのサブネットに接続します。In the next section, virtual machines are created and connected to these subnets.

パブリック IP アドレスの作成Create a public IP address

Azure リソースにインターネットからアクセスするためには、パブリック IP アドレスが必要です。A public IP address allows Azure resources to be accessible on the internet. パブリック IP アドレスの割り当て方法は、動的または静的として構成することができます。The allocation method of the public IP address can be configured as dynamic or static. 既定では、パブリック IP アドレスが動的に割り当てられます。By default, a public IP address is dynamically allocated. 動的 IP アドレスは、VM の割り当てが解除されると解放されます。Dynamic IP addresses are released when a VM is deallocated. この動作により、VM の割り当て解除を伴う操作の過程で IP アドレスが変化することになります。This behavior causes the IP address to change during any operation that includes a VM deallocation.

割り当て方法を "静的" に設定することで、VM に割り当てた IP アドレスを確実に維持し、割り当てが解除された状態でも変更されないようにすることができます。The allocation method can be set to static, which ensures that the IP address remains assigned to a VM, even during a deallocated state. 静的に割り当てられた IP アドレスを使用するときに、IP アドレス自体を指定することはできません。When using a statically allocated IP address, the IP address itself cannot be specified. それは、利用可能なアドレスのプールから割り当てられます。Instead, it is allocated from a pool of available addresses.

New-AzureRmPublicIpAddress を使用して myPublicIPAddress という名前の IP アドレスを作成します。Create a public IP address named myPublicIPAddress using New-AzureRmPublicIpAddress:

$pip = New-AzureRmPublicIpAddress `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -AllocationMethod Dynamic `
  -Name myPublicIPAddress

静的なパブリック IP アドレスを割り当てるには、-AllocationMethod パラメーターを Static に変更します。You could change the -AllocationMethod parameter to Static to assign a static public IP address.

フロントエンド VM の作成Create a front-end VM

VM が仮想ネットワーク内で通信するには、仮想ネットワーク インターフェイス (NIC) が必要です。For a VM to communicate in a virtual network, it needs a virtual network interface (NIC). New-AzureRmNetworkInterface を使用して、NIC を作成します。Create a NIC using New-AzureRmNetworkInterface:

$frontendNic = New-AzureRmNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontend `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id

Get-Credential を使用して、VM の管理者アカウントに必要なユーザー名とパスワードを設定します。Set the username and password needed for the administrator account on the VM using Get-Credential. 追加の手順でこれらの資格情報を使用して VM に接続します。You use these credentials to connect to the VM in additional steps:

$cred = Get-Credential

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

New-AzureRmVM `
   -Credential $cred `
   -Name myFrontend `
   -PublicIpAddressName myPublicIPAddress `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -Size Standard_D1 `
   -SubnetName myFrontendSubnet `
   -VirtualNetworkName myVNet

ネットワーク トラフィックのセキュリティ保護Secure network traffic

ネットワーク セキュリティ グループ (NSG) には、Azure Virtual Network (VNet) に接続されたリソースへのネットワーク トラフィックを許可または拒否する一連のセキュリティ規則が含まれています。A network security group (NSG) contains a list of security rules that allow or deny network traffic to resources connected to Azure Virtual Networks (VNet). NSG はサブネットに関連付けることができるほか、個々のネットワーク インターフェイスに関連付けることができます。NSGs can be associated to subnets or individual network interfaces. NSG をネットワーク インターフェイスに関連付けた場合、関連付けられている VM のみにその NSG が適用されます。When an NSG is associated with a network interface, it applies only the associated VM. NSG をサブネットに関連付けた場合、そのサブネットに接続されているすべてのリソースにその NSG のルールが適用されます。When an NSG is associated to a subnet, the rules apply to all resources connected to the subnet.

ネットワーク セキュリティ グループ ルールNetwork security group rules

NSG ルールは、トラフィックが許可または拒否されるネットワーク ポートを定義します。NSG rules define networking ports over which traffic is allowed or denied. このルールには、特定のシステム (またはサブネット) 間のトラフィックが制御されるように送信元 IP と送信先 IP のアドレス範囲を含めることができます。The rules can include source and destination IP address ranges so that traffic is controlled between specific systems or subnets. また、NSG ルールには優先順位 (1 ~ 4096) も含まれます。NSG rules also include a priority (between 1—and 4096). ルールは、優先順位に従って評価されます。Rules are evaluated in the order of priority. 優先順位が 100 のルールは、優先順位が 200 のルールよりも前に評価されます。A rule with a priority of 100 is evaluated before a rule with priority 200.

すべての NSG に既定のルール一式が含まれています。All NSGs contain a set of default rules. 既定のルールは削除できませんが、これには最も低い優先順位が割り当てられているため、ルールを作成することでオーバーライドできます。The default rules cannot be deleted, but because they are assigned the lowest priority, they can be overridden by the rules that you create.

  • 仮想ネットワーク - 仮想ネットワーク内で発信および着信するトラフィックについては、受信方向と送信方向の両方で許可されます。Virtual network - Traffic originating and ending in a virtual network is allowed both in inbound and outbound directions.
  • インターネット - 送信トラフィックは許可されますが、受信トラフィックはブロックされます。Internet - Outbound traffic is allowed, but inbound traffic is blocked.
  • ロード バランサー - Azure のロード バランサーによる VM とロール インスタンスの正常性プローブが許可されます。Load balancer - Allow Azure’s load balancer to probe the health of your VMs and role instances. 負荷分散セットを使用していない場合は、このルールをオーバーライドできます。If you are not using a load balanced set, you can override this rule.

ネットワーク セキュリティ グループの作成Create network security groups

New-AzureRmNetworkSecurityRuleConfig を使用して、myFrontendVM 上で受信 Web トラフィックを許可する myFrontendNSGRule という名前の受信規則を作成します。Create an inbound rule named myFrontendNSGRule to allow incoming web traffic on myFrontendVM using New-AzureRmNetworkSecurityRuleConfig:

$nsgFrontendRule = New-AzureRmNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

バックエンド サブネットの NSG を作成することで、myBackendVM への内部トラフィックを myFrontendVM からのみに制限できます。You can limit internal traffic to myBackendVM from only myFrontendVM by creating an NSG for the back-end subnet. 次の例では、myBackendNSGRule という名前の NSG 規則を作成します。The following example creates an NSG rule named myBackendNSGRule:

$nsgBackendRule = New-AzureRmNetworkSecurityRuleConfig `
  -Name myBackendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 100 `
  -SourceAddressPrefix 10.0.0.0/24 `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 1433 `
  -Access Allow

New-AzureRmNetworkSecurityGroup を使用して、myFrontendNSG という名前のネットワーク セキュリティ グループを追加します。Add a network security group named myFrontendNSG using New-AzureRmNetworkSecurityGroup:

$nsgFrontend = New-AzureRmNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

ここで、New-AzureRmNetworkSecurityGroup を使用して、myBackendNSG という名前のネットワーク セキュリティ グループを追加します。Now, add a network security group named myBackendNSG using New-AzureRmNetworkSecurityGroup:

$nsgBackend = New-AzureRmNetworkSecurityGroup `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackendNSG `
  -SecurityRules $nsgBackendRule

ネットワーク セキュリティ グループをサブネットに追加します。Add the network security groups to the subnets:

$vnet = Get-AzureRmVirtualNetwork `
  -ResourceGroupName myRGNetwork `
  -Name myVNet
$frontendSubnet = $vnet.Subnets[0]
$backendSubnet = $vnet.Subnets[1]
$frontendSubnetConfig = Set-AzureRmVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myFrontendSubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend
$backendSubnetConfig = Set-AzureRmVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name myBackendSubnet `
  -AddressPrefix $backendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgBackend
Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

バックエンド VM の作成Create a back-end VM

SQL Server イメージを使用すると、このチュートリアル用に最も簡単にバックエンド VM を作成できます。The easiest way to create the back-end VM for this tutorial is by using a SQL Server image. このチュートリアルではデータベース サーバーを使用して VM を作成しますが、データベースへのアクセスに関する情報は提供しません。This tutorial only creates the VM with the database server, but doesn't provide information about accessing the database.

myBackendNic を作成します。Create myBackendNic:

$backendNic = New-AzureRmNetworkInterface `
  -ResourceGroupName myRGNetwork `
  -Location EastUS `
  -Name myBackend `
  -SubnetId $vnet.Subnets[1].Id

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

$cred = Get-Credential

myBackendVM を作成します。Create myBackendVM.

New-AzureRmVM `
   -Credential $cred `
   -Name myBackend `
   -ImageName "MicrosoftSQLServer:SQL2016SP1-WS2016:Enterprise:latest" `
   -ResourceGroupName myRGNetwork `
   -Location "EastUS" `
   -SubnetName MyBackendSubnet `
   -VirtualNetworkName myVNet

使用されているイメージには SQL Server がインストールされていますが、このチュートリアルでは使用しません。The image that is used has SQL Server installed, but is not used in this tutorial. これが含まれているのは、Web トラフィックを処理する VM と、データベースの管理を処理する VM の構成の方法を示すためです。It is included to show you how you can configure a VM to handle web traffic and a VM to handle database management.

次のステップNext steps

このチュートリアルでは、仮想マシンとの関連で Azure ネットワークを作成し、セキュリティで保護しました。In this tutorial, you created and secured Azure networks as related to virtual machines.

  • 仮想ネットワークとサブネットの作成Create a virtual network and subnet
  • パブリック IP アドレスの作成Create a public IP address
  • フロントエンド VM の作成Create a front-end VM
  • ネットワーク トラフィックのセキュリティ保護Secure network traffic
  • バックエンド VM の作成Create a back-end VM

次のチュートリアルに進み、仮想マシンのデータを Azure Backup で監視する方法を学習してください。Advance to the next tutorial to learn about monitoring securing data on virtual machines using Azure backup.