IBM Cloud Load Balancer での高度なトラフィック管理
IBM Cloud® Load Balancer サービスで使用可能ないくつかの高度なトラフィック管理機能について説明します。
最大接続数
max connections
構成を使用して、特定のフロントエンド仮想ポートに対する同時接続の最大数を制限します。 特定のフロントエンド仮想ポートに対する最大同時接続数、またはすべてのフロントエンド仮想ポートにわたるシステム全体の最大同時接続数は15000です。 デフォルトでは、最大値 15000 に設定されます。
セッション・パーシスタンス
ロード・バランサーは、接続のソース IP に基づいて、セッション・パーシスタンスをサポートします。 例えば、ポート 80 (HTTP) でsource IP
タイプのセッション・パーシスタンスを有効にすると、同じソース IP からの後続の HTTP 接続試行は、同じバックエンド・サーバーに維持されます。 この機能は、サポートされている 3 つすべてのプロトコル (HTTP、HTTPS、および TCP) で使用可能です。
ロードバランサーはHTTPクッキーに基づいたセッションの永続化もサポートしています。 例えば、ポート80(HTTP)で有効になっている HTTP Cookie
タイプのセッション永続性がある場合、ロードバランサーがバックエンドサーバーから最初の応答を受け取ると、応答ヘッダーに IBMCLB
という名前と back-end server UUID
という値を持つクッキーを追加します。 ロード・バランサーに到達するこの
Cookie を含むすべての後続の HTTP 要求は、同じバックエンド・サーバーで永続的になります。 このフィーチャーは HTTP および HTTPS で使用可能です。
HTTP キープアライブ
クライアント・サーバーとバックエンド・サーバーの両方で有効になっている限り、ロード・バランサーは HTTP keep alive
をサポートします。 ロード・バランサーは、接続効率の向上と待ち時間の短縮のためにサーバー・サイドの HTTP 接続を再利用しようとします。
接続タイムアウト
ロード・バランサーによって以下のタイムアウト値が使用されます。
名前 | 説明 | デフォルト・タイムアウト | ユーザー構成可能 |
---|---|---|---|
サーバー・サイドの接続試行 | ロードバランサーがバックエンドサーバーとのTCPコネクションを確立するために使用できる最大時間ウィンドウ。 接続試行が失敗すると、ロード・バランサーは、構成済みのロード・バランシング方式に従って、次に使用可能なサーバーを試行します。 | 5 秒 | いいえ |
クライアント・サイドのアイドル接続 | 最大アイドル時間。クライアントが接続を正しく閉じられなかった場合は、この時間を過ぎるとロード・バランサーはクライアント・サイド接続を停止します。 | 50 秒 | ある |
サーバー・サイドのアイドル接続 | 最大アイドル時間 (TCP のバックエンド・プロトコル構成の場合)。この時間を過ぎると、ロード・バランサーはサーバー・サイド接続をクローズします。 HTTP のバックエンド・プロトコル構成の場合は、アイドル・タイムアウトの時間枠内に HTTP 要求への応答の受信に失敗すると、ロード・バランサーはエンド・クライアントにエラー・メッセージを返します。 | 50 秒 | ある |
サーバー側およびクライアント側のアイドル接続タイムアウト値は、APIを使用して設定できます。 サーバー・タイムアウトParameterName: serverTimeout)およびクライアント・タイムアウトParameterName: clientTimeout)の値は、SoftLayer_Network_LBaaS_Listener
サービスの UpdateLoadBalancerProtocols
メソッドを使用することで、最大2時間(範囲:1~7200秒)までの秒単位で設定できます。
サーバーまたはクライアントのタイムアウト値を指定しなかった場合、ロード・バランサーは、該当するデフォルトのタイムアウト値 (上記の表に示された値) を使用します。
アイドル接続のタイムアウト値を長く設定すると、アイドル接続が最大同時接続数15,000にカウントされるため、データパストラフィックに遅延が発生したり、ブロックされたりする可能性があります。 データパストラフィックが中断されないように、同時接続の最大数とともにアイドル接続タイムアウト値を考慮してください。
エンドクライアント IP アドレスの保存
IBM Cloud Load Balancer は、クライアントからの着信トラフィックを終了するリバース・プロキシーとして機能します。 ロード・バランサーは独自の IP アドレスを使用して、バックエンド・サーバー・インスタンスへの別個の接続を確立します。 (フロントエンドの HTTP 接続または HTTPS 接続に対して、) バックエンド・サーバーとの HTTP 接続の場合、ロード・バランサーは、元のクライアント IP アドレスを X-Forwarded-For HTTP
ヘッダーに組み込んで保持します。 TCP 接続の場合、元のクライアント IP 情報は保持されません。
エンドクライアント・プロトコルの保存
IBM Cloud Load Balancer は、フロントエンド HTTP および HTTPS 接続用にクライアントで使用される元のプロトコルを保存します。 これを行うには、このプロトコルを X-Forwarded-Proto
HTTP ヘッダー内部に含めます。 これは、TCP プロトコルには適用されません。TCP プロトコルが使用されている場合、ロード・バランサーはレイヤー 7 トラフィックを参照しないためです。