IBM Cloud Docs
アプリケーション・ロード・バランサーの作成

アプリケーション・ロード・バランサーの作成

IBM Cloud® Application Load Balancer for VPC (ALB) を作成して、複数インスタンスにインバウンド・トラフィックを分散できます。 IBM は、仮想サーバーインスタンス、ベアメタルサーバーインスタンス、 を介して接続された インスタンスなど、デバイスIPアドレスでアプリケーションロードバランサーに到達可能なその他のデバイスをサポートしています。 IBM Cloud Direct Link Power Systems™ Virtual Server

コンソールでアプリケーションロードバランサーを作成する

ALB を作成するには、以下のようにします。

  1. ブラウザから、 IBM Cloud コンソールを開き、アカウントにログインします。

  2. ナビゲーションメニュー ナビゲーションメニューアイコン を選択し、インフラストラクチャー VPCアイコン > ロードバランサー をクリックします。

  3. ロードバランサー]ページで[ Create +]をクリックします。

  4. ロード・バランサー・タイプの場合は、「Applicatoin Load Balancer (ALB)」タイルを選択します。

  5. 「ロケーション」セクションで、必要に応じて以下のフィールドを編集します。

    • 地域: ロード・バランサーを作成する地域を示します。
    • リージョン: ロード・バランサーを作成するリージョンを示します。
  6. 「詳細」セクションで、以下の情報を入力します。

    • 名前: ロード・バランサーの名前 (my-load-balancer など) を入力します。

    • リソース・グループ: ロード・バランサーのリソース・グループを選択します。

    • タグ (オプション)タグを追加して、リソースの整理や検索に役立ちます。 後でさらにタグを追加できます。 詳しくは、『タグの処理』を参照してください。

    • アクセス管理タグ: (オプション) アクセス管理タグをリソースに追加して、アクセス制御関係の編成に役立てます。 サポートされるアクセス管理タグの形式は key:value のみです。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。

    • アプリケーション・ロード・バランサー (ALB) タイルを選択します。

    • 仮想プライベート・クラウド: VPC を選択します。

    • タイプ: ロード・バランサー・タイプを選択します。

      • パブリック・ロード・バランサーには、パブリック IP アドレスがあります。つまり、クライアントからの要求をインターネットを介して転送できます。
      • プライベート・ロード・バランサーには、プライベート IP アドレスがあります。つまり、プライベート・ロード・バランサーには、同じリージョンで同じ VPC のプライベート・サブネット上の内部クライアントしかアクセスできません。
    • DNS タイプとして、 「パブリック」 または 「プライベート」 を選択します。 プライベートDNSゾーンは、 IBM Cloud、アカウント内で明示的に許可されたネットワークからのみ、またはクロスアカウントアクセスでのみ解決可能です。

      プライベート・タイプの場合のみ、「バインド +」をクリックして DNS インスタンスとゾーンの情報を入力し、 「バインド」 をクリックします。

    • サブネット: ロード・バランサーが作成されるサブネットを選択します。 アプリケーションの可用性を最大化するには、別のゾーンのサブネットを選択します。

      ALB ごとに 15 個を超えるサブネットを割り当てることはできません。

  7. 「バックエンド・プール」セクションで、プールの作成 をクリックし、バックエンド・プールを作成するための以下の情報を指定します。 1 つ以上のプールを作成できます。

    • 名前: プールの名前 (my-pool など) を入力します。

    • プロトコル: このプール内のインスタンスのプロトコルを選択します。 プールのプロトコルは、その関連リスナーのプロトコルと一致している必要があります。 例えば、リスナーで HTTPS プロトコルまたは HTTP プロトコルが選択されている場合、プールのプロトコルは HTTP にする必要があります。 同様に、リスナー・プロトコルが TCP である場合、プールのプロトコルは TCP にする必要があります。

    • セッション維持率: ユーザー・セッション中にすべての要求が同じインスタンスに送信されるかどうかを選択します。

    • メソッド: ロード・バランサーでプール内のインスタンスにトラフィックを分散させる方法を選択します。

      • ラウンドロビン: 各インスタンスに要求を順番に転送します。 すべてのインスタンスが、ほぼ同数のクライアント接続を受信します。
      • 重みづけしたラウンドロビン: 割り当てられた重みに比例して各インスタンスに要求を転送します。 例えば、インスタンス A、B、および C があり、それらの重みが 6060、および 30に設定されているとします。 インスタンス A と B は等しい数の接続を受信し、インスタンス C はその半数の接続を受信します。
      • 最小接続数: 現時点で接続数が最小のインスタンスに要求を転送します。
    • ヘルス・チェック: ロード・バランサーがインスタンスの正常性を検査する方法を構成します。

      • ヘルス・チェック・パス: ヘルス・チェック・パスは、ヘルス・チェック・プロトコルとして HTTP が選択されている場合にのみ適用されます。 ヘルス・チェック・パスは、プール内のインスタンスに HTTP ヘルス・チェック要求を送信するためにロード・バランサーが使用する URL を指定します。 デフォルトでは、ヘルス・チェックはルート・パス (/) に送信されます。
      • ヘルス・プロトコル: ロード・バランサーがプール内のインスタンスにヘルス・チェック・メッセージを送信するために使用するプロトコル。
      • ヘルス・ポート: ヘルス・チェック要求の送信で使用するポート。 デフォルトでは、ヘルス・チェックは、インスタンスにトラフィックを送信するときと同じポートで送信されます。
      • 間隔: 連続する 2 つのヘルス・チェック試行の間隔 (秒単位)。 デフォルトでは、ヘルス・チェックは 5 秒間隔で送信されます。
      • タイムアウト(秒) :システムがヘルスチェック要求からの応答を待つ最大時間。 デフォルトでは、ロード・バランサーは応答を 2 秒待ちます。
      • 最大再試行回数: インスタンスを正常でないと見なすまでにロード・バランサーが試行するヘルス・チェックの最大数。 デフォルトでは、ヘルス・チェックが 2 回失敗すると、インスタンスは正常ではないと見なされます。

      ロード・バランサーは正常でないインスタンスへの接続の送信を停止しますが、それらのインスタンスの正常性のモニターを続け、インスタンスが再び正常と判断された場合 (つまり、ヘルス・チェックの試行が 2 回連続で成功した場合) には、そのインスタンスの使用を再開します。

      プール内のインスタンスが正常でないのに、アプリケーションが正常に実行されている場合は、ヘルス・プロトコルとヘルス・パスの値を再確認してください。 また、インスタンスに関連付けられているセキュリティー・グループも参照して、ロード・バランサーとインスタンスの間のトラフィックがルールで許可されていることを確認してください。

  8. 作成 をクリックして、バックエンド・プールを作成します。

    バックエンド・プールの作成後に、サーバー・インスタンスを添付できます。

  9. サーバー・インスタンスを新規プールに追加するには、表の サーバー・インスタンス 列で サーバーの接続 をクリックします。

    • 仮想サーバー・インスタンスやベア・メタル・サーバーなどの VPC デバイスをプールに追加するには、VPC デバイス タブを選択します。 インスタンスごとに、以下の情報を指定します。

      • 選択するインスタンスがあるサブネットを 1 つ以上選択します。

      • インスタンスを選択します。 インスタンスに複数のインターフェースがある場合は、必ず、正しい IP アドレスを選択してください。

      • インスタンスにトラフィックを送信するためのポートを指定します。

      • プールで**「重みづけしたラウンドロビン」**メソッドが使用される場合、インスタンスごとに重みを割り当てます。

        0 の重みをインスタンスに割り当てることは、そのインスタンスに新しい接続が転送されないことを意味しますが、現在の接続がアクティブである間は、既存のトラフィックは流れ続けます。 重み 0 を使用すると、インスタンスを正常に停止し、サービス・ローテーションから削除するのに役立ちます。

      • ポートと重みの構成をクリックし、トラフィックがインスタンスに送信されるポートを指定します。

    • IBM Power Systems Virtual Server に含まれるサーバーなど、他のサーバー・インスタンスをバックエンド・プールに接続するには、その他 タブを選択してから、さらに追加をクリックします。 インスタンスごとに、以下の情報を指定します。

      • デバイスのプライベート IP アドレスを指定します。

      • インスタンスにトラフィックを送信するためのポートを指定します。

      • プールで**「重みづけしたラウンドロビン」**メソッドが使用される場合、インスタンスごとに重みを割り当てます。

        0 の重みをインスタンスに割り当てることは、そのインスタンスに新しい接続が転送されないことを意味しますが、現在の接続がアクティブである間は、既存のトラフィックは流れ続けます。 重み 0 を使用すると、インスタンスを正常に停止し、サービス・ローテーションから削除するのに役立ちます。

    • 添付 をクリックして、サーバー・インスタンスをバックエンド・プールに接続します。

  10. 「フロントエンド・リスナー」セクションで、リスナーの作成 をクリックし、以下の情報を指定してリスナーを作成します。 1 つ以上のリスナーを作成できます。

    • プロトコル: 着信要求を受信するために使用するプロトコル。
    • プロキシー・プロトコル: フロントエンド・リスナーがプロキシー・プロトコル・トラフィックを受け入れることを許可するかどうかを選択します。
    • ポート: 要求を受信するための listen ポート。
    • バックエンド・プール: このリスナーがトラフィックを転送するデフォルトのバックエンド・プール。
    • 最大接続数 (オプション): リスナーが許可する同時接続の最大数。
    • IAM 認証 : HTTPS がこのリスナーの選択プロトコルである場合、インスタンスまたはCRNのいずれかによって、IAM認証を指定する必要があります。
    • Secrets Manager: HTTPS がこのリスナーの選択されたプロトコルである場合、シークレットマネージャーを選択または作成する必要があります。
    • SSL 証明書: このリスナーで選択されたプロトコルが HTTPS である場合、SSL 証明書を選択する必要があります。 ロード・バランサーに SSL 証明書にアクセスする権限があることを確認してください。
    • タイムアウト (秒) (オプション): アイドル・タイムアウト期間が経過するまでにデータが送信または受信されなかった場合に、ロード・バランサーが接続を閉じるまでの最大タイムアウト。 最小タイムアウト値と最大タイムアウト値は、それぞれ 50 秒と 2 時間です。
  11. 作成 をクリックして、フロントエンド・リスナーを作成します。

  12. 「セキュリティー・グループ」セクションで、ロード・バランサーに接続するセキュリティー・グループを選択するか、作成 をクリックして ALB に接続する新規セキュリティー・グループを作成します。

    セキュリティー・グループでロード・バランシング・トラフィック (リスナー・ポート、バックエンド・ポート、およびヘルス・チェック・ポート) が許可されていることを確認します。 セキュリティー・グループを指定しない場合は、VPC のデフォルトのセキュリティー・グループが代わりに関連付けられます。

  13. プールとリスナーの作成を完了したら、**「ロード・バランサーの作成 (Create load balancer)」**をクリックします。

  14. 既存のロード・バランサーの詳細を表示するには、**「ロード・バランサー」**ページで、ロード・バランサーの名前をクリックします。

  15. オプションとして、既存のプールに対してバックアップを作成することができます。 これにより、メンバーに障害が発生した場合でも、バックアッププールがトラフィックを管理することができます。 そのためには、フェイルセーフポリシーを作成する必要があります

    ロードバランサーには、少なくとも1つのプールがすでに存在しているはずです。

    • ロードバランサーの状態が 「アクティブ」 に変わったら 、「バックエンドプール」タブを選択します。
    • プール・リスト・ページで、 Editをクリックし、以下の情報を指定する:
      • 操作 :バックアッププールを作成するには、 [前へ] を選択します。 これにより 、ターゲットセクションがアクティブになります。
      • ターゲット: 互換性のあるプールのリストからプールを選択して、バックアッププールを作成します。
  16. HTTP リスナーから HTTPS リスナーにトラフィックをリダイレクトする場合は、HTTPS リダイレクト設定を使用して HTTP リスナーを作成できます。

    レイヤー 7 ロード・バランシング・ポリシーは、ここで定義した設定を上書きします。

    そのためには、以下のようにします。

    HTTPS リダイレクトを使用して新しい HTTP リスナーを作成するには、既存の HTTPS リスナーが必要です。

    • ロード・バランサーの状況が**「アクティブ」に変わった後に、「フロントエンド・リスナー」**タブをクリックします。
    • リスナー・リスト・ページで、**「作成」**をクリックしてから、以下の情報を指定します。
      • プロトコル: ご使用の HTTP プロトコルを選択します。
      • ポート: 要求を受信するための listen ポートを選択します。
      • 最大接続数 (オプション): リスナーが許可する同時接続の最大数を定義します。
      • HTTPS リダイレクト (HTTPS redirect): トグル・ボタンをクリックして HTTPS リダイレクト構成を有効にしてから、以下の HTTPS リダイレクト設定を指定します。
        • HTTPS リスナー: 現在の HTTP リスナーの着信トラフィックのリダイレクト先であるターゲット HTTPS リスナー。 accept_proxy_proxy 値が HTTP リスナーと同じ HTTPS リスナーのリストのみが表示されることに注意してください。
        • リダイレクト URI (Redirect URI) (オプション): 要求がリダイレクトされる URL。
        • 状況コード: ロード・バランサーから返される応答の状況コード。
  17. 特定の条件に基づいて、HTTP または HTTPS フロントエンド・リスナーに対する特定の着信トラフィックをリダイレクト、転送、または拒否する場合は、レイヤー 7 のポリシーを構成します。

    • ロード・バランサーの状況が**「アクティブ」に変わった後に、ナビゲーションの「フロントエンド・リスナー」をクリックし、作成したリスナーの「ポリシー」**列の値をクリックします。
    • 「ポリシー」ページで、**「ポリシーの追加 (Add policy)」**をクリックし、以下の情報を指定してポリシーを作成します。 複数のポリシーを作成できます。
      • 名前: ポリシーの名前 (my-policy など) を入力します。 この名前はリスナー内で固有でなければなりません。
      • アクション: ポリシーのすべてのルールが一致したときに実行するアクション。 403 応答で要求を拒否するか、構成した URL および応答コードで要求をリダイレクトするか、HTTP リスナーから HTTPS リスナーにトラフィックをリダイレクトするか、特定のバックエンド・プールに要求を転送することができます。 どのポリシーのルールにも一致しない着信要求は、リスナーのデフォルトのバックエンド・プールに転送されます。
      • 優先順位: 同じアクション・タイプの中では、ポリシーは優先順位の昇順に評価されます。 優先順位に関係なく、トラフィックを拒否するポリシーが、常に最初に評価されます。 次に、トラフィックをリダイレクトするポリシーが評価され、その後に、トラフィックを転送するポリシーが評価されます。
      • リダイレクト: アクションを「リダイレクト」に設定する場合に、要求をリダイレクトする URL。 URL または URI のパラメータのどちらかを指定する必要があります。 URL を使用すると、すべての受信トラフィックがこの URL にリダイレクトされます。 URI パラメータを使用する場合、パラメータの受信値を使用して、受信トラフィック要求の値を保持できます。 これには、プロトコル、ポート、ホスト、パス、クエリが含まれます。 URI パラメータのデフォルト値は、元の受信値と同じになります。 入力された値を保持するには、次のように指定します。{protocol}{port}{host}{path} 、 そして {query}。 たとえば、受信リクエストのホストが ibm.com の場合、デフォルト値は {host} 入ってくるものと同じ ibm.com 価値。
      • 状況コード: アクションを「リダイレクト」に設定する場合に、ロード・バランサーから返す応答の状況コード。
      • 転送: アクションを「プールに転送 (Forward to pool)」に設定する場合に、要求を転送する仮想サーバー・インスタンスのバックエンド・プール。
    • 「ポリシー」ページで、以下の構成を使用して HTTPS リダイレクト・ポリシーを作成することもできます。
      • 名前: ポリシーの名前 (my-policy など) を入力します。 この名前はリスナー内で固有でなければなりません。
      • 処置: HTTPS へのリダイレクト オプションを選択します。
      • HTTPS リスナー (HTTPS listener): 現在の HTTP リスナーからのトラフィックがリダイレクトされるターゲット HTTPS リスナー。 accept_proxy_proxy 値が HTTP リスナーと同じ HTTPS リスナーのリストのみが表示されることに注意してください。
      • リダイレクト URI (Redirect URI) (オプション): 要求がリダイレクトされる URL。
      • 状況コード: ロード・バランサーから返される応答の状況コード。
    • 「ポリシー」ページで、対象ポリシーの**「ルールの追加」をクリックします。 ポリシーにルールが存在する場合は、「ルール」**列の値をクリックして、さらにルールを追加します。
    • 「ルール」ウィンドウで**「ルールの追加」**をクリックし、以下の情報を指定してルールを作成します。 1 つのポリシーに複数のルールを作成した場合、ポリシーは、そのすべてのルールが一致した場合にのみ適用されます。
      • 条件: ルールを評価する条件を指定します。
      • タイプ: ルールで評価する情報のタイプ。要求の発信元ホストの名前、HTTP ヘッダー・フィールド、または URL 内のパス。
      • : 突き合わせる値。
      • キー: ルール・タイプが「ヘッダー」の場合に、評価する HTTP ヘッダー・フィールドの名前。 例えば、HTTP ヘッダー内の cookie と突き合わせるには、キーに**「Cookie」**と入力します。

CLIからアプリケーションロードバランサーを作成する

以下の例は、CLI を使用して Application Load Balancer for VPC (ALB) を作成する方法を示しています。 この例では、ポート 9090 で listen する TCP サーバーを実行する 1 つの VPC 仮想サーバー・インスタンス (ID 0716_6acdd058-4607-4463-af08-d4999d983945) の前に配置しています。 ロード・バランサーのフロントエンド・リスナーにより、TCP サーバーへの安全なアクセスが可能になります。

CLIからアプリケーションロードバランサーを作成するには、以下の手順に従います:

  1. CLI 環境をセットアップします。

  2. 端末から CLI を使用してアカウントにログインします。 パスワードを入力すると、使用するアカウントとリージョンの入力を求めるプロンプトが表示されます。

    ibmcloud login --sso
    
  3. ロード・バランサーを作成します。

    ibmcloud is load-balancer-create alb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family application
    

    出力例:

    Creating load balancer nlb-test in resource group under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Name               alb-test
    CRN                crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Family             Network
    Host name          99b5ab45-us-south.lb.test.appdomain.cloud
    Subnets            ID                                          Name
                       0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c   nlb
    
    Public IPs
    Private IPs
    Provision status   create_pending
    Operating status   offline
    Is public          true
    Listeners
    Pools              ID   Name
    
    Resource group     ID                                 Name
                       3021f90279574ce287dd5fba82c08899   Default
    
    Created            2020-08-27T14:34:34.732-05:00
    
  4. プールを作成します。

    ibmcloud is load-balancer-pool-create alb-pool r006-99b5ab45-6357-42db-8b32-5d2c8aa62776  weighted_round_robin tcp 10  --failsafe-policy-action forward --failsafe-policy-target pool2
    

    出力例:

    Creating pool nlb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776  under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                         r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Name                       alb-pool
    Protocol                   tcp
    Algorithm                  weighted_round_robin
    Instance group             ID   Name
                               -    -
    
    Health monitor             Type   Port   Health monitor URL   Delay   Retries   Timeout
                               http   8080   /                    10      2         5
    
    Failsafe policy            Action    Target ID                                   Target name   Healthy Member Threshold Count
                               forward   r006-815e16e7-8729-4d9e-9203-936a6b615ee1   pool2         0
    
    Session persistence type   source_ip
    Members
    Provision status           active
    Created                    2020-08-27T14:45:42.038-05:00
    
  5. メンバーを作成します。

    ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70
    

    出力例:

    Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-61f8b000-a90d-4abe-909e-c507dffec565
    Port               9090
    Target             0716_6acdd058-4607-4463-af08-d4999d983945
    Weight             70
    Health             unknown
    Created            2020-08-27T14:59:55.446-05:00
    Provision status   create_pending
    
  6. リスナーを作成します。

    ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    

    出力例:

    Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                      r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Certificate instance    -
    Connection limit        -
    Idle connection timeout 50
    Port                    7070
    Protocol                tcp
    Default pool            r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Provision status        create_pending
    Created                 2020-08-27T15:16:08.643-05:00
    
  7. ポリシーを作成します。

    ibmcloud is load-balancer-listener-policy-create 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --action redirect --priority 2 --target-http-status-code 301 --target-url "https://{host}:443/{path}"
    

    出力例:

    Creating policy of load balancer listener 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                      r134-4847a949-f9b6-4fc1-71c6-d1c49dac3ebc
    Action                  redirect
    Priority                2
    Http status code        301
    Target Url              https://{host}:443/{path}
    Provision status        create_pending
    Created                 2024-04-23T15:16:08.643-05:00
    
  8. ロード・バランサーの詳細を表示します。

    ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    

    出力例:

    Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Name               nlb-test
    CRN                crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Family             Network
    Host name          99b5ab45-us-south.lb.test.appdomain.cloud
    Subnets            ID                                          Name
                       0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c   nlb
    
    Public IPs         150.238.50.78, 150.238.54.95
    Private IPs        10.240.0.58, 10.240.0.59
    Provision status   active
    Operating status   online
    Is public          true
    Listeners          r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Pools              ID                                          Name
                       r006-3b66d605-6aa5-4166-9f66-b16054da3cb0   nlb-pool
    
    Resource group     ID                                 Name
                       3021f90279574ce287dd5fba82c08899   Default
    
    Created            2020-08-27T14:34:34.732-05:00
    

APIを使ってアプリケーションロードバランサーを作成する

以下の例は、API を使用して、ポート 80で listen する Web アプリケーションを実行する 2 つの VPC 仮想サーバー・インスタンス (192.168.100.5 および 192.168.100.6) の前にアプリケーション・ロード・バランサーを作成する方法を示しています。 ロード・バランサーのフロントエンド・リスナーにより、HTTPS を使用した Web アプリケーションへの安全なアクセスが可能になります。

この例では、API を使用して VPC、サブネット、インスタンスをプロビジョンする前提条件の手順を省略しています。

APIを使ってアプリケーション・ロードバランサーを作成するには、以下の手順に従ってください:

  1. API 環境をセットアップします。

  2. API コマンドで使用する以下の値を変数に格納します。

    • ResourceGroupId - まず、リソース・グループを取得してから、この変数に値を割り当てます。
    export ResourceGroupId=<your_resourcegroup_id>
    
  3. リスナー、プール、および接続対象サーバー・インスタンス (プール・メンバー) を指定してロード・バランサーを作成する

    curl -H "Authorization: $iam_token" -X POST
    "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \
      -d '{
          "name": "example-balancer",
          "is_public": true,
          "listeners": [
              {
                  "certificate_instance": {
                      "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234"
                  },
                  "port": 443,
                  "protocol": "tcp",
                  "default_pool": {
                      "name": "example-pool"
                  }
              }
          ],
          "pools": [
              {
                  "algorithm": "round_robin",
                  "health_monitor": {
                      "delay": 5,
                      "max_retries": 2,
                      "timeout": 2,
                      "type": "tcp",
                      "url_path": "/"
                  },
                  "name": "example-pool",
                  "protocol": "tcp",
                  "session_persistence": {
                      "cookie_name": "string",
                      "type": "source_ip"
                  },
                  "members": [
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.5"
                          },
                          "weight": 50
                      },
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.6"
                          },
                          "weight": 50
                      }
                  ]
              }
          ],
          "subnets": [
              {
                  "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e"
              }
          ]
          }'
    

    出力例:

    {
        "created_at": "2018-07-12T23:17:07.5985381Z",
        "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "hostname": "ac34687d.lb.appdomain.cloud",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "is_public": true,
        "profile": {
            "name": "network-fixed",
            "family": "network"
        },
        "listeners": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
            }
        ],
        "name": "example-balancer",
        "operating_status": "offline",
        "pools": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
                "name": "example-pool"
            }
        ],
        "provisioning_status": "create_pending",
        "resource_group": {
            "id": "56969d60-43e9-465c-883c-b9f7363e78e8"
        },
        "subnets": [
            {
                "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "name": "example-subnet"
            }
        ]
    }
    

    次の手順で使用するために、ロード・バランサーの ID を保存します。 例えば、変数 lbid などに保存してください。

    lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727
    
  4. ロード・バランサーに関する詳細を取得する

    curl -H "Authorization: $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"
    

    プロビジョニングにはある程度時間がかかることを想定しておいてください。 ロード・バランサーの準備ができると、次の出力例に示されているように、online および active の状況に設定されます。

    {
      "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "name": "example-balancer",
      "created_at": "2018-07-13T22:22:24.489Z",
      "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud",
      "is_public": true,
      "profile": {
            "name": "network-fixed",
            "family": "network"
      },
      "listeners": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
           "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
        }
      ],
      "operating_status": "online",
      "pools": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
          "name": "example-pool"
        }
      ],
      "private_ips": [
        {
          "address": "192.168.10.5"
        },
        {
          "address": "192.168.10.6"
        }
      ],
      "provisioning_status": "active",
      "public_ips": [
        {
            "address": "169.11.111.115"
        },
        {
            "address": "169.11.111.116"
        }
      ],
      "resource_group": {
        "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8"
      },
      "subnets": [
        {
          "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "name": "example-subnet"
        }
      ]
    }