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

このクイックスタートでは、Azure CLI (Azure コマンド ライン インターフェイス) を使用して仮想ネットワークを作成する方法を示します。 次に、そのネットワークに 2 つの仮想マシン (VM) を作成し、インターネットからそれらの VM に安全に接続し、VM 間でプライベート通信を行います。

仮想ネットワークは、Azure 内のプライベート ネットワークの基本的な構成ブロックです。 Azure Virtual Network では、VM などの Azure リソースが、相互に、およびインターネットと安全に通信することができます。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。

  • Azure Cloud Shell または Azure CLI。

    このクイックスタートの手順では、Azure Cloud Shell で Azure CLI コマンドを対話型で実行します。 Cloud Shell でコマンドを実行するには、コード ブロックの右上隅にある [Cloudshell を開く] を選択します。 [コピー] を選択してコードをコピーし、Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。

    また、Azure CLI をローカルにインストールしてコマンドを実行することもできます。 この記事の手順では、Azure CLI バージョン 2.0.28 以降が必要です。 az version を実行して、インストールされているバージョンと依存ライブラリを確認し、az upgrade を実行してアップグレードします。

    ローカル インストールを使用する場合は、az login コマンドを使用して Azure にサインインします。

仮想ネットワークとサブネットの作成

  1. まず、az group create を使用して、仮想ネットワークをホストするためのリソース グループを作成します。 次のコードを実行して、TestRG という名前のリソース グループを eastus リージョンに作成してください。

    az group create \
      --name TestRG \
      --location eastus
    
  2. az network vnet create を使用して、VNet という名前の仮想ネットワークを、default という名前のサブネットを指定して、TestRG リソース グループに作成します。

    az network vnet create \
      --name VNet \
      --resource-group TestRG \
      --address-prefix 10.0.0.0/16 \
      --subnet-name default \
      --subnet-prefixes 10.0.0.0/24
    

Azure Bastion をデプロイする

Azure Bastion では、プライベート IP アドレスを使用して Secure Shell (SSH) またはリモート デスクトップ プロトコル (RDP) を介して、仮想ネットワーク内の VM にブラウザーで接続します。 VM には、パブリック IP アドレス、クライアント ソフトウェア、または特別な構成は必要ありません。 Azure Bastion の詳細については、Azure Bastion に関するページをご覧ください。

  1. az network vnet subnet create を使用して、仮想ネットワークの Azure Bastion サブネットを作成します。 このサブネットは、Azure Bastion リソース専用に予約されており、名前を AzureBastionSubnet にする必要があります。

    az network vnet subnet create \
      --name AzureBastionSubnet \
      --resource-group TestRG \
      --vnet-name VNet \
      --address-prefix 10.0.1.0/26 \
      --location eastus
    
  2. Azure Bastion のパブリック IP アドレスを作成します。 Bastion ホストは、パブリック IP を使用して、ポート 443 経由で Secure Shell (SSH) とリモート デスクトップ プロトコル (RDP) にアクセスします。

    az network public-ip create --resource-group TestRG --name VNet-ip --sku Standard --location eastus
    
  3. az network bastion create を使用して、仮想ネットワークの AzureBastionSubnet に Azure Bastion ホストを作成します。

    az network bastion create \
      --name VNet-bastion \
      --public-ip-address VNet-ip \
      --resource-group TestRG \
      --vnet-name VNet --location eastus
    

Bastion リソースのデプロイには、約 10 分かかります。 仮想ネットワークに Bastion がデプロイされる間、次のセクションで VM を作成できます。

仮想マシンを作成する

az vm create を使用して、VM1VM2 という名前の 2 つの VM を、仮想ネットワークの default サブネットに作成します。 資格情報の入力を求められたら、VM のユーザー名とパスワードを入力します。

  1. 1 つ目の VM を作成するには、次のコマンドを実行します。

    az vm create \
      --resource-group TestRG \
      --name VM1 \
      --image Win2019Datacenter
    
  2. 2 つ目の VM を作成するには、次のコマンドを実行します。

    az vm create \
      --resource-group TestRG \
      --name VM2 \
      --image Win2019Datacenter
    

ヒント

--no-wait オプションを使用して、他のタスクを続行しながらバックグラウンドで VM を作成することもできます。

VM の作成には数分かかります。 Azure で各 VM が作成されると、Azure CLI は次のメッセージのような出力を返します。

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/CreateVNetQS-rg/providers/Microsoft.Compute/virtualMachines/VM2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.5",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "TestRG"
  "zones": ""
}

注意

Bastion ホストがある仮想ネットワーク内の VM には、パブリック IP アドレスが必要ありません。 Bastion がパブリック IP を提供し、VM はプライベート IP を使用してネットワーク内で通信します。 Bastion ホストがある仮想ネットワーク内のいずれの VM からも、パブリック IP を削除できます。 詳細については、「パブリック IP アドレスの関連付けを Azure VM から解除する」を参照してください。

VM への接続

  1. ポータルで、[仮想マシン]を検索して選択します。

  2. [仮想マシン] ページで、"VM1" を選択します。

  3. [VM1] ページの上部で、[接続] の横にあるドロップダウン矢印を選択し、[Bastion] を選択します。

    Azure Bastion による VM1 への接続のスクリーンショット。

  4. [Bastion] ページで、VM 用に作成したユーザー名とパスワードを入力し、[接続] を選択します。

VM 間の通信

  1. VM1 のデスクトップからコマンド プロンプトを開き、「ping myVM2」と入力します。 次のメッセージのような応答が表示されます。

    C:\windows\system32>ping VM2
    
    Pinging VM2.ovvzzdcazhbu5iczfvonhg2zrb.bx.internal.cloudapp.net with 32 bytes of data:
    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 は許可されていません。

  2. この VM 上の Windows ファイアウォール経由での受信を ICMP に許可するには、次のコマンドを入力します。

    netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
    
  3. VM1 へのリモート デスクトップ接続を閉じます。

  4. VM への接続」の手順を繰り返して、VM2 に接続します。

  5. VM2 で、コマンド プロンプトから「ping VM1」と入力します。

    VM1 のファイアウォール経由で ICMP を許可したため、今回は、次のメッセージのような成功の応答が返されます。

    C:\windows\system32>ping VM1
    
    Pinging VM1.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
    
  6. VM2 へのリモート デスクトップ接続を閉じます。

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

仮想ネットワークと VM の使用を終えたら、az group delete を使用して、リソース グループとそのすべてのリソースを削除します。

az group delete \
    --name TestRG \
    --yes

次のステップ

このクイックスタートでは、2 つの VM を含む、既定のサブネットを指定した仮想ネットワークを作成しました。 Azure Bastion をデプロイし、それを使用して VM に接続し、VM 間で安全に通信しました。 仮想ネットワーク設定の詳細については、「仮想ネットワークの作成、変更、削除」をご覧ください。

仮想ネットワーク内の VM 間のプライベート通信は、既定では制限がありません。 次の記事に進んで、各種 VM ネットワーク通信の構成に関する詳細を学びます。