Azure CLI を使用して仮想ネットワーク ピアリングで仮想ネットワークを接続するConnect virtual networks with virtual network peering using the Azure CLI

仮想ネットワーク ピアリングを使用して、仮想ネットワークを相互に接続できます。You can connect virtual networks to each other with virtual network peering. 仮想ネットワークをピアリングすると、それぞれの仮想ネットワークに存在するリソースが、あたかも同じ仮想ネットワーク内に存在するかのような待ち時間と帯域幅で相互に通信できます。Once virtual networks are peered, resources in both virtual networks are able to communicate with each other, with the same latency and bandwidth as if the resources were in the same virtual network. この記事では、次のことについて説明します。In this article, you learn how to:

  • 2 つの仮想ネットワークを作成するCreate two virtual networks
  • 仮想ネットワーク ピアリングを使用して 2 つの仮想ネットワークを接続するConnect two virtual networks with a virtual network peering
  • 各仮想ネットワークに仮想マシン (VM) を展開するDeploy a virtual machine (VM) into each virtual network
  • VM 間の通信Communicate between VMs

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell では、bashPowerShell のいずれかを使用して Azure サービスを操作できます。Cloud Shell lets you use either bash or PowerShell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を起動するには:To launch Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [試してみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を起動します。Launch Cloud Shell.
  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.
  3. Windows と Linux では Ctrl + Shift + V キー、macOS では Cmd + Shift + V キーを使用して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Enter キーを押して、コードを実行します。Press Enter to run the code.

CLI をローカルにインストールして使用する場合、この記事では、Azure CLI バージョン 2.0.28 以降を実行していることが要件です。If you choose to install and use the CLI locally, this article requires that you are running the Azure CLI version 2.0.28 or later. バージョンを確認するには、az --version を実行します。To find the version, run az --version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

仮想ネットワークを作成するCreate virtual networks

仮想ネットワークを作成する前に、仮想ネットワークのリソース グループと、この記事で作成された他のすべてのリソースを作成する必要があります。Before creating a virtual network, you have to create a resource group for the virtual network, and all other resources created in this article. az group create を使用して、リソース グループを作成します。Create a resource group with az group create. 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

az network vnet create を使用して仮想ネットワークを作成します。Create a virtual network with az network vnet create. 次の例では、アドレス プレフィックスが 10.0.0.0/16 の、myVirtualNetwork1 という名前の仮想ネットワークを作成します。The following example creates a virtual network named myVirtualNetwork1 with the address prefix 10.0.0.0/16.

az network vnet create \
  --name myVirtualNetwork1 \
  --resource-group myResourceGroup \
  --address-prefixes 10.0.0.0/16 \
  --subnet-name Subnet1 \
  --subnet-prefix 10.0.0.0/24

アドレス プレフィックスが 10.1.0.0/16 の、myVirtualNetwork2 という名前の仮想ネットワークを作成します。Create a virtual network named myVirtualNetwork2 with the address prefix 10.1.0.0/16:

az network vnet create \
  --name myVirtualNetwork2 \
  --resource-group myResourceGroup \
  --address-prefixes 10.1.0.0/16 \
  --subnet-name Subnet1 \
  --subnet-prefix 10.1.0.0/24

仮想ネットワークをピアリングするPeer virtual networks

ピアリングは仮想ネットワーク ID 間で確立されるため、最初に az network vnet show を使用して各仮想ネットワーク の ID を取得し、その ID を変数に格納する必要があります。Peerings are established between virtual network IDs, so you must first get the ID of each virtual network with az network vnet show and store the ID in a variable.

# Get the id for myVirtualNetwork1.
vNet1Id=$(az network vnet show \
  --resource-group myResourceGroup \
  --name myVirtualNetwork1 \
  --query id --out tsv)

# Get the id for myVirtualNetwork2.
vNet2Id=$(az network vnet show \
  --resource-group myResourceGroup \
  --name myVirtualNetwork2 \
  --query id \
  --out tsv)

az network vnet peering create を使用して、myVirtualNetwork1 から myVirtualNetwork2 へのピアリングを作成します。Create a peering from myVirtualNetwork1 to myVirtualNetwork2 with az network vnet peering create. --allow-vnet-access パラメーターが指定されていない場合、ピアリングは確立されますが、通信を行うことはできません。If the --allow-vnet-access parameter is not specified, a peering is established, but no communication can flow through it.

az network vnet peering create \
  --name myVirtualNetwork1-myVirtualNetwork2 \
  --resource-group myResourceGroup \
  --vnet-name myVirtualNetwork1 \
  --remote-vnet $vNet2Id \
  --allow-vnet-access

前のコマンドの実行後に返された出力では、peeringStateInitiated です。In the output returned after the previous command executes, you see that the peeringState is Initiated. このピアリングは、myVirtualNetwork2 から myVirtualNetwork1 へのピアリングを作成するまで Initiated 状態のままです。The peering remains in the Initiated state until you create the peering from myVirtualNetwork2 to myVirtualNetwork1. myVirtualNetwork2 から myVirtualNetwork1 へのピアリングを作成します。Create a peering from myVirtualNetwork2 to myVirtualNetwork1.

az network vnet peering create \
  --name myVirtualNetwork2-myVirtualNetwork1 \
  --resource-group myResourceGroup \
  --vnet-name myVirtualNetwork2 \
  --remote-vnet $vNet1Id \
  --allow-vnet-access

前のコマンドの実行後に返された出力では、peeringStateConnected です。In the output returned after the previous command executes, you see that the peeringState is Connected. Azure によって、myVirtualNetwork1-myVirtualNetwork2 ピアリングのピアリング状態も Connected に変更されました。Azure also changed the peering state of the myVirtualNetwork1-myVirtualNetwork2 peering to Connected. az network vnet peering show を使用して、myVirtualNetwork1-myVirtualNetwork2 ピアリングのピアリング状態が Connected に変更されたことを確認します。Confirm that the peering state for the myVirtualNetwork1-myVirtualNetwork2 peering changed to Connected with az network vnet peering show.

az network vnet peering show \
  --name myVirtualNetwork1-myVirtualNetwork2 \
  --resource-group myResourceGroup \
  --vnet-name myVirtualNetwork1 \
  --query peeringState

両方の仮想ネットワークのピアリングの peeringStateConnected になるまで、一方の仮想ネットワークのリソースともう一方の仮想ネットワークのリソースは通信できません。Resources in one virtual network cannot communicate with resources in the other virtual network until the peeringState for the peerings in both virtual networks is Connected.

仮想マシンを作成するCreate virtual machines

後で仮想ネットワーク間で通信できるように、各仮想ネットワーク内に VM を作成します。Create a VM in each virtual network so that you can communicate between them in a later step.

最初の VM を作成するCreate the first VM

az vm create を使用して VM を作成します。Create a VM with az vm create. 次の例では、myVirtualNetwork1 仮想ネットワークで myVm1 という名前の VM を作成します。The following example creates a VM named myVm1 in the myVirtualNetwork1 virtual network. 既定のキーの場所にまだ SSH キーが存在しない場合は、コマンドを使って SSH キーを作成します。If SSH keys do not already exist in a default key location, the command creates them. 特定のキーのセットを使用するには、--ssh-key-value オプションを使用します。To use a specific set of keys, use the --ssh-key-value option. --no-wait オプションを使用すると、VM はバックグラウンドで作成されるため、次の手順に進むことができます。The --no-wait option creates the VM in the background, so you can continue to the next step.

az vm create \
  --resource-group myResourceGroup \
  --name myVm1 \
  --image UbuntuLTS \
  --vnet-name myVirtualNetwork1 \
  --subnet Subnet1 \
  --generate-ssh-keys \
  --no-wait

2 つ目の VM を作成するCreate the second VM

myVirtualNetwork2 仮想ネットワーク内に VM を作成します。Create a VM in the myVirtualNetwork2 virtual network.

az vm create \
  --resource-group myResourceGroup \
  --name myVm2 \
  --image UbuntuLTS \
  --vnet-name myVirtualNetwork2 \
  --subnet Subnet1 \
  --generate-ssh-keys

VM の作成には数分かかります。The VM takes a few minutes to create. VM が作成されると、Azure CLI によって次の例のような情報が表示されます。After the VM is created, the Azure CLI shows information similar to the following example:

{
  "fqdns": "",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVm2",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.1.0.4",
  "publicIpAddress": "13.90.242.231",
  "resourceGroup": "myResourceGroup"
}

publicIpAddress を書き留めておきます。Take note of the publicIpAddress. このアドレスは、後の手順で、インターネットから VM にアクセスするときに使います。This address is used to access the VM from the internet in a later step.

VM 間の通信Communicate between VMs

次のコマンドを使用して、myVm2 VM との SSH セッションを作成します。Use the following command to create an SSH session with the myVm2 VM. <publicIpAddress> を VM のパブリック IP アドレスに置き換えます。Replace <publicIpAddress> with the public IP address of your VM. 前の例では、パブリック IP アドレスは 13.90.242.231 です。In the previous example, the public IP address is 13.90.242.231.

ssh <publicIpAddress>

myVirtualNetwork1 内の VM に対して ping を実行します。Ping the VM in myVirtualNetwork1.

ping 10.0.0.4 -c 4

4 つの応答を受信します。You receive four replies.

myVm2 VM への SSH セッションを閉じます。Close the SSH session to the myVm2 VM.

リソースのクリーンアップClean up resources

不要になったら、az group delete を使用して、リソース グループとそのグループに含まれているすべてのリソースを削除します。When no longer needed, use az group delete to remove the resource group and all of the resources it contains.

az group delete --name myResourceGroup --yes

次の手順Next steps

この記事では、仮想ネットワーク ピアリングで同じ Azure リージョン内の 2 つのネットワークを接続する方法を説明しました。In this article, you learned how to connect two networks in the same Azure region, with virtual network peering. 異なるサポートされるリージョン内および異なる Azure サブスクリプション内の仮想ネットワークをピアリングすることも、ピアリングを使ってハブとスポーク ネットワーク設計を作成することもできます。You can also peer virtual networks in different supported regions and in different Azure subscriptions, as well as create hub and spoke network designs with peering. 仮想ネットワーク ピアリングについて詳しくは、仮想ネットワーク ピアリングの概要および仮想ネットワーク ピアリングの管理に関するページをご覧ください。To learn more about virtual network peering, see Virtual network peering overview and Manage virtual network peerings.

ユーザーのコンピューターを VPN 経由で仮想ネットワークに接続し、仮想ネットワーク、またはピアリングされた仮想ネットワークのリソースを操作できます。You can connect your own computer to a virtual network through a VPN, and interact with resources in a virtual network, or in peered virtual networks. 仮想ネットワークの記事で説明する多くのタスクを完了するための再利用可能なスクリプトについては、スクリプト サンプルをご覧ください。For reusable scripts to complete many of the tasks covered in the virtual network articles, see script samples.