Azure Batch では、 Azure 仮想ネットワーク (VNet) のサブネットに Batch プールを作成できます。 Batch プール内の仮想マシン (VM) には、Batch によって作成されるパブリック IP アドレスを介してアクセスできます。 これらのパブリック IP アドレスは、プールの有効期間中に変更される可能性があります。 IP アドレスが更新されない場合、ネットワーク設定が古くなる可能性があります。
代わりに、プール内の VM で使用する静的パブリック IP アドレスの一覧を作成できます。 場合によっては、パブリック IP アドレスの一覧を制御して、予期せず変更されないようにする必要がある場合があります。 たとえば、特定の IP アドレスへのアクセスを制限するデータベースなどの外部サービスを操作している場合があります。
パブリック IP アドレスのないプールの作成については、「パブリック IP アドレス のない Azure Batch プールを作成する」を参照してください。
[前提条件]
- Batch クライアント API は、パブリック IP アドレスを使用するために Microsoft Entra 認証 を使用する必要があります。
- プールと IP アドレスを作成するのと同じサブスクリプションの Azure VNet。 Azure Resource Manager ベースの VNet のみを使用できます。 VNet が すべての一般的な VNet 要件を満たしていることを確認します。
- 少なくとも 1 つの既存の Azure パブリック IP アドレス。 パブリック IP アドレスの要件に従って、IP アドレスを作成して構成します。
注
Batch は、パブリック IP アドレスを含むリソース グループに追加のネットワーク リソースを自動的に割り当てます。 100 個の専用ノードごとに、Batch は通常、1 つのネットワーク セキュリティ グループ (NSG) と 1 つのロード バランサーを割り当てます。 これらのリソースは、サブスクリプションのリソース クォータによって制限されます。 大規模なプールを使用する場合は、これらのリソースの 1 つ以上の クォータの引き上げを要求 する必要があります。
パブリック IP アドレスの要件
次のいずれかの方法で 1 つ以上のパブリック IP アドレスを作成します。
パブリック IP アドレスが次の要件を満たしていることを確認します。
- Batch プールのアカウントと同じサブスクリプションとリージョンにパブリック IP アドレスを作成します。
- IP アドレスの割り当てを静的に設定します。
- SKU を Standard に設定します。
- DNS 名を指定します。
- 他のリソースでこれらのパブリック IP アドレスが使用されていないこと、またはプールで割り当てエラーが発生する可能性があることを確認します。 これらのパブリック IP アドレスは、VM 構成プールにのみ使用してください。
- セキュリティ ポリシーまたはリソース ロックによって、パブリック IP アドレスへのユーザー アクセスが制限されていないことを確認します。
- ターゲット VM の数に対応するために、プールに十分なパブリック IP アドレスを作成します。
- この数は、プールの targetDedicatedNodes プロパティと targetLowPriorityNodes プロパティの合計以上である必要があります。
- 十分な IP アドレスを作成しないと、プールによってコンピューティング ノードが部分的に割り当てられるので、サイズ変更エラーが発生します。
- 現時点では、Batch は 100 個の VM ごとに 1 つのパブリック IP アドレスを使用します。
- パブリック IP アドレスのバッファーも作成します。 バッファーは、スケールダウンのための内部最適化で Batch を支援します。 また、バッファーを使用すると、スケールアップまたはスケールダウンに失敗した後のスケールアップも迅速に行うことができます。 次のいずれかのバッファー IP アドレスを追加することをお勧めします。どちらか大きい数値を選択します。
- 少なくとも 1 つの IP アドレスを追加します。
- または、プール内のパブリック IP アドレスの合計数の約 10% を追加します。
Important
Batch プールを作成した後は、パブリック IP アドレスの一覧を追加または変更することはできません。 リストを変更する場合は、プールを削除して再作成する必要があります。
パブリック IP アドレスを使用して Batch プールを作成する
次の例では、パブリック IP アドレスを使用する Azure Batch Service REST API を使用してプールを作成する方法を示します。
REST API URI:
POST {batchURL}/pools?api-version=2020-03-01.11.0
client-request-id: 00000000-0000-0000-0000-000000000000
要求本文:
"pool": {
"id": "pool2",
"vmSize": "standard_a1",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "Canonical",
"offer": "UbuntuServer",
"sku": "20.04-LTS"
},
"nodeAgentSKUId": "batch.node.ubuntu 20.04"
},
"networkConfiguration": {
"subnetId": "/subscriptions/<subId>/resourceGroups/<rgId>/providers/Microsoft.Network/virtualNetworks/<vNetId>/subnets/<subnetId>",
"publicIPAddressConfiguration": {
"provision": "usermanaged",
"ipAddressIds": [
"/subscriptions/<subId>/resourceGroups/<rgId>/providers/Microsoft.Network/publicIPAddresses/<publicIpId>"
]
},
"resizeTimeout":"PT15M",
"targetDedicatedNodes":5,
"targetLowPriorityNodes":0,
"taskSlotsPerNode":3,
"taskSchedulingPolicy": {
"nodeFillType":"spread"
},
"enableAutoScale":false,
"enableInterNodeCommunication":true,
"metadata": [ {
"name":"myproperty",
"value":"myvalue"
} ]
}