Azure仮想ネットワークを仮想ネットワークピアリングを使用して接続する方法
Azure Virtual Network (VNet) ピアリングは、Azure内の2つ以上の仮想ネットワークの接続を可能にします。接続の観点から、ピアリングされた2つのネットワークは1つとして表示されます。ピアリングされたトラフィックは、Microsoftのプライベートネットワークを介してルーティングされ、公共のインターネットを介っては送信されません。Azure仮想ネットワークは、カスタムアドレス空間とセグメント化されたサブネットを持つソフトウェア定義ネットワークです。
Azureでは、2種類のピアリングが提供されています。
- 仮想ネットワークピアリングにより、同じAzureリージョン内の仮想ネットワークを接続できます。
- グローバル仮想ネットワークピアリングは、Azureリージョン間でのトラフィックを接続します。
なぜ異なる仮想ネットワークを接続するために仮想ネットワークピアリングを使用したいのでしょうか?ピアリングされたネットワークにはいくつかの利点があります。
- 異なる仮想ネットワーク間で、低遅延かつ高帯域幅の接続を利用します。
- Azureのサブスクリプション、テナント、およびリージョン間でデータを転送します。
- ピアリングされた仮想ネットワークを構成する際にダウンタイムはありません。
この記事では、Azure PowerShell コマンドを使用してピア接続されたネットワークを作成する方法を示します。これらのコマンドを実行するには、Azure PowerShell モジュールが必要です。
ピア接続された仮想ネットワークを介して仮想マシンを接続する
このチュートリアルでは、2つの新しいリソースグループ、仮想ネットワーク、および仮想マシンを作成します。すべてが設定されたら、2つのAzure VMの間で仮想ネットワークをピアリングし、それらが実際に通信できることを示します。まず、インポートする必要があります。
Azモジュールを使用してAzureに認証します。
Connect-AzAccountコマンドレット。
Import-Module -Name 'Az'
Connect-AzAccount
次に、このチュートリアルのために、仮想マシンと仮想ネットワークが存在する2つのリソースグループを作成します。
New-AzResourceGroup -Name 'TestLocation1' -Location "Central US"
New-AzResourceGroup -Name 'TestLocation2' -Location "Central US"仮想マシンを準備する前に、まずはリンクしたい異なる仮想ネットワークを作成する必要があります。
$Params = @{
"Name" = 'TestVirtualNetwork1'
"ResourceGroupName" = 'TestLocation1'
"Location" = 'Central US'
"AddressPrefix" = '10.0.0.0/16'
"Subnet" = (New-AzVirtualNetworkSubnetConfig -Name 'VMSubnet' -AddressPrefix '10.0.1.0/24')
}
New-AzVirtualNetwork @Params
$Params = @{
"Name" = 'TestVirtualNetwork2'
"ResourceGroupName" = 'TestLocation2'
"Location" = 'Central US'
"AddressPrefix" = '10.1.0.0/16'
"Subnet" = (New-AzVirtualNetworkSubnetConfig -Name 'VMSubnet' -AddressPrefix '10.1.1.0/24')
}
New-AzVirtualNetwork @Params
次のGet-AzVirtualNetworkコマンドレットを使用して、仮想ネットワークが正常に作成されたことを確認できます。
2つの仮想ネットワークを接続できることを示すために、それらのネットワーク内のリソースを使用してトラフィックを送信する必要があります。これを実現するために、異なる仮想ネットワークにそれぞれ配置された2つの標準仮想マシンを作成します。
$Params = @{
'Name' = 'LCWin2019-01'
'ResourceGroupName' = 'TestLocation1'
'Location' = 'centralus'
'VirtualNetworkName' = 'TestVirtualNetwork1'
'SubnetName' = 'VMSubnet'
'AddressPrefix' = '10.0.1.0/24'
'PublicIpAddressName' = 'TestVM01PublicIP'
'OpenPorts' = 3389
'Image' = 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest'
'Size' = 'Standard_D2_v3'
'Credential' = $VMCredential
}
$VM1 = New-AzVM @Params
$Params = @{
'Name' = 'LCWin2019-02'
'ResourceGroupName' = 'TestLocation2'
'Location' = 'centralus'
'VirtualNetworkName' = 'TestVirtualNetwork2'
'SubnetName' = 'VMSubnet'
'AddressPrefix' = '10.1.1.0/24'
'PublicIpAddressName' = 'TestVM02PublicIP'
'OpenPorts' = 3389
'Image' = 'MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest'
'Size' = 'Standard_D2_v3'
'Credential' = $VMCredential
}
$VM2 = New-AzVM @Params
最後に、Add-AzVirtualNetworkPeeringを使用して2つの仮想ネットワークを接続します。仮想ネットワークの設定を取得した後、その情報を渡してピア接続を作成します。
両方向からピアリングする必要があることに気づくかもしれません。これにより、データフローの構造をどのように設計するかの柔軟性が得られますが、ピアリングの設定時に見逃しやすいこともあります!
$VNet1 = Get-AzVirtualNetwork -Name 'TestVirtualNetwork1' -ResourceGroupName 'TestLocation1'
$VNet2 = Get-AzVirtualNetwork -Name 'TestVirtualNetwork2' -ResourceGroupName 'TestLocation2'
$Params = @{
'Name' = 'TestVirtualNetwork1peerTestVirtualNetwork2'
'VirtualNetwork' = $VNet1
'RemoteVirtualNetworkId' = $VNet2.Id
}
Add-AzVirtualNetworkPeering @Params
$Params = @{
'Name' = 'TestVirtualNetwork2peerTestVirtualNetwork1'
'VirtualNetwork' = $VNet2
'RemoteVirtualNetworkId' = $VNet1.Id
}
Add-AzVirtualNetworkPeering @Params
Get-AzVirtualNetworkPeeringを使用することで、私たちのピアリングされたネットワークが現在利用できることがわかります。
ピアード仮想ネットワーク接続のデモンストレーション
すべてが適切に接続されたので、仮想マシンが互いに正常に ping を送信できることを示すことができます。まず、ネットワークアダプターがプライベートネットワーク上にあり、ファイルとプリンターの共有(エコー要求 - ICMPv4 入力)ファイアウォール規則を許可していることを確認してください。そうしないと、ピア接続されたネットワークであっても、ping テストはほぼ失敗する可能性が高いです。
以下に示すように、ピア接続された仮想ネットワークの両側は期待通りに機能しています。
結論
ピアリングを介してAzure仮想ネットワークを接続することで、異なるリソースが簡単にコミュニケーションし、安全にデータを共有することができます。PowerShellを使用すると、この作業が簡単になり、展開スクリプトに迅速に組み込むことができます。ポリシーやセキュリティの理由で別々の仮想ネットワークを使用している場合でも、VM接続に制限を受けることはありません。今日、Azure仮想ネットワークを始めましょう!






