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

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

重要

2027 年 9 月 30 日に、Inbound NAT Pools(Inbound NAT ルール V1 の Azure Virtual Machine Scale Sets 固有の機能)は廃止される予定です。 現在、Virtual Machine Scale Setsで受信 NAT プールを使用している場合は、提供終了日より前に受信 NAT 規則 V2 に移行します。 単一 VM 受信 NAT 規則 V1 は、この廃止の影響を受けず 、移行する必要はありません。

NAT 規則バージョン 1

受信 NAT 規則のバージョン 1 には、次の 2 つの異なる機能が含まれています。

  • 単一 VM 受信 NAT 規則 — ロード バランサーのフロントエンド IP/ポートと特定の仮想マシンの間の 1 対 1 のポート マッピングを提供します。 規則は、VM のネットワーク インターフェイス カード (NIC) に直接適用されます。 これらは廃止されず、移行する必要はありません。

  • Inbound NAT プール (Virtual Machine Scale Setsのみ) — これは、各バックエンド インスタンスにAzure Load Balancerのフロントエンド ポートを割り当てるための従来のアプローチです。 スケール セットがスケールアップおよびスケールダウンされると、受信 NAT 規則は仮想マシン スケール セット インスタンスごとに自動的に作成および削除されます。 NAT プールはロード バランサーで定義され、loadBalancerInboundNatPools プロパティを使用してVirtual Machine Scale Sets NIC 構成によって参照されます。 これらは 2027 年 9 月 30 日に廃止され、受信 NAT 規則 V2 に移行する必要があります。

NAT 規則バージョン 2

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

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

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

デプロイで機能のバージョン 1 が使用されているかどうかを識別する最も簡単な方法は、ロード バランサーの構成を調べることです。 バージョン1のNATルールは、Azure仮想マシンType値とTarget仮想マシンの値を定義しています。

Azure portal での NAT 規則バージョン 1 の構成のスクリーンショット。

バージョン 2 の NAT 規則の場合、[タイプ] 値は、[ターゲット バックエンド プール] の値が定義された "バックエンド プール" になります。

Azure portal での NAT 規則バージョン 2 の構成のスクリーンショット。

デプロイでインバウンド NAT 規則のバージョン 1 が使用されているかどうかをプログラムで確認するには、Azure CLI または PowerShell を使用してロード バランサーの構成を調べます。 backendIPConfiguration 構成内の InboundNATRule プロパティのいずれかに値が設定されている場合、そのデプロイはインバウンド NAT 規則のバージョン 1 です。 バージョン 2 の規則には、backendAddressPool プロパティではなく、backendIPConfiguration プロパティがあります。

受信 NAT プールを使用しているかどうかを確認する方法

ロード バランサーに受信 NAT プールが構成されているかどうかを確認するには:

az network lb inbound-nat-pool list -g MyResourceGroup --lb-name MyLoadBalancer

上記のコマンドで結果が返された場合、ロード バランサーは受信 NAT プールを使用しており、移行する必要があります。

主な違いは、ARM プロパティ名です。受信 NAT プールはロード バランサーの inboundNatPools プロパティの下に表示され、受信 NAT 規則は inboundNatRules プロパティの下に表示されます。 ロード バランサーに空でない inboundNatPools 配列がある場合は、受信 NAT プールを使用しており、2027 年 9 月 30 日より前に V2 に移行する必要があります。

Note

ロード バランサーに単一の VM 受信 NAT 規則 (種類 = "Azure仮想マシン") があり、インバウンド NAT プールがない場合は、移行は必要ありません。 単一 VM V1 規則は廃止されていません。

受信 NAT プールからバージョン 2 に移行する方法

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

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

手動での移行

以下の3つのステップで、インバウンドNATプールをインバウンドNATルールのバージョン2に移行します。 単一のVMインバウンドNATルールV1ではこれらのステップは必要ありません。

  1. 負荷バランサーの設定上の受信NATプールを削除してください。
  2. 仮想マシンのスケールセットネットワークインターフェース設定上の loadBalancerInboundNatPools 参照を削除してください。
    • すべての仮想マシン スケール セット インスタンスを更新してください。
  3. 負荷バランサーのバックエンドプールに対してInbound NATルールのバージョン2を展開します。

仮想マシン スケール セット

重要

これは、受信 NAT プールの廃止に必要な移行パスです。 受信 NAT プールを使用するすべての仮想マシン スケール セットのデプロイは、2027 年 9 月 30 日より前にこの移行を完了する必要があります。

次の手順は、仮想マシン スケール セットのインバウンド 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 --backend-address-pool MybackendPool

移行を検証する

どちらかの処置を終えた後、3つの結果すべてを確認してください。

  • ロードバランサーにはもはやインバウンドNATプールはありません。 az network lb inbound-nat-pool list -g MyResourceGroup --lb-name MyLoadBalancer 空の結果を返すか、PowerShellでは $slb.InboundNatPools が空です。
  • 新しいバージョン2ルールは、意図されたバックエンドプールを対象としています。 ルールがAzureポータルでターゲットバックエンドプールの価値を示しているか、またはルール設定にbackendAddressPoolが入力されているかを確認してください。
  • 期待されるポートマッピングは存在します。 Azureポータルで新しいインバウンドNATルールを開き、各バックエンドインスタンスのポートマッピングセクションを確認してください。

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

移行プロセスでは、移行する 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>
    
    

次のステップ