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

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

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

仮想ネットワークのクイックスタートで作成されたリソースの図。

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

リソース グループを作成する

az group create を使用して、仮想ネットワークをホストするためのリソース グループを作成します。 次のコードを使用して、eastus2 Azure リージョンに test-rg という名前のリソース グループを作成します:

az group create \
    --name test-rg \
    --location eastus2

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

az network vnet create を使用して、test-rg リソースグループ内に subnet-1 という名前のサブネットを持つ vnet-1 という名前の仮想ネットワークを作成します:

az network vnet create \
    --name vnet-1 \
    --resource-group test-rg \
    --address-prefix 10.0.0.0/16 \
    --subnet-name subnet-1 \
    --subnet-prefixes 10.0.0.0/24

Azure Bastion をデプロイする

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

時間単位の価格は、送信データの使用状況に関係なく、Bastion がデプロイされた時点から開始されます。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環で Bastion をデプロイする場合は、使用終了後にこのリソースを削除することをお勧めします。 Azure Bastion の詳細については、「Azure Bastion とは」を参照してください。

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

    az network vnet subnet create \
        --name AzureBastionSubnet \
        --resource-group test-rg \
        --vnet-name vnet-1 \
        --address-prefix 10.0.1.0/26
    
  2. Bastion のパブリック IP アドレスを作成します。 この IP アドレスは、インターネットから bastion ホストに接続するために使用されます。 az network public-ip create を使用して、test-rg リソース グループに public-ip という名前のパブリック IP アドレスを作成します:

    az network public-ip create \
        --resource-group test-rg \
        --name public-ip \
        --sku Standard \
        --location eastus2 \
        --zone 1 2 3
    
  3. az network bastion create を使用して、仮想ネットワークの AzureBastionSubnet に Bastion ホストを作成します:

    az network bastion create \
        --name bastion \
        --public-ip-address public-ip \
        --resource-group test-rg \
        --vnet-name vnet-1 \
        --location eastus2
    

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

仮想マシンを作成する

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

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

    az vm create \
        --resource-group test-rg \
        --admin-username azureuser \
        --authentication-type password \
        --name vm-1 \
        --image Ubuntu2204 \
        --public-ip-address ""
    
  2. 2 つ目の VM を作成するには、次のコマンドを使用します。

    az vm create \
        --resource-group test-rg \
        --admin-username azureuser \
        --authentication-type password \
        --name vm-2 \
        --image Ubuntu2204 \
        --public-ip-address ""
    

ヒント

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

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

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

Note

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

Note

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

次のいずれかのイベントが発生すると、既定のアウトバウンド アクセス IP は無効になります。

  • パブリック IP アドレスが VM に割り当てられます。
  • アウトバウンド規則の有無にかかわらず、VM は標準ロード バランサーのバックエンド プール内に配置されます。
  • Azure NAT Gateway リソースが VM のサブネットに割り当てられている。

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

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

仮想マシンへの接続

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

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

  3. vm-1[概要] 情報で、[接続] を選択します。

  4. [仮想マシンへの接続] ページで、[Bastion] タブを選択します。

  5. [Bastion を使用する] を選択します。

  6. VM の作成時に作成したユーザー名とパスワードを入力した後、[接続] を選択します。

VM 間の通信を開始する

  1. vm-1 の bash プロンプトで、ping -c 4 vm-2 を入力します。

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

    azureuser@vm-1:~$ ping -c 4 vm-2
    PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data.
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms
    64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
    
  2. vm-1 への Bastion 接続を閉じます。

  3. 仮想マシンに接続する」の手順を繰り返して、vm-2 に接続します。

  4. vm-2 の bash プロンプトで、ping -c 4 vm-1 を入力します。

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

    azureuser@vm-2:~$ ping -c 4 vm-1
    PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data.
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms
    64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
    
  5. vm-2 への Bastion 接続を閉じます。

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

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

az group delete \
    --name test-rg \
    --yes

次のステップ

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

仮想ネットワーク内の VM 間のプライベート通信は、既定では制限がありません。 さまざまな種類の VM ネットワーク通信の構成の詳細を知るには、次の記事に進んでください。