インバウンド NAT 規則バージョン 1 からバージョン 2 に移行する

インバウンド NAT 規則は、ロード バランサーのフロントエンドからバックエンド プール内の 1 つ以上のインスタンスにトラフィックを転送するために使用されます。 これらの規則は、ロード バランサーのフロントエンド IP アドレスとバックエンド インスタンスとの間に 1 対 1 のマッピングを提供します。 現在、インバウンド NAT 規則にはバージョン 1 とバージョン 2 の 2 つのバージョンがあります。

NAT 規則バージョン 1

バージョン 1 は、Azure Load Balancer のフロントエンド ポートを各バックエンド インスタンスに割り当てるための従来の方法です。 規則はバックエンド インスタンスのネットワーク インターフェイス カード (NIC) に適用されます。 Azure Virtual Machine Scale Sets インスタンスの場合、新しいインスタンスがスケールアップまたはスケールダウンされると、インバウンド NAT 規則が自動的に作成または削除されます。

NAT 規則バージョン 2

インバウンド NAT 規則バージョン 2 では、バージョン 1 と同じ機能セットが提供され、追加の利点があります。

  • デプロイ エクスペリエンスが簡素化され、更新が最適化されました。
    • インバウンド NAT 規則はロード バランサーのバックエンド プールを対象としており、仮想マシンの NIC での参照は不要になりました。 以前のバージョン 1 では、インバウンド NAT 規則が変更されるたびに、ロード バランサーと仮想マシンの NIC の両方を更新する必要がありました。 バージョン 2 では、ロード バランサーの構成の必要な呼び出しは 1 回のみになり、結果として更新が最適化されます。
  • インバウンド NAT 規則とバックエンド インスタンス間のポート マッピングを簡単に取得できます。
    • レガシ オファリングでは、インバウンド NAT 規則と仮想マシン インスタンスの間のポート マッピングを取得するには、規則を仮想マシンの NIC と関連付ける必要がありました。 バージョン 2 では、規則とバックエンド インスタンスの間のポート マッピングは、ロード バランサーの構成に直接挿入されます。

インバウンド NAT 規則のバージョン 1 を使用しているかどうかを確認する方法

デプロイで機能のバージョン 1 が使用されているかどうかを識別する最も簡単な方法は、ロード バランサーの構成を調べることです。 InboundNATRule 構成内の InboundNATPool プロパティまたは backendIPConfiguration プロパティのいずれかが設定されている場合、そのデプロイはインバウンド NAT 規則のバージョン 1 です。

バージョン 1 からバージョン 2 への移行方法

移行する前に、次の情報を確認することが重要です。

  • インバウンド NAT 規則バージョン 2 に移行すると、NAT 規則を通過するアクティブなトラフィックにダウンタイムが発生します。 ロード バランサー規則またはアウトバウンド規則を通過するトラフィックは、移行プロセス中に影響を受けません。
  • バックエンド プール内のインスタンスの最大数を計画します。 バージョン 2 はロード バランサーのバックエンド プールを対象としているため、NAT 規則のフロントエンドに十分な数のポートを割り当てる必要があります。
  • 各バックエンド インスタンスは、新しい NAT 規則で構成されたポートで公開されます。
  • 複数の NAT 規則が重複するポート範囲を持っている場合、または同じバックエンド ポートを持っている場合、これらは共存できません。
  • NAT 規則と負荷分散規則は、同じバックエンド ポートを共有できません。

手動での移行

インバウンド NAT 規則バージョン 2 に移行するには、次の 3 つの手順を実行する必要があります

  1. ロード バランサーの構成で、インバウンド NAT 規則バージョン 1 を削除します。
  2. 仮想マシンまたは仮想マシン スケール セット構成の NAT 規則への参照を削除します。
    1. すべての仮想マシン スケール セット インスタンスを更新する必要があります。
  3. インバウンド NAT 規則バージョン 2 をデプロイします。

仮想マシン

仮想マシン用のインバウンド NAT 規則をバージョン 1 からバージョン 2 に移行するには、次の手順を使用します。


az network lb inbound-nat-rule delete -g MyResourceGroup --lb-name MyLoadBalancer --name NATruleV1

az network nic ip-config inbound-nat-rule remove -g MyResourceGroup --nic-name MyNic -n MyIpConfig --inbound-nat-rule MyNatRule 

az network lb inbound-nat-rule create -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatRule --protocol Tcp --frontend-port-range-start 201 --frontend-port-range-end 500 --backend-port 22 

Virtual Machine Scale Set

次の手順は、仮想マシン スケール セットのインバウンド NAT 規則をバージョン 1 からバージョン 2 に移行するために使用されます。 仮想マシン スケール セットのアップグレード モードが [手動] に設定されていることを前提としています。 詳細については、「Azure での Virtual Machine Scale Sets のオーケストレーション モード」を参照してください


az network lb inbound-nat-pool delete  -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatPool  

az vmss update -g MyResourceGroup -n MyVMScaleSet --remove virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].loadBalancerInboundNatPools  

az vmss update-instances --instance-ids '*' --resource-group MyResourceGroup --name MyVMScaleSet 

az network lb inbound-nat-rule create -g MyResourceGroup --lb-name MyLoadBalancer -n MyNatRule --protocol Tcp --frontend-port-range-start 201 --frontend-port-range-end 500 --backend-port 22 

仮想マシン スケール セットの自動化スクリプトを使用した移行

移行プロセスでは、移行する NAT プールに一致するメンバーシップを持つ既存のバックエンド プールを再利用します。一致するバックエンド プールが見つからない場合、スクリプトは終了し、変更は行われません。 または、-backendPoolReuseStrategy パラメーターを使用し、常に新しいバックエンド プールを作成するか (NoReuse)、一致するバックエンド プールがない場合は新しいバックエンド プールを作成します (OptionalFirstMatch)。 バックエンド プールと NAT 規則の関連付けは、移行後にも希望に合わせて更新できます。

前提条件

移行プロセスを開始する前に、次の前提条件が満たされていることを確認します。

AzureLoadBalancerNATPoolMigration モジュールをインストールする

次のコマンドを使用して、PowerShell ギャラリーから AzureLoadBalancerNATPoolMigration モジュールをインストールします。

# Install the AzureLoadBalancerNATPoolMigration module

Install-Module -Name AzureLoadBalancerNATPoolMigration -Scope CurrentUser -Repository PSGallery -Force 

NAT プールを NAT 規則にアップグレードする

azureLoadBalancerNATPoolMigration モジュールがインストールされたら、次の手順で NAT プールを NAT 規則にアップグレードします。

  1. Connect-AzAccount を使用して Azure に接続します。

  2. NAT 規則のアップグレードとそのリソース グループ名のターゲット ロード バランサーの名前を収集します。

  3. <loadBalancerResourceGroupName><loadBalancerName> のプレースホルダーをご利用のリソース名に置き換えて、移行コマンドを実行します。

    # Run the migration command 
    
    Start-AzNATPoolMigration -ResourceGroupName <loadBalancerResourceGroupName> -LoadBalancerName <loadBalancerName>
    
    

次のステップ