次の方法で共有


パブリック IP アドレスのない簡略化されたノード通信プールを作成する

これにより、 パブリック IP アドレスのない Azure Batch プールの以前のプレビュー バージョンが置き換えられます。 この新しいバージョンでは、 簡略化されたコンピューティング ノード通信を使用する必要があります。

Important

Azure Batch でのパブリック IP アドレスのないプールのサポートは、現在、 一部のリージョンで利用できます。

Azure Batch プールを作成するときに、パブリック IP アドレスなしで仮想マシン (VM) 構成プールをプロビジョニングできます。 この記事では、パブリック IP アドレスを使用せずに Batch プールを設定する方法について説明します。

パブリック IP アドレスのないプールを使用する理由

既定では、Azure Batch VM 構成プール内のすべてのコンピューティング ノードにパブリック IP アドレスが割り当てられます。 このアドレスは、インターネットへの送信アクセスと、インターネットからのコンピューティング ノードへの受信アクセスをサポートするために Batch サービスによって使用されます。

これらのノードへのアクセスを制限し、インターネットからのこれらのノードの検出可能性を減らすために、パブリック IP アドレスなしでプールをプロビジョニングできます。

[前提条件]

Important

前提条件は、この機能の以前のプレビュー バージョンから変更されています。 続行する前に、各項目の変更を確認してください。

  • 簡略化されたコンピューティング ノード通信を使用します。 詳細については、「 簡略化されたコンピューティング ノード通信を使用する」を参照してください。

  • Batch クライアント API では、Microsoft Entra 認証を使用する必要があります。 Microsoft Entra ID に対する Azure Batch のサポートについては、「 Active Directory を使用した Batch サービス ソリューションの認証」に記載されています。

  • Azure 仮想ネットワーク (VNet) にプールを作成し、次の要件と構成に従います。 1 つ以上のサブネットを含む VNet を事前に準備するには、Azure portal、Azure PowerShell、Azure Command-Line インターフェイス (Azure CLI)、またはその他の方法を使用できます。

    • VNet は、プールの作成に使用する Batch アカウントと同じサブスクリプションとリージョンに存在する必要があります。

    • プールに指定するサブネットには、プールを対象とする VM の数に対応するために十分な未割り当て IP アドレスが必要です。つまり、プールの targetDedicatedNodes プロパティと targetLowPriorityNodes プロパティの合計です。 サブネットに十分な割り当てられていない IP アドレスがない場合、プールはコンピューティング ノードを部分的に割り当て、サイズ変更エラーが発生します。

    • プライベート エンドポイントを使用する予定で、仮想ネットワークで プライベート エンドポイント ネットワーク ポリシー が有効になっている場合は、プライベート エンドポイントをホストするサブネットへの TCP/443 との受信接続を Batch プールのサブネットから許可する必要があります。

  • Batch ノード管理の送信アクセスを有効にします。 パブリック IP アドレスがないプールでは、インターネット送信アクセスが既定で有効になっていません。 コンピューティング ノードが Batch ノード管理サービスにアクセスできるようにするには、次のいずれかのオプションを選択します ( 「簡略化されたコンピューティング ノード通信の使用」を参照)。

Important

Batch アカウントを使用するプライベート エンドポイントには、2 つのサブリソースがあります。 パブリック IP アドレスのない Batch プールの nodeManagement プライベート エンドポイントを使用してください。 詳細については、「 Azure Batch アカウントでプライベート エンドポイントを使用する」を参照してください。

現在の制限

  1. パブリック IP アドレスのないプールでは、Cloud Services 構成ではなく仮想マシン構成を使用する必要があります。
  2. Batch コンピューティング ノードのカスタム エンドポイント構成は、パブリック IP アドレスのないプールでは機能しません。
  3. パブリック IP アドレスがないため、この種類のプールで独自に 指定されたパブリック IP アドレスを使用 することはできません。
  4. Batch タスクのタスク認証トークン はサポートされていません。 回避策は、 マネージド ID で Batch プールを使用することです

Azure portal でパブリック IP アドレスのないプールを作成する

  1. 必要に応じて、仮想ネットワーク内の Batch アカウントの nodeManagement プライベート エンドポイントを作成します ( 前提条件の送信アクセス要件を参照してください)。
  2. Azure portal で Batch アカウントに移動します。
  3. 左側の [設定] ウィンドウで、[プール] を選択 します
  4. [ プール ] ウィンドウで、[ 追加] を選択します。
  5. [ プールの追加 ] ウィンドウで、[ イメージの種類 ] ドロップダウンから使用するオプションを選択します。
  6. イメージの適切な 発行元/オファー/SKU を選択します。
  7. ノード サイズターゲット専用ノード、ターゲットスポット/低優先度ノードなど、残りの必要な設定を指定します。
  8. ノード通信モードの場合は、[オプション設定] で [簡略化] を選択します。
  9. 使用する仮想ネットワークとサブネットを選択します。 この仮想ネットワークは、作成するプールと同じ場所にある必要があります。
  10. IP アドレスのプロビジョニングの種類で、NoPublicIPAddresses を選択します。

次のスクリーンショットは、パブリック IP アドレスのないプールを作成するために変更する必要がある要素を示しています。

NoPublicIPAddresses が選択されている [プールの追加] 画面のスクリーンショット。

Batch REST API を使用して、パブリック IP アドレスのないプールを作成する

次の例は、 Batch サービス REST API を使用して、パブリック IP アドレスを使用するプールを作成する方法を示しています。

REST API URI

POST {batchURL}/pools?api-version=2022-10-01.16.0
client-request-id: 00000000-0000-0000-0000-000000000000

要求本文

"pool": {
     "id": "pool-npip",
     "vmSize": "standard_d2s_v3",
     "virtualMachineConfiguration": {
          "imageReference": {
               "publisher": "Canonical",
               "offer": "0001-com-ubuntu-server-jammy",
               "sku": "22_04-lts"
          },
          "nodeAgentSKUId": "batch.node.ubuntu 22.04"
     },
     "networkConfiguration": {
          "subnetId": "/subscriptions/<your_subscription_id>/resourceGroups/<your_resource_group>/providers/Microsoft.Network/virtualNetworks/<your_vnet_name>/subnets/<your_subnet_name>",
          "publicIPAddressConfiguration": {
               "provision": "NoPublicIPAddresses"
          }
     },
     "resizeTimeout": "PT15M",
     "targetDedicatedNodes": 2,
     "targetLowPriorityNodes": 0,
     "taskSlotsPerNode": 1,
     "taskSchedulingPolicy": {
          "nodeFillType": "spread"
     },
     "enableAutoScale": false,
     "enableInterNodeCommunication": false,
     "targetNodeCommunicationMode": "simplified"
}

ARM テンプレートを使用してパブリック IP アドレスのないプールを作成する

この Azure クイック スタート テンプレート を使用して、Azure Resource Manager (ARM) テンプレートを使用してパブリック IP アドレスのないプールを作成できます。

テンプレートによって次のリソースがデプロイされます。

  • Batch ノード管理エンドポイントへのパブリック ネットワーク アクセスをブロックするように構成された IP ファイアウォールを持つ Azure Batch アカウント
  • インターネット送信アクセスをブロックするネットワーク セキュリティ グループを持つ仮想ネットワーク
  • アカウントの Batch ノード管理エンドポイントにアクセスするためのプライベート エンドポイント
  • 仮想ネットワークにリンクされたプライベート DNS ゾーンを使用したプライベート エンドポイントの DNS 統合
  • パブリック IP アドレスなしで仮想ネットワークにデプロイされたバッチ プール

ARM テンプレートの使用に慣れている場合は、[ Azure にデプロイ ] ボタンを選択します。 Azure portal でテンプレートが開きます。

Resource Manager テンプレートを Azure に配置するボタン。

無効な groupId "nodeManagement" が原因でプライベート エンドポイントのデプロイが失敗した場合は、 簡略化されたコンピューティング ノード通信のサポートされている一覧にリージョンがあるかどうかを確認してください。 適切なリージョンを選択し、デプロイを再試行します。

インターネットへのアウトバウンドアクセス

パブリック IP アドレスのないプールでは、仮想ネットワーク NAT を使用するなど、ネットワークセットアップを適切に構成しない限り、 仮想マシンはパブリック インターネットにアクセスできません。 NAT では、仮想ネットワーク内の仮想マシンからのインターネットへの送信アクセスのみが許可されます。 バッチ作成されたコンピューティング ノードにはパブリック IP アドレスが関連付けられていないため、パブリックにアクセスできません。

送信接続を提供するもう 1 つの方法は、ユーザー定義ルート (UDR) を使用することです。 この方法では、パブリック インターネット アクセスを持つプロキシ マシン ( Azure Firewall など) にトラフィックをルーティングできます。

Important

パブリック IP アドレスのない簡略化されたノード通信プール用に作成された追加のネットワーク リソース (ロード バランサー、ネットワーク セキュリティ グループ) はありません。 プール内のコンピューティング ノードはどのロード バランサーにもバインドされていないため、Azure は 既定の送信アクセスを提供できます。 ただし、既定の送信アクセスは運用環境のワークロードには適していないため、2026 年 3 月 31 日に廃止されます ( 公式発表を参照)。 そのため、ワークロードでインターネット送信アクセスが必要な場合、またはプールが Batch ノード管理エンドポイントにアクセスするためにプライベート エンドポイントを使用していない場合は、インターネット送信アクセスを有効にする独自のソリューションを提供する必要があります。

トラブルシューティング

Batch プール内の使用できないコンピューティング ノード

パブリック IP アドレスのない Batch プールでコンピューティング ノードが使用できない状態に陥った場合、最初に最も重要なチェックは、Batch ノード管理サービスへの送信アクセスを確認することです。 コンピューティング ノードが仮想ネットワークからサービスに接続できるように、正しく構成する必要があります。

nodeManagement プライベート エンドポイントの使用

Batch アカウントの仮想ネットワークにノード管理プライベート エンドポイントを作成した場合:

  • プライベート エンドポイントが適切な仮想ネットワーク 、プロビジョニング成功 状態、および 承認済み 状態で作成されているかどうかを確認します。
  • Batch アカウントのノード管理エンドポイントに対して DNS 構成が正しく設定されているかどうかを確認します。
    • プライベート DNS ゾーンの自動統合を使用してプライベート エンドポイントが作成された場合は、プライベート DNS ゾーン privatelink.batch.azure.comで DNS A レコードが正しく構成されていること、およびゾーンが仮想ネットワークにリンクされていることを確認します。
    • 独自の DNS ソリューションを使用している場合は、Batch ノード管理エンドポイントの DNS レコードが正しく構成され、プライベート エンドポイントの IP アドレスを指していることを確認します。
  • アカウントの Batch ノード管理エンドポイント の DNS 解決を確認します。 仮想ネットワーク内から nslookup <nodeManagementEndpoint> を実行して確認できます。DNS 名はプライベート エンドポイントの IP アドレスに解決する必要があります。
  • 仮想ネットワークで プライベート エンドポイント ネットワーク ポリシー が有効になっている場合は、NSG と UDR で Batch プールとプライベート エンドポイントの両方のサブネットを確認します。 プライベート エンドポイントをホストするサブネットへの TCP/443 との受信接続は、Batch プールのサブネットから許可されている必要があります。
  • Batch プールのサブネットから、既定の HTTPS ポート (443) を使用してノード管理エンドポイントに TCP ping を実行します。 このプローブは、プライベート リンク接続が期待どおりに動作しているかどうかを確認できます。
# Windows
Test-TcpConnection -ComputeName <nodeManagementEndpoint> -Port 443
# Linux
nc -v <nodeManagementEndpoint> 443

TCP ping が失敗した場合 (タイムアウトなど)、通常はプライベート リンク接続の問題であり、このプライベート エンドポイント リソースで Azure サポート チケットを発行できます。 そうしないと、このノードの使用不可の問題は、通常の Batch プールと同様にトラブルシューティングできます。また、Batch アカウントでサポートチケットを作成して問い合わせることができます。

独自のインターネット送信ソリューションの使用

プライベート エンドポイントではなく独自のインターネット送信ソリューションを使用している場合は、ノード管理エンドポイントに対して TCP ping を実行します。 動作しない場合は、 コンピューティング ノードの通信を簡略化するための詳細な要件に従って、送信アクセスが正しく構成されているかどうかを確認します。

コンピューティング ノードに接続する

パブリック IP アドレスのない Batch プール内のコンピューティング ノードへのインターネット受信アクセスはありません。 デバッグのためにコンピューティング ノードにアクセスするには、仮想ネットワーク内から接続する必要があります。

  • 仮想ネットワーク内のジャンプボックス マシンを使用し、そこからコンピューティング ノードに接続します。
  • または、 Azure Bastion などの他のリモート接続ソリューションを使用してみてください。
    • IP ベースの接続が有効になっている仮想ネットワークに Bastion を作成します。
    • Bastion を使用して、その IP アドレスを使用してコンピューティング ノードに接続します。

コンピューティング ノードへの接続ガイドに 従って、Batch プール内のターゲット コンピューティング ノードのユーザー資格情報と IP アドレスを取得できます。

以前のプレビュー バージョンのパブリック IP プールなしからの移行

以前のプレビュー バージョンの Azure Batch No Public IP プールを使用する既存のプールの場合、仮想ネットワークで作成されたプールのみを移行できます。

  1. 仮想ネットワークで Batch ノード管理用のプライベート エンドポイント を作成します。
  2. プールのノード通信モードを 簡略化に更新します。
  3. プールを 0 ノードにスケールダウンします。
  4. プールをもう一度スケールアウトします。 その後、プールは新しいバージョンに自動的に移行されます。

次のステップ