クイック スタート:PowerShell を使用して仮想ネットワークを作成する

仮想ネットワークによって、仮想マシン (VM) などの Azure リソースが互いにプライベートな通信を行ったりインターネットと通信したりできるようになります。

このクイック スタートでは、仮想ネットワークの作成方法について説明します。 仮想ネットワークを作成したら、2 つの VM を仮想ネットワークにデプロイします。 次にインターネットから VM に接続し、仮想ネットワークを介してプライベートで通信します。

前提条件

PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。

リソース グループと仮想ネットワークを作成する

リソース グループと仮想ネットワークを構成するために必要な手順がいくつかあります。

リソース グループの作成

仮想ネットワークを作成するには、その前に、仮想ネットワークをホストするリソース グループを作成する必要があります。 New-AzResourceGroup を使用して Azure リソース グループを作成します。 この例では、Eastus の場所内に CreateVNetQS-rg という名前のリソース グループを作成します。

$rg = @{
    Name = 'CreateVNetQS-rg'
    Location = 'EastUS'
}
New-AzResourceGroup @rg

仮想ネットワークの作成

New-AzVirtualNetwork を使用して仮想ネットワークを作成します。 この例では、EastUS の場所内に myVNet という名前の既定の仮想ネットワークを作成します。

$vnet = @{
    Name = 'myVNet'
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    AddressPrefix = '10.0.0.0/16'    
}
$virtualNetwork = New-AzVirtualNetwork @vnet

サブネットの追加

Azure では、仮想ネットワーク内のサブネットにリソースがデプロイされるため、サブネットを作成する必要があります。 Add-AzVirtualNetworkSubnetConfig を使用して、default というサブネット構成を作成します。

$subnet = @{
    Name = 'default'
    VirtualNetwork = $virtualNetwork
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet

サブネットを仮想ネットワークに関連付ける

Set-AzVirtualNetwork を使用して、仮想ネットワークにサブネット構成を書き込むことができます。 このコマンドで、サブネットが作成されます。

$virtualNetwork | Set-AzVirtualNetwork

仮想マシンを作成する

仮想ネットワーク内に 2 つの VM を作成します。

最初の VM を作成する

New-AzVM を使用して最初の VM を作成します。 次のコマンドを実行すると、資格情報の入力が求められます。 VM のユーザー名とパスワードを入力します。

$vm1 = @{
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    Name = 'myVM1'
    VirtualNetworkName = 'myVNet'
    SubnetName = 'default'
}
New-AzVM @vm1 -AsJob

-AsJob オプションを使用すると、バックグラウンドで VM が作成されます。 次の手順に進むことができます。

Azure でバックグラウンドで VM の作成を開始すると、次のような内容が返されます。

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Long Running... AzureLongRun... Running       True            localhost            New-AzVM

2 つ目の VM を作成する

このコマンドを使用して 2 番目の VM を作成します。

$vm2 = @{
    ResourceGroupName = 'CreateVNetQS-rg'
    Location = 'EastUS'
    Name = 'myVM2'
    VirtualNetworkName = 'myVNet'
    SubnetName = 'default'
}
New-AzVM @vm2

別のユーザーとパスワードを作成する必要があります。 Azure で VM を作成するには数分かかります。

重要

Azure の処理が完了するまで、次の手順に進まないでください。 処理の完了は、PowerShell に出力が返されることでわかります。

Note

パブリック IP アドレスが割り当てられていないか、内部の Basic Azure Load Balancer のバックエンド プールにある VM に対しては、Azure によってデフォルト送信アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。

詳細については、「Azure での既定の送信アクセス」を参照してください。

パブリック IP アドレスが VM に割り当てられている場合、またはアウトバウンド規則の有無にかかわらず VM が Standard Load Balancer のバックエンド プールに配置されている場合、既定の送信アクセス IP は無効になります。 Azure Virtual Network ネットワーク アドレス変換 (NAT) ゲートウェイ リソースが仮想マシンのサブネットに割り当てられている場合、デフォルト送信アクセス IP は無効になります。

フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定の送信アクセスがありません。

Azure でのアウトバウンド接続の詳細については、「アウトバウンド接続に送信元ネットワーク アドレス変換 (SNAT) を使用する」を参照してください。

インターネットから VM に接続する

VM のパブリック IP アドレスを取得するには、Get-AzPublicIpAddress を使用します。

この例では、myVM1 VM のパブリック IP アドレスが返されます。

$ip = @{
    Name = 'myVM1'
    ResourceGroupName = 'CreateVNetQS-rg'
}
Get-AzPublicIpAddress @ip | select IpAddress

お使いのローカル コンピューターでコマンド プロンプトを開きます。 mstsc コマンドを実行します。 <publicIpAddress> を最後の手順で返されたパブリック IP アドレスに置き換えます。

Note

ローカル コンピューター上の PowerShell プロンプトからこれらのコマンドを実行済みで、Az PowerShell モジュール バージョン 1.0 以降を使用している場合、そのインターフェイスで続行できます。

mstsc /v:<publicIpAddress>
  1. メッセージが表示されたら、 [Connect] を選択します。

  2. VM の作成時に指定したユーザー名とパスワードを入力します。

    Note

    場合によっては、[その他][別のアカウントを使用する] を選択して、VM の作成時に入力した資格情報を指定する必要があります。

  3. [OK] を選択します。

  4. 証明書の警告を受け取ることがあります。 この場合は、 [はい] または [続行] を選択します。

VM 間の通信

  1. myVM1 のリモート デスクトップで、PowerShell を開きます。

  2. ping myVM2」と入力します。

    次のような応答メッセージが表示されます。

    PS C:\Users\myVM1> ping myVM2
    
    Pinging myVM2.ovvzzdcazhbu5iczfvonhg2zrb.bx.internal.cloudapp.net
    Request timed out.
    Request timed out.
    Request timed out.
    Request timed out.
    
    Ping statistics for 10.0.0.5:
        Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
    

    インターネット制御メッセージ プロトコル (ICMP) を使用しているため、ping は失敗します。 既定では、Windows ファイアウォールを介した ICMP は許可されていません。

  3. 後のステップで myVM2myVM1 に対して ping を実行できるようにするには、次のコマンドを入力します。

    New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
    

    このコマンドを実行すると、Windows ファイアウォールを介して ICMP を受信できます。

  4. myVM1 へのリモート デスクトップ接続を閉じます。

  5. インターネットから VM に接続する」の手順を繰り返します。 今回は myVM2 に接続します。

  6. myVM2 VM のコマンド プロンプトで「ping myVM1」と入力します。

    次のような応答メッセージが表示されます。

    C:\windows\system32>ping myVM1
    
    Pinging myVM1.e5p2dibbrqtejhq04lqrusvd4g.bx.internal.cloudapp.net [10.0.0.4] with 32 bytes of data:
    Reply from 10.0.0.4: bytes=32 time=2ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    Reply from 10.0.0.4: bytes=32 time<1ms TTL=128
    
    Ping statistics for 10.0.0.4:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 2ms, Average = 0ms
    

    myVM1 から応答を受信します。これは、前の手順で myVM1 VM での Windows ファイアウォール経由の ICMP を許可したためです。

  7. myVM2 へのリモート デスクトップ接続を閉じます。

リソースをクリーンアップする

仮想ネットワークと VM を完了したら、Remove-AzResourceGroup を使用して、リソース グループとそのすべてのリソースを削除します。

Remove-AzResourceGroup -Name 'CreateVNetQS-rg' -Force

次のステップ

このクイック スタートでは次のようにします。

  • 既定の仮想ネットワークと 2 つの VM を作成しました。
  • インターネットから 1 つの VM に接続し、2 つの VM の間でプライベート通信を行いました。

仮想ネットワークでは、VM 間のプライベート通信に制限はありません。

各種 VM ネットワーク通信の構成の詳細については、次の記事に進んでください。