プライベートパス・ネットワーク・ロードバランサーの作成
プライベート・パス・ネットワーク・ロード・バランサー (NLB) は、プライベート・パス・サービスでのみ使用できます。 Load Balancers for VPCのページ から、またはプライベートパスのサービスプロビジョニングプロセスの一部として、プライベートパスのNLBを作成します。 コンソール、CLI、API、または Terraform を使って Private Path ネットワークロードバランサーを作成できます。
プライベート・パスにより、サービス・プロバイダーは、ホストされたサービスの利用者のためにプライベート接続を有効にし、管理することができる。 プライベート・パス・サービスでは、プライベート・パスNLBが各利用者の仮想プライベート・エンドポイント(VPE)ゲートウェイとのセキュアな接続を確立する必要がある。 詳しくは、 プライベート・パス・サービスについて を参照してください。
プライベートパスNLBはポートレンジ機能をサポートしている。 現在、プライベートパスNLBに接続されているすべてのVPEは、範囲内のどのポートにも接続できる。 詳しくは、パブリックネットワークのロードバランサーのポート範囲を設定する を参照してください。
開始前に
プライベートパス NLB が正しく設定されていることを確認するために、以下の要件を確認してください:
- VPCをお持ちでない場合は、プライベートパス NLB を作成したいのと同じリージョンで VPC を作成してください。 プライベート・パス NLB とプライベート・パス・サービスに同じ VPC リージョンを使用します。
- プライベートパスNLBを作成する前に、仮想サーバーインスタンスを作成します。 これにより、完全に作動することが保証される。
- 選択したVPCに、少なくとも1つのサブネットが存在することを確認してください。
コンソール、CLI、API、または Terraform を使って Private Path ネットワークロードバランサーを作成できます。
コンソールでプライベートパスのネットワークロードバランサーを作成する
IBM Cloud コンソールで Network Load Balancer for VPC を作成および設定するには、以下の手順に従ってください
-
ブラウザーから、IBM Cloud コンソールを開き、アカウントにログインします。
-
ナビゲーションメニューの
選択し、 インフラストラクチャ
> ネットワーク > ロードバランサーをクリックします。
-
ページ右上の**「作成」**をクリックします。
-
ロード・バランサー・タイプの場合は、 「ネットワーク・ロード・バランサー (NLB) (Network Load Balancer (NLB))」 タイルを選択します。
-
「ロケーション」セクションで、必要に応じて以下のフィールドを編集します。
- ジオグラフィー: ロード・バランサーを作成するジオグラフィー。
- リージョン (Region): ロード・バランサーを作成するリージョン。
-
「詳細」セクションで、以下の情報を入力します。
- 名前 :ロードバランサーの名前を入力します(例:
private-path-load-balancer)。 - リソース・グループ: ロード・バランサーのリソース・グループを選択します。
- タグ :(任意)リソースを整理したり見つけたりするのに役立つタグを追加してください。 後でさらにタグを追加できます。 詳しくは、『タグの処理』を参照してください。
- アクセス管理タグ: (オプション) アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は
key:valueのみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。 - 仮想プライベート・クラウド: ロード・バランサーをデプロイする VPC を選択します。
- サブネット :サブネットを選択してください。
- タイプ:プライベート・パスを選択します。
- 名前 :ロードバランサーの名前を入力します(例:
-
Back-end poolsセクションで、Create pool をクリックし、以下の情報を指定し、Create をクリックします。 1 つ以上のプールを作成できます。
-
プールに「
private-path-pool」のような一意の名前を入力してください。 -
このプール内のインスタンスのプロトコルを選択します。 プールのプロトコルは、その関連リスナーのプロトコルと一致している必要があります。 例えば、リスナーが TCP である場合、プールのプロトコルは TCP にする必要があります。
-
以下のオプションから、ロード・バランシング・アルゴリズムである方式を選択します。
- ラウンドロビン - 各インスタンスに要求を順番に転送します。 すべてのインスタンスが、ほぼ同数のクライアント接続を受信します。
- 重みづけしたラウンドロビン - 割り当てられた重みに比例して各インスタンスに要求を転送します。 例えば、インスタンス A、B、および C があり、それらの重みが 60、60、および 30 に設定されている場合、インスタンス A と B は同数の接続を受信し、インスタンス C はその半数の接続を受信します。
-
セッション維持を選択し、 「なし」 を選択します。
-
以下のヘルス・チェック・オプションを入力します。
-
ヘルスチェックパス- ヘルスチェックパスは、ヘルスチェックプロトコルとして「 HTTP 」を選択した場合にのみ適用されます。 ヘルス・チェック・パスは、プール内のインスタンスに HTTP ヘルス・チェック要求を送信するためにロード・バランサーが使用する URL を指定します。 デフォルトでは、ヘルス・チェックはルート・パス (
/) に送信されます。 -
ヘルス・プロトコル - ロード・バランサーがプール内のインスタンスにヘルス・チェック・メッセージを送信するために使用するプロトコル。
-
ヘルスポート(オプション)- ヘルスチェックのリクエストを送信するポート。 デフォルトでは、ヘルス・チェックは、インスタンスにトラフィックを送信するときと同じポートで送信されます。
-
間隔(秒)- 2回の連続したヘルスチェックの実行間隔(秒単位)。
-
タイムアウト(秒)- ヘルスチェックのリクエストに対する応答をシステムが待機する最大時間。
-
最大再試行回数- インスタンスが「正常でない」と判定されるまでに、ロードバランサーが実行するヘルスチェックの最大試行回数。 デフォルトでは、ヘルス・チェックが 2 回失敗すると、インスタンスは正常ではないと見なされます。
ロード・バランサーは正常でないインスタンスへの接続の送信を停止しますが、それらのインスタンスの正常性のモニターを続け、インスタンスが再び正常と判断された場合 (つまり、ヘルス・チェックの試行が 2 回連続で成功した場合) には、そのインスタンスの使用を再開します。
プール内のインスタンスの状態が「不健全」と表示されているにもかかわらず、アプリケーションが正常に動作していると判断される場合は、ヘルスプロトコルとヘルスパスの値を再確認してください。 また、インスタンスに関連付けられているセキュリティー・グループも参照して、ロード・バランサーとインスタンスの間のトラフィックがルールで許可されていることを確認してください。
-
-
-
(任意)[ リクエスト設定 ] を選択して、ヘルスチェックのリクエスト値をカスタマイズします。 値が指定されていない場合は、デフォルト設定が使用されます。
- リクエストメソッド :
GETまたはPOSTのいずれかを選択してください。 どちらのメソッドについても、リクエストヘッダーをカスタマイズできます。POSTメソッドを使用する際、必要に応じてリクエスト本文をカスタマイズすることができます。 - リクエスト本文 :ヘルスチェックに使用する HTTP のリクエスト本文を含めてください。 特に指定がない場合、ヘルスチェックのリクエストにはリクエスト本文が含まれません。
- ホストヘッダー :リクエストが HTTP/1.1 プロトコルを使用するように、ホストヘッダーを含めます。 それ以外の場合は、システムはデフォルトで HTTP/1.0 を使用します。
- その他のリクエストヘッダーを追加する :1つ以上のリクエストヘッダーを追加します。
- ヘッダー名 :
GETリクエストメソッドの場合、content-type、accept、authorization、cookie、origin、referrer、またはuser-agentのいずれかを選択してください。POSTのリクエストメソッドについては、content-type、content-length、application-json、またはaccept-encodingのいずれかを選択してください。 - 値 :指定されたヘッダー名に対応する値を入力してください。
プライベートパス・ネットワーク・ロードバランサー(PPNLB)において、GET APIのレスポンスにヘルスモニターのリクエストおよびレスポンスフィールドが含まれないという既知の問題があります。
- リクエストメソッド :
-
(オプション)[ 応答設定 ] を選択して、ヘルスチェックの応答値をカスタマイズします。 値が指定されていない場合は、デフォルト設定が使用されます。
-
レスポンス本文 :レスポンス本文を入力してください。
-
応答コード :100~599の範囲内で、カンマ区切りで複数の値を指定できます。 範囲を指定するには、XX を使用してください。 例えば、 2XX では、200~299の範囲です。
HTTP データをプレーンテキストで送信するため、傍受される可能性があり、安全ではないと見なされます。プロトコルとしては、
httpの代わりにhttpsを使用することを推奨します。 詳細については、「 HTTP が安全でないのはなぜですか? 」をご覧ください。ロード・バランサーは正常でないインスタンスへの接続の送信を停止しますが、それらのインスタンスの正常性のモニターを続け、インスタンスが再び正常と判断された場合 (つまり、ヘルス・チェックの試行が 2 回連続で成功した場合) には、そのインスタンスの使用を再開します。
プール内のインスタンスが正常でないのに、アプリケーションが正常に実行されている場合は、ヘルス・プロトコルとヘルス・パスの値を再確認してください。 また、インスタンスに関連付けられているセキュリティー・グループも参照して、ロード・バランサーとインスタンスの間のトラフィックがルールで許可されていることを確認してください。
-
-
バックエンド・プールにメンバーをアタッチするのは、今すぐでも、プライベート・パスNLBを作成した後でも可能です。 バック・エンド・プールのテーブル行の Attach をクリックします。 以下の情報を指定してから、「 添付 」をクリックしてください。
-
メンバータイプ :仮想サーバーインスタンス、予約IP、またはアプリケーションロードバランサーをメンバーとして追加します。 仮想サーバーインスタンスの場合は、各タイプを個別にアタッチする。 予約IPメンバーは、ベアメタルサーバー、仮想サーバーインスタンスのプライマリーまたはセカンダリーインターフェース、または仮想ネットワークインターフェースにバインドすることができる。
プライベートパスNLBプールにALBをメンバーターゲットとしてアタッチした場合、そのプールに他のメンバーを追加することはできません。
-
サブネット: サブネットを選択します。
-
サーバーのリストから、バックエンド・プールに接続したいサーバーを選択します。 各サーバー・ポートに有効な値を指定していることを確認してください。
「Your Private Path」ロードバランサーはリージョン単位の可用性を提供し、単一のサブネットが選択された場合でも、ゾーン障害に対して耐性を備えています。
ゾーン障害に対する回復力を確保するために、複数のPrivate Pathロードバランサーを作成したり、複数のサブネットを指定したりする必要はありません。 サブネットの選択はロードバランサーに関連付けられたIPアドレスだけに影響します。 バックエンドプールにアタッチできる仮想サーバーインスタンス数の詳細については、「 Private Pathネットワークロードバランサーのクォータとサービス制限 」を参照してください。
バックエンドのプールテーブルで編集したいメンバーの行にある
をクリックすると、添付メンバーを編集できます。 削除したいメンバーの行にあるマイナスアイコンを選択することで、添付メンバーを削除することもできます。 -
-
フロントエンドリスナーセクションで 「作成」 をクリックし、以下の情報を指定して 「作成」 をクリックします。 1 つ以上のリスナーを作成できます。
- デフォルトのバックエンドプール- このリスナーがトラフィックを転送するデフォルトのバックエンドプール。
- リスナープロトコル- 着信リクエストを受信するために使用するプロトコル( TCP )。
- リスナーポート- リクエストを受信するリスニングポート。
-
注文の概要を確認し、「 作成 」をクリックして注文を完了してください。
CLIからPrivate Pathネットワークロードバランサーを作成する
次の例は、CLIからプライベート・パスNLBを作成する例を示している。 この例では、プライベートパス NLB は、ポート 9090 でリスニングしている TCP サーバーを実行している 1 つの VPC 仮想サーバーインスタンス(ID: 0716_6acdd058-4607-4463-af08-d4999d983945 )の前に配置されています。 ロード・バランサーのフロントエンド・リスナーにより、TCP サーバーへの安全なアクセスが可能になります。
CLIからプライベートパスNLBを作成するには、以下の手順に従ってください:
-
CLI 環境をセットアップします。
-
CLI を使用してアカウントにログインしてください。 パスワードを入力すると、使用するアカウントと地域を選択するよう求められます:
ibmcloud login --sso -
プライベートパス NLB を作成する:
ibmcloud is load-balancer-create ppnlb-test private-path --subnet cli-subnet-1 --family network出力例:
Creating load balancer ppnlb-test in resource group under account IBM Cloud Network Services as user test@ibm.com... ID Name ppnlb-test CRN Family Network Host name Subnets ID Name cli-subnet-2 Public IPs Reserved IPs ID Address Subnet Provision status create_pending Operating status offline Is public false Is private path true Listeners Pools ID Name my-pool Resource group ID Name Default Created 2025-01-10T15:07:53+05:30 Availability region Instance Group Supported false SourceIP Session Supported false Security groups supported false UDP Supported false Access mode private_path -
プールを作成します。
ibmcloud is load-balancer-pool-create my-pool pp-nlb-test round_robin tcp 20 2 5 http出力例:
Creating pool my-pool of load balancer my-pool under account IBM Cloud Network Services as user test@ibm.com... ID Name my-pool Protocol tcp Algorithm round_robin Instance group ID Name - - Proxy protocol disabled Health monitor Type Port Health monitor URL Delay Retries Timeout http - / 20 2 5 Session persistence type Type Cookie name - - Members Provision status create_pending Created 2025-01-10T20:44:57+05:30 -
メンバーを作成します。
ibmcloud is load-balancer-pool-member-create test-ppnlb-1 test 3000 my-targetユーザーは、仮想サーバーインスタンス、予約IP、またはアプリケーションロードバランサー(ALB)をターゲットとしてプライベートパスNLBを作成できます。
my-targetをmy-instanceまたはmy-albとしてメンバーを作成する。出力例:
Creating member of pool test under account IBM Cloud Network Services as user test@ibm.com... ID test Port 3000 Target 10.240.66.14 Weight 50 Health unknown Created 0001-01-01T05:53:28+05:53 Provision status create_pending -
リスナーを作成します。
ibmcloud is load-balancer-listener-create ppnlb-test --port-min 443 --protocol tcp出力例:
Creating listener of load balancer ppnlb-test under account IBM Cloud Network Services as user test@ibm.com... ID Certificate instance - Connection limit - Ports 443 Idle connection timeout - Protocol tcp Default pool - Accept proxy protocol false Provision status create_pending Created 2025-01-10T21:02:37+05:30 -
ロード・バランサーの詳細を表示します。
ibmcloud is load-balancer ppnlb-test出力例:
Getting load balancer ppnlb-test under account IBM Cloud Network Services as user test@ibm.com... ID Name ppnlb-test CRN Family Network Host name Subnets ID Name nlb Public IPs Reserved IPs ID Address Subnet Provision status active Operating status online Is public false Is private path true Listeners Pools ID Name my-pool Resource group ID Name Default Created 2025-01-10T15:07:53+05:30 Availability region Instance Group Supported false SourceIP Session Supported false Security groups supported false UDP Supported false Access mode private_path
API を使用したネットワークロードバランサーの作成
以下の例では、APIを使用してプライベート・パスNLBを作成している。 ここで詳しく説明する NLB は、ポート 80 で listen する Web アプリケーションを実行する 2 つの VPC 仮想サーバー・インスタンス (192.168.100.5 および 192.168.100.6) の前にあります。 このアプリケーションにはフロントエンドのリスナーが搭載されており、 HTTPS を使用することで、Webアプリケーションへの安全なアクセスが可能になります。
この例では、API を使用して VPC、サブネット、およびインスタンスをプロビジョニングするための 前提条件となる手順を 省略しています。
APIを使用してプライベート・パスNLBを作成するには、以下の手順に従ってください:
-
API 環境をセットアップします。
-
API コマンドで使用する以下の値を変数に格納します。
subnetId-まずサブネットを取得してから、変数にデータを設定します。
export subnetId=<your_subnet_id>targetId- 次に、サブネットと同じVPCにある仮想サーバーインスタンス、予約IP、またはアプリケーションロードバランサー(ALB)を取得する:
export targetId=<your_target_id> -
リスナー、プール、および接続されたサーバーインスタンス(プールメンバー)を備えたプライベートパス NLB を作成します:
curl -H "Authorization: Bearer $iam_token" -X POST "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \ -d '{ "is_public": false, "is_private_path": true, "name": "my-load-balancer", "listeners": [ { "default_pool": { "name": "my-pool" }, "port_min": 80, "port_max": 80, "protocol": "tcp" } ], "subnets": [ { "id" : "$subnetId" } ], "pools": [ { "algorithm": "round_robin", "health_monitor": { "delay": 2, "max_retries": 1, "timeout": 1, "port": 80, "type": "tcp" }, "name": my-pool", "protocol": "tcp", "members" : [ { "port" : 80, "target" : {"id" : "$targetId"} } ] } ], "profile": { "name": "network-private-path" } }'出力例:
{ "availability": "region", "created_at": "2023-09-22T21:49:26.000Z", "crn": "crn:v1:bluemix:public:is:au-syd:a/b21af5a9874242b7851e780943d595a9::load-balancer:r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "hostname": ".invalid", "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "id": "r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "instance_groups_supported": false, "is_private_path": true, "is_public": false, "listeners": [ { "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/listeners/r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47", "id": "r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47" } ], "logging": { "datapath": { "active": false } }, "name": "my-load-balancer", "operating_status": "offline", "pools": [ { "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/pools/r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679", "id": "r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679", "name": "my-pool" } ], "private_ips": [ { "address": "10.245.0.4", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-e21d477e-3e71-47fc-aec4-9703766cf652", "id": "02h7-e21d477e-3e71-47fc-aec4-9703766cf652", "name": "nugget-ounce-stability-vocation", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.5", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-1910c529-dadd-4960-aba5-3c4604f99f56", "id": "02h7-1910c529-dadd-4960-aba5-3c4604f99f56", "name": "impostors-synopses-uncivic-livable", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.6", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce", "id": "02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce", "name": "unmade-garnish-preview-defame", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.7", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-ae009701-8301-420c-862e-a9ec1f79214c", "id": "02h7-ae009701-8301-420c-862e-a9ec1f79214c", "name": "slacking-scuttle-stonework-reptile", "resource_type": "subnet_reserved_ip" } ], "profile": { "family": "network", "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancer/profiles/network-private-path", "name": "network-private-path" }, "provisioning_status": "create_pending", "public_ips": [], "resource_group": { "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/297468d87ca047c5be28368e52b055ce", "id": "297468d87ca047c5be28368e52b055ce", "name": "Default" }, "resource_type": "load_balancer", "route_mode": false, "security_groups": [], "security_groups_supported": false, "source_ip_session_persistence_supported": false, "subnets": [ { "crn": "crn:v1:bluemix:public:is:au-syd-1:a/b21af5a9874242b7851e780943d595a9::subnet:02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "id": "02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "name": "my-subnet", "resource_type": "subnet" } ], "udp_supported": false }次の手順で使用するために、ロード・バランサーの ID を保存します。 例えば、変数
lbidなどに保存してください。lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727 -
プライベートパス・ロードバランサーの詳細を確認するには:
curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"プロビジョニングに時間をかける。 ロード・バランサーの準備ができると、次の出力例に示されているように、
onlineおよびactiveの状況に設定されます。{ "availability": "region", "created_at": "2023-09-22T21:49:26.000Z", "crn": "crn:v1:bluemix:public:is:au-syd:a/b21af5a9874242b7851e780943d595a9::load-balancer:r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "hostname": ".invalid", "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "id": "r026-d-86b51a9e-a058-4317-beed-8ee581a1f413", "instance_groups_supported": false, "is_private_path": true, "is_public": false, "listeners": [ { "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/listeners/r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47", "id": "r026-00b18a00-d860-4f4d-bb84-e29ffc2d8e47" } ], "logging": { "datapath": { "active": false } }, "name": "my-load-balancer", "operating_status": "only", "pools": [ { "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancers/r026-d-86b51a9e-a058-4317-beed-8ee581a1f413/pools/r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679", "id": "r026-f25e3f26-3aa6-4aef-9108-1587d3ac6679", "name": "my-pool" } ], "private_ips": [ { "address": "10.245.0.4", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-e21d477e-3e71-47fc-aec4-9703766cf652", "id": "02h7-e21d477e-3e71-47fc-aec4-9703766cf652", "name": "nugget-ounce-stability-vocation", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.5", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-1910c529-dadd-4960-aba5-3c4604f99f56", "id": "02h7-1910c529-dadd-4960-aba5-3c4604f99f56", "name": "impostors-synopses-uncivic-livable", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.6", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce", "id": "02h7-a7e55150-5b02-426f-b1dc-aa136effc6ce", "name": "unmade-garnish-preview-defame", "resource_type": "subnet_reserved_ip" }, { "address": "10.245.0.7", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02/reserved_ips/02h7-ae009701-8301-420c-862e-a9ec1f79214c", "id": "02h7-ae009701-8301-420c-862e-a9ec1f79214c", "name": "slacking-scuttle-stonework-reptile", "resource_type": "subnet_reserved_ip" } ], "profile": { "family": "network", "href": "https://au-syd.iaas.cloud.ibm.com/v1/load_balancer/profiles/network-private-path", "name": "network-private-path" }, "provisioning_status": "active", "public_ips": [], "resource_group": { "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/297468d87ca047c5be28368e52b055ce", "id": "297468d87ca047c5be28368e52b055ce", "name": "Default" }, "resource_type": "load_balancer", "route_mode": false, "security_groups": [], "security_groups_supported": false, "source_ip_session_persistence_supported": false, "subnets": [ { "crn": "crn:v1:bluemix:public:is:au-syd-1:a/b21af5a9874242b7851e780943d595a9::subnet:02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "href": "https://au-syd.iaas.cloud.ibm.com/v1/subnets/02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "id": "02h7-ee9114e7-28d4-4416-bbfa-f274dbd49f02", "name": "my-subnet", "resource_type": "subnet" } ], "udp_supported": false }
TerraformでPrivate Pathネットワークロードバランサーを作る
次の例では、Terraformを使ってPrivate Pathネットワークのロードバランサーを作成します:
-
プライベートパス NLB を作成する:
resource "ibm_is_lb" "example_ppnlb" { name = "example-ppnlb" subnets = [ibm_is_subnet.example_subnet.id] profile = "network-private-path" type = "private_path" } -
オプションで、プライベート・パスNLB用のプールを作成する:
resource "ibm_is_lb_pool" "example_pool" { name = "example-pool" lb = [ibm_is_lb.example_ppnlb.id] algorithm = "round_robin" protocol = "tcp" health_delay = 2 health_retries = 2 health_timeout = 1 health_type = "tcp" } -
オプションとして、ALBまたは仮想サーバーインスタンスIDをプライベートパスNLBのプールメンバーとしてターゲットにします:
resource "ibm_is_lb" "example_alb" { name = "example-alb" subnets = [ibm_is_subnet.example_subnet.id] }resource "ibm_is_lb_pool_member" "example_member" { lb = [ibm_is_lb.example_ppnlb.id] pool = element(split("/", ibm_is_lb_pool.example_pool.id), 1) port = 8080 weight = 20 target_id = [ibm_is_lb.example_alb.id] } -
オプションとして、プライベートパスNLBのプールメンバーとして予約IPをターゲットにする:
resource "ibm_is_subnet_reserved_ip" "example" { subnet = ibm_is_subnet.example.id }resource "ibm_is_lb_pool_member" "example" { lb = ibm_is_lb.example_ppnlb.id pool = element(split("/", ibm_is_lb_pool.example.id), 1) port = 8080 weight = 20 target_id = ibm_is_subnet_reserved_ip.example.id }
Terraformリソースに関するドキュメントについては、 Terraform Registry を参照してください。