Azure Batch アカウントでプライベート エンドポイントを使用する
既定では、Azure Batch アカウントにはパブリック エンドポイントがあり、パブリックにアクセスできます。 Batch サービスでは、Batch アカウントのプライベート エンドポイントを作成し、Batch サービスへのプライベート ネットワーク アクセスを許可する機能が提供されます。
Azure Private Link を使用することにより、プライベート エンドポイント経由で Azure Batch アカウントに接続できます。 プライベート エンドポイントは、仮想ネットワークのサブネットにある一組のプライベート IP アドレスです。 これで、プライベート IP アドレスを使用して Azure Batch アカウントへのアクセスを制限できるようになります。
Private Link を使用すると、ユーザーは、仮想ネットワーク内から、またはピアリングされた任意の仮想ネットワークから、Azure Batch アカウントにアクセスできます。 Private Link にマップされたリソースは、プライベート ピアリングを使用して、VPN または Azure ExpressRoute 経由でオンプレミスからアクセスすることもできます。 自動または手動の承認方法により、Private Link を使用して構成された Azure Batch アカウントに接続できます。
この記事では、プライベート エンドポイントを作成し、Batch アカウント エンドポイントにアクセスする手順について説明します。
Batch アカウントでサポートされているプライベート エンドポイント サブリソース
Batch アカウント リソースには、プライベート エンドポイントを使用したアクセスがサポートされている 2 つのエンドポイントがあります。
アカウント エンドポイント (サブリソース: batchAccount): このエンドポイントは、プール、コンピューティング ノード、ジョブ、タスクなどを管理する Batch Service REST API (データ プレーン) にアクセスするために使用します。
ノード管理エンドポイント (サブリソース: nodeManagement): Batch プール ノードが Batch ノード管理サービスにアクセスするために使用します。 このエンドポイントは、簡素化されたコンピューティング ノード通信を使うときにだけ適用されます。
ヒント
Batch アカウントの実際の使用状況に応じて、仮想ネットワーク内にこれらのいずれかまたは両方のプライベート エンドポイントを作成できます。 たとえば、仮想ネットワーク内で Batch プールを実行するが、他の場所から Batch Service REST API を呼び出す場合は、仮想ネットワークに nodeManagement プライベート エンドポイントを作成するだけで済みます。
Azure portal
Azure portal を使用して Batch アカウントでプライベート エンドポイントを作成するには、以下の手順のようにします。
- Azure portal の Batch アカウントに移動します。
- [設定] で [ネットワーク] を選択し、[プライベート アクセス] タブに移動します。 [+ プライベート エンドポイント] を選択します。
- [基本] ペインで、サブスクリプション、リソース グループ、プライベート エンドポイント リソース名、リージョンの詳細を入力または選択して、 [次へ: リソース] を選択します。
- [リソース] ペインで、 [リソースの種類] を Microsoft.Batch/batchAccounts に設定します。 アクセスする Batch アカウントを選択し、ターゲット サブリソースを選択して、[次へ: 構成] を選択します。
-
[構成] ペインで、次の情報を入力または選択します。
- [仮想ネットワーク] では、お使いの仮想ネットワークを選択します。
- [サブネット] では、サブネットを選択します。
- [プライベート IP 構成] では、既定値の [IP アドレスを動的に割り当てる] を選択します。
- [プライベート DNS ゾーンと統合する] に、 [はい] を選択します。 プライベート エンドポイントに非公開で接続するには、DNS レコードが必要です。 プライベート エンドポイントとプライベート DNS ゾーンを統合することをお勧めします。 また、独自の DNS サーバーを使用したり、仮想マシン上のホスト ファイルを使用して DNS レコードを作成したりすることもできます。
- [Private DNS Zone] では、「privatelink.batch.azure.com」を選択します。 プライベート DNS ゾーンは自動的に決定されます。 Azure portal を使用してこの設定を変更することはできません。
重要
- 以前のプライベート DNS ゾーン
privatelink.<region>.batch.azure.com
で作成された既存のプライベート エンドポイントがある場合は、プライベート エンドポイントを使用した既存の Batch アカウントの移行に従います。 - プライベート DNS ゾーンの統合を選択した場合は、プライベート DNS ゾーンが仮想ネットワークに正常にリンクされていることを確認してください。 Azure portal で既存のプライベート DNS ゾーンを選択できる場合がありますが、これは仮想ネットワークにリンクされていない可能性があり、その場合は仮想ネットワーク リンクを手動で追加する必要があります。
- [確認と作成] を選択し、Azure で構成が検証されるまで待ちます。
- "証に成功しました" というメッセージが表示されたら、 [作成] を選択します。
ヒント
Azure portal で Private Link センターからプライベート エンドポイントを作成したり、プライベート エンドポイントを検索して新しいリソースを作成したりすることもできます。
プライベート エンドポイントを使用する
プライベート エンドポイントがプロビジョニングされたら、仮想ネットワーク内のプライベート IP アドレスを使用して Batch アカウントにアクセスできます。
batchAccount のプライベート エンドポイント: Batch アカウントのデータ プレーンにアクセスして、プール/ジョブ/タスクを管理できます。
nodeManagement のプライベート エンドポイント: Batch プールのコンピューティング ノードは、Batch ノード管理サービスに接続してその管理下に入ることができます。
ヒント
プライベート エンドポイントを使用している場合は、Batch アカウントでのパブリック ネットワーク アクセスを無効にすることもお勧めします。これにより、プライベート ネットワークにのみアクセスが制限されます。
重要
Batch アカウントでパブリック ネットワーク アクセスが無効になっている場合、プライベート エンドポイントがプロビジョニングされている仮想ネットワークの外部でアカウント操作 (プール、ジョブなど) を実行すると、Batch アカウントに対する "AuthorizationFailure" というメッセージが Azure portal に表示されます。
Azure portal からプライベート エンドポイントの IP アドレスを表示するには、以下の手順に従います。
- [すべてのリソース] を選択します。
- 先ほど作成したプライベート エンドポイントを検索します。
- [DNS の構成] タブを選択して、DNS の設定と IP アドレスを表示します。
DNS ゾーンを構成する
プライベート DNS ゾーンは、プライベート エンドポイントを作成したサブネット内で使用します。 各プライベート IP アドレスが DNS エントリにマップされるようにエンドポイントを構成します
プライベート エンドポイントを作成するときに、Azure のプライベート DNS ゾーンと統合できます。 代わりにカスタム ドメインを使用する場合は、プライベート エンドポイント用に予約されているすべてのプライベート IP アドレスの DNS レコードを追加するように構成する必要があります。
既存の Batch アカウント プライベート エンドポイントを使用した移行
Batch ノード管理エンドポイント用の新しいプライベート エンドポイント サブリソース nodeManagement の導入により、Batch アカウントの既定のプライベート DNS ゾーンが簡単になり、privatelink.<region>.batch.azure.com
から privatelink.batch.azure.com
になります。 以前に使用していたプライベート DNS ゾーンとの後方互換性を維持するために、承認済みの batchAccount プライベート エンドポイントを持つ Batch アカウントの場合、そのアカウント エンドポイントの DNS CNAME マッピングには両方のゾーンが含まれます (以前のゾーンが先に来ます)。次に例を示します。
myaccount.east.batch.azure.com CNAME myaccount.privatelink.east.batch.azure.com
myaccount.privatelink.east.batch.azure.com CNAME myaccount.east.privatelink.batch.azure.com
myaccount.east.privatelink.batch.azure.com CNAME <Batch API public FQDN>
以前のプライベート DNS ゾーンを引き続き使用する
以前の DNS ゾーン privatelink.<region>.batch.azure.com
を仮想ネットワークで既に使用している場合は、その DNS ゾーンを既存および新規の batchAccount プライベート エンドポイントで引き続き使用する必要があります。特に必要な操作はありません。
重要
以前のプライベート DNS ゾーンを使用している場合は、新しく作成されたプライベート エンドポイントでも引き続き使用してください。 新しいゾーンに移行できるまで、DNS 統合ソリューションで新しいゾーンを使用しないでください。
Azure portal で DNS 統合を使用して新しい batchAccount プライベート エンドポイントを作成する
Azure portal を使用して自動 DNS 統合が有効な新規の batchAccount プライベート エンドポイントを手動で作成すると、DNS 統合に新しいプライベート DNS ゾーン privatelink.batch.azure.com
が使用されます。DNS 統合は、プライベート DNS ゾーンを作成して仮想ネットワークにリンクし、プライベート エンドポイントのゾーンに DNS A レコードを構成します。
ただし、仮想ネットワークが以前のプライベート DNS ゾーン privatelink.<region>.batch.azure.com
に既にリンクされている場合は、仮想ネットワーク内のバッチ アカウントの DNS 解決が中断されます。これは、新しいプライベート エンドポイントの DNS A レコードは新しいゾーンに追加されますが、DNS 解決では後方互換性のサポートのために以前のゾーンが最初にチェックされるためです。
この問題は、次のオプションで軽減できます。
以前のプライベート DNS ゾーンが不要な場合は、仮想ネットワークからリンクを解除します。 これ以外の操作は必要ありません。
それ以外の場合は、新しいプライベート エンドポイントが作成された後、以下を行います。
自動プライベート DNS 統合に、新しいプライベート DNS ゾーン
privatelink.batch.azure.com
に作成された DNS A レコードがあることを確認します。 たとえば、「myaccount.<region> A <IPv4 address>
」のように入力します。前のプライベート DNS ゾーン
privatelink.<region>.batch.azure.com
に移動します。DNS CNAME レコードを手動で追加します。 たとえば、「
myaccount CNAME => myaccount.<region>.privatelink.batch.azure.com
」のように入力します。
重要
この手動による軽減策は、以前のプライベート DNS ゾーンに既にリンクされているものと同じ仮想ネットワークに、プライベート DNS 統合を使用して新しい batchAccount プライベート エンドポイントを作成する場合にのみ必要です。
以前のプライベート DNS ゾーンを新しいゾーンに移行する
既存のデプロイ プロセスで以前のプライベート DNS ゾーンを引き続き使用することは可能ですが、DNS 構成管理を簡単にするために、新しいゾーンに移行することをお勧めします。
- 新しいプライベート DNS ゾーン
privatelink.batch.azure.com
を使用すると、Batch アカウントを使用してリージョンごとに異なるゾーンを構成および管理する必要がなくなります。 - 新しいプライベート DNS ゾーンも使用する新しい nodeManagement プライベート エンドポイントの使用を開始すると、両方の種類のプライベート エンドポイントに対して 1 つのプライベート DNS ゾーンを管理するだけで済むようになります。
以前のプライベート DNS ゾーンは、次の手順で移行できます。
- 新しいプライベート DNS ゾーン
privatelink.batch.azure.com
を作成して仮想ネットワークにリンクします。 - 以前のプライベート DNS ゾーンから新しいゾーンにすべての DNS A レコードをコピーします。
From zone "privatelink.<region>.batch.azure.com":
myaccount A <ip>
To zone "privatelink.batch.azure.com":
myaccount.<region> A <ip>
- 仮想ネットワークから以前のプライベート DNS ゾーンのリンクを解除します。
- 仮想ネットワーク内の DNS 解決を確認します。Batch アカウントの DNS 名は引き続きプライベート エンドポイントの IP アドレスに解決されるはずです。
nslookup myaccount.<region>.batch.azure.com
- 新しいプライベート エンドポイントのデプロイ プロセスで、新しいプライベート DNS ゾーンの使用を開始します。
- 移行が完了したら、以前のプライベート DNS ゾーンを削除します。
価格
プライベート エンドポイントに関連するコストの詳細については、「Azure Private Link の価格」を参照してください。
現在の制限事項とベスト プラクティス
Batch アカウントでプライベート エンドポイントを作成するときは、次の点に注意してください。
- プライベート エンドポイント リソースは Batch アカウントとは別のサブスクリプションで作成できますが、サブスクリプションは Microsoft.Batch リソース プロバイダーに登録する必要があります。
- Batch アカウントを使用するプライベート エンドポイントでは、リソースの移動はサポートされていません。
- Batch アカウント リソースが別のリソース グループまたはサブスクリプションに移動された場合、プライベート エンドポイントは引き続き機能しますが、Batch アカウントへの関連付けは解除されます。 プライベート エンドポイント リソースを削除しても、関連付けられているプライベート エンドポイント接続は Batch アカウントに引き続き存在し続けます。 Batch アカウントから手動で接続を削除できます。
- プライベート接続を削除するには、プライベート エンドポイント リソースを削除するか、Batch アカウント内のプライベート接続を削除します (このアクションでは、関連するプライベート エンドポイント リソースが切断されます)。
- Batch アカウントからプライベート エンドポイント接続を削除しても、プライベート DNS ゾーンの DNS レコードは、自動的には削除されません。 このプライベート DNS ゾーンにリンクされている新しいプライベート エンドポイントを追加する前に、DNS レコードを手動で削除する必要があります。 DNS レコードをクリーンアップしないと、予期しないアクセスの問題が発生する可能性があります。
- Batch アカウントに対してプライベート エンドポイントが有効になっている場合、Batch タスクのタスク認証トークンはサポートされません。 回避策は、マネージド ID で Batch プールを使用することです。
次のステップ
- 仮想ネットワークに Batch プールを作成する方法を確認します。
- パブリック IP アドレスのない Batch プールを作成する方法を確認します。
- Batch アカウントのパブリック ネットワーク アクセスを構成する方法を確認します。
- Batch アカウントのプライベート エンドポイント接続を管理する方法を確認します。
- Azure Private Link について確認します。