PowerShell を使用した複数の IP 構成での負荷分散Load balancing on multiple IP configurations using PowerShell

この記事では、1 つのセカンダリ ネットワーク インターフェイス (NIC) に複数の IP アドレスがある Azure Load Balancer の使用方法について説明します。This article describes how to use Azure Load Balancer with multiple IP addresses on a secondary network interface (NIC). このシナリオには、Windows を実行する 2 つの VM があり、各 VM にプライマリ NIC とセカンダリ NIC が 1 つずつ存在します。For this scenario, we have two VMs running Windows, each with a primary and a secondary NIC. セカンダリ NIC にはそれぞれ 2 つの IP 構成が割り当てられています。Each of the secondary NICs has two IP configurations. それぞれの VM は、contoso.com と fabrikam.com の両方の Web サイトをホストします。Each VM hosts both websites contoso.com and fabrikam.com. それぞれの Web サイトは、セカンダリ NIC の IP 構成の 1 つにバインドされています。Each website is bound to one of the IP configurations on the secondary NIC. ここで、Azure Load Balancer を使用して、それぞれの Web サイト用に 2 つのフロントエンド IP アドレスを公開して、トラフィックを Web サイトのそれぞれの IP 構成に分散します。We use Azure Load Balancer to expose two frontend IP addresses, one for each website, to distribute traffic to the respective IP configuration for the website. このシナリオでは、両方のバックエンド プール IP アドレスに加えて、両方のフロントエンドで同じポート番号を使用します。This scenario uses the same port number across both frontends, as well as both backend pool IP addresses.

LB シナリオの画像

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

複数の IP 構成で負荷分散を行うための手順Steps to load balance on multiple IP configurations

この記事で紹介するシナリオを実現するには、次の手順に従います。Follow the steps below to achieve the scenario outlined in this article:

  1. Azure PowerShell をインストールします。Install Azure PowerShell. 最新バージョンの Azure PowerShell をインストールし、サブスクリプションを選択して、ご利用のアカウントにサインインする方法については、「Azure PowerShell のインストールおよび構成方法」を参照してください。See How to install and configure Azure PowerShell for information about installing the latest version of Azure PowerShell, selecting your subscription, and signing in to your account.

  2. 次の設定を使用してリソース グループを作成します。Create a resource group using the following settings:

    $location = "westcentralus".
    $myResourceGroup = "contosofabrikam"
    

    詳細については、リソース グループの作成に関するページの手順 2. を参照してください。For more information, see Step 2 of Create a Resource Group.

  3. VM を格納する可用性セットを作成します。Create an Availability Set to contain your VMs. このシナリオでは、次のコマンドを使用します。For this scenario, use the following command:

    New-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset" -Location "West Central US"
    
  4. Windows VM の作成に関する記事の手順 3. ~ 5. に従って、単一の NIC を持つ VM を作成する準備をします。Follow instructions steps 3 through 5 in Create a Windows VM article to prepare the creation of a VM with a single NIC. 手順 6.1. を実行し、手順 6.2. の代わりに次のコマンドを実行します。Execute step 6.1, and use the following instead of step 6.2:

    $availset = Get-AzAvailabilitySet -ResourceGroupName "contosofabrikam" -Name "myAvailset"
    New-AzVMConfig -VMName "VM1" -VMSize "Standard_DS1_v2" -AvailabilitySetId $availset.Id
    

    次に、Windows VM の作成に関する記事の手順 6.3. ~ 6.8. を実行します。Then complete Create a Windows VM steps 6.3 through 6.8.

  5. 各 VM に 2 番目の IP 構成を追加します。Add a second IP configuration to each of the VMs. 仮想マシンに複数の IP アドレスを割り当てる操作に関する記事の手順に従います。Follow the instructions in Assign multiple IP addresses to virtual machines article. 次の構成設定を使用します。Use the following configuration settings:

    $NicName = "VM1-NIC2"
    $RgName = "contosofabrikam"
    $NicLocation = "West Central US"
    $IPConfigName4 = "VM1-ipconfig2"
    $Subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "mySubnet" -VirtualNetwork $myVnet
    

    このチュートリアルでは、セカンダリ IP 構成をパブリック IP に関連付ける必要はありません。You do not need to associate the secondary IP configurations with public IPs for the purpose of this tutorial. コマンドを編集して、パブリック IP の関連付けの部分を削除します。Edit the command to remove the public IP association part.

  6. VM2 用に、この記事の手順 4. ~ 6. をもう一度実行します。Complete steps 4 through 6 of this article again for VM2. このとき、必ず VM 名を VM2 に置き換えてください。Be sure to replace the VM name to VM2 when doing this. 2 つ目の VM には仮想ネットワークを作成する必要がないことに注意してください。Note that you do not need to create a virtual network for the second VM. 新しいサブネットを作成するかどうかは、ユース ケースに基づいて判断します。You may or may not create a new subnet based on your use case.

  7. 次のように、2 つのパブリック IP アドレスを作成して適切な変数に格納します。Create two public IP addresses and store them in the appropriate variables as shown:

    $publicIP1 = New-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel contoso
    $publicIP2 = New-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam -Location 'West Central US' -AllocationMethod Dynamic -DomainNameLabel fabrikam
    
    $publicIP1 = Get-AzPublicIpAddress -Name PublicIp1 -ResourceGroupName contosofabrikam
    $publicIP2 = Get-AzPublicIpAddress -Name PublicIp2 -ResourceGroupName contosofabrikam
    
  8. 2 つのフロントエンド IP 構成を作成します。Create two frontend IP configurations:

    $frontendIP1 = New-AzLoadBalancerFrontendIpConfig -Name contosofe -PublicIpAddress $publicIP1
    $frontendIP2 = New-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2
    
  9. バックエンド アドレス プール、プローブ、および負荷分散規則を作成します。Create your backend address pools, a probe, and your load balancing rules:

    $beaddresspool1 = New-AzLoadBalancerBackendAddressPoolConfig -Name contosopool
    $beaddresspool2 = New-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool
    
    $healthProbe = New-AzLoadBalancerProbeConfig -Name HTTP -RequestPath 'index.html' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    
    $lbrule1 = New-AzLoadBalancerRuleConfig -Name HTTPc -FrontendIpConfiguration $frontendIP1 -BackendAddressPool $beaddresspool1 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    $lbrule2 = New-AzLoadBalancerRuleConfig -Name HTTPf -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthprobe -Protocol Tcp -FrontendPort 80 -BackendPort 80
    
  10. これらのリソースを作成したら、ロード バランサーを作成します。Once you have these resources created, create your load balancer:

    $mylb = New-AzLoadBalancer -ResourceGroupName contosofabrikam -Name mylb -Location 'West Central US' -FrontendIpConfiguration $frontendIP1 -LoadBalancingRule $lbrule -BackendAddressPool $beAddressPool -Probe $healthProbe
    
  11. 新しく作成したロード バランサーに、2 つ目のバックエンド アドレス プールとフロントエンド IP 構成を追加します。Add the second backend address pool and frontend IP configuration to your newly created load balancer:

    $mylb = Get-AzLoadBalancer -Name "mylb" -ResourceGroupName $myResourceGroup | Add-AzLoadBalancerBackendAddressPoolConfig -Name fabrikampool | Set-AzLoadBalancer
    
    $mylb | Add-AzLoadBalancerFrontendIpConfig -Name fabrikamfe -PublicIpAddress $publicIP2 | Set-AzLoadBalancer
    
    Add-AzLoadBalancerRuleConfig -Name HTTP -LoadBalancer $mylb -FrontendIpConfiguration $frontendIP2 -BackendAddressPool $beaddresspool2 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80 | Set-AzLoadBalancer
    
  12. 次のコマンドは、NIC を取得し、各セカンダリ NIC の両方の IP 構成をロード バランサーのバックエンド アドレス プールに追加します。The commands below get the NICs and then add both IP configurations of each secondary NIC to the backend address pool of the load balancer:

    $nic1 = Get-AzNetworkInterface -Name "VM1-NIC2" -ResourceGroupName "MyResourcegroup";
    $nic2 = Get-AzNetworkInterface -Name "VM2-NIC2" -ResourceGroupName "MyResourcegroup";
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic1.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[0]);
    $nic2.IpConfigurations[1].LoadBalancerBackendAddressPools.Add($mylb.BackendAddressPools[1]);
    
    $mylb = $mylb | Set-AzLoadBalancer
    
    $nic1 | Set-AzNetworkInterface
    $nic2 | Set-AzNetworkInterface
    
  13. 最後に、Load Balancer の各フロントエンド IP アドレスを指すように DNS リソース レコードを構成する必要があります。Finally, you must configure DNS resource records to point to the respective frontend IP address of the Load Balancer. ドメインを Azure DNS でホストする場合もあります。You may host your domains in Azure DNS. Azure DNS を Load Balancer で使用する方法の詳細については、「Azure DNS を他の Azure サービスで使用する」を参照してください。For more information about using Azure DNS with Load Balancer, see Using Azure DNS with other Azure services.

次の手順Next steps