tencent cloud

Cloud Load Balancer

動向とお知らせ
製品アップデート情報
製品に関するお知らせ
製品の説明
製品概要
製品の優位性
ユースケース
技術原理
Product Comparison
使用上の制約
Service Regions and Service Providers
購入ガイド
課金概要
課金項目
購入方法
支払い延滞の説明
製品属性の選択
クイックスタート
ドメイン名型CLBクイックスタート
CLBクイックスタート
IPv6 CLBクイックスタート
CentOSにおけるNginxのデプロイ
CentOSにおけるJava Webのデプロイ
操作ガイド
CLBインスタンス
CLBリスナー
バックエンドサーバー
ヘルスチェック
証明書管理
ログ管理
監視アラート
Cloud Access Management
従来型CLB
プラクティスチュートリアル
証明書をCLBに配置(双方向認証)
CLBのGzip有効化設定およびチェック方法の説明
HTTPS転送設定スタートガイド
クライアントリアルIPの取得方法
ロードバランサーのモニタリングアラート設定のベストプラクティス
マルチアベイラビリティーゾーンの高可用性設定の説明
バランシングアルゴリズムの選択と重みの設定の例
CLBのリスニングドメイン名に対してWebセキュリティ保護を実行するようにWAFを設定する
メンテナンスガイド
クライアントのtimewaitが多すぎる場合の対処方法
CLBのHTTPSサービスパフォーマンステスト
ストレステストに関するよくあるご質問
CLB証明書の操作権限に関するご質問
障害処理
UDPヘルスチェックの異常
API リファレンス
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
よくあるご質問
課金関連
CLB設定関連
ヘルスチェック異常調査
HTTPS関連
WS/WSSプロトコルサポート関連
HTTP/2プロトコルサポート関連
連絡先
用語集

セッションの維持

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-01-04 18:36:26
セッション維持は、同一のIPからのリクエストが同一のバックエンドサーバーに転送されることを可能にする機能です。デフォルトでは、CLBは各リクエストをそれぞれ異なるバックエンドサーバーインスタンスにルーティングしますが、セッション維持機能を使用することで、特定のユーザーからのリクエストを同一のバックエンドサーバーインスタンス上にルーティングすることが可能になります。こうすることで、セッションを維持する必要があるアプリケーション(ショッピングカートなど)を正しく動作させることができます。

レイヤー4セッション維持

レイヤー4プロトコル(TCP/UDP)はソースIPベースのセッション維持機能をサポートしています。セッション維持時間は30~3600秒の間の任意の整数値を設定でき、この時間閾値を超過すると、セッション中に新しいリクエストがなければセッション維持状態が中断されます。セッション維持とバランシング方式の関連は次のとおりです。
バランシング方式が「重み付けラウンドロビン」の場合は、バックエンドサーバーの重みに応じてリクエストが振り分けられ、ソースIPベースのセッション維持がサポートされます。
バランシング方式が「重み付け最小接続」の場合は、サーバーの負荷と重みに応じて総合的にスケジューリングされ、セッション維持はサポートされません。

レイヤー7セッション維持

レイヤー7プロトコル(HTTP/HTTPS)はCookie挿入ベースのセッション維持機能(ロードバランサがクライアントにCookieを埋め込む)をサポートしています。セッション維持時間は30~3600秒の間で設定できます。セッション維持とバランシング方式の関連は次のとおりです。
バランシング方式が「重み付けラウンドロビン」の場合は、バックエンドサーバーの重みに応じてリクエストが振り分けられ、Cookie挿入ベースのセッション維持がサポートされます。
バランシング方式が「重み付け最小接続」の場合は、サーバーの負荷と重みに応じて総合的にスケジューリングされ、セッション維持はサポートされません。
バランシング方式が「IP Hash」の場合は、ソースIPベースのセッション維持がサポートされ、Cookie挿入ベースのセッション維持はサポートされません。

接続タイムアウト時間

現在、HTTP接続タイムアウト時間(keepalive_timeout)はデフォルトで75秒です。調整をご希望の場合はカスタム設定をアクティブ化してください。この時間閾値を超過すると、セッション中にデータ通信が行われなければ接続が切断されます。 現在、TCP接続のタイムアウト時間は調整できず、デフォルトで900秒となっています。この時間閾値を超過すると、セッション中にデータ通信が行われなければ接続が切断されます。

セッション維持の設定

1. CLBコンソールにログインし、セッション維持の設定を行いたいCLBインスタンスIDをクリックしてCLB詳細ページに進みます。
2. リスナー管理タブを選択します。
3. セッション維持の設定を行いたいCLBリスナーの後方の変更をクリックします。
4. セッション維持機能を有効にするかどうかを選択し、ボタンをクリックして有効化し、維持時間を入力してOKをクリックします。

長時間接続とセッション維持の関係

シナリオ1:HTTPレイヤー7業務

ClientからのアクセスがHTTP/1.1プロトコルであり、ヘッダー情報にConnection:keep-aliveが設定されているとします。CLBを介してさらにバックエンドサーバーにアクセスし、このときセッション維持を有効にしていなかった場合、次のアクセスの際に同一のサーバーにアクセスすることはできますか。
回答:できません。
まず、HTTP keep-aliveとはTCP接続が送信後も有効な状態を維持することで、ブラウザが引き続き同一の接続によってリクエストを送信できることを指します。接続を維持することで、各リクエストが新たに接続を確立するのにかかる時間が節約でき、帯域幅の節約にもなります。CLBクラスターのデフォルトのタイムアウト時間は75秒です(75秒以内に新しいリクエストが更新されなかった場合、デフォルトでTCP接続を切断します)。
HTTP keep-aliveはClient側がCLBとの間で確立するものであり、このときCookieによるセッション維持が有効になっていなければ、次のアクセスの際、CLBはラウンドロビンポリシーに基づいて1台のバックエンドサーバーをランダムに選択し、それまでの長時間接続は無効になります。
このため、セッション維持を有効化しておくことをお勧めします。
Cookieによるセッション維持時間を1000秒に設定した場合、Client側は再度リクエストを送信します。前回のリクエストから75秒以上経過しているため、TCPの接続を再度確立する必要があります。アプリケーション層はCookieを判断し、同一のバックエンドサーバーを見つけるため、Clientがアクセスするサーバーは前回アクセスしたものと同じになります。

シナリオ2:TCPレイヤー4業務

Clientがアクセスを開始し、トランスポート層プロトコルがTCPであり、長時間接続を有効にしているとします。ただし、ソースIPベースのセッション維持は有効にしていません。この場合、次のアクセスの際に、同一のClientが同一のマシンにアクセスすることはできますか。
回答:場合によります。
まず、レイヤー4の実現メカニズムにより、TCPが長時間接続を有効にしている場合、この長時間接続が切断されなければ、連続した2回のアクセスはどちらも同じ接続となり、同一のマシンにアクセスすることができます。2回目のアクセスの際に、最初の接続が他の原因(ネットワークの再起動、接続タイムアウト)によってリリースされた場合、2回目のアクセスは他のバックエンドサーバーにスケジューリングされる可能性があります。また、長時間接続はデフォルトのグローバルタイムアウト時間が900秒であり、新しいリクエストがなければリリースされます。
長時間接続の有効化する方法についてはHTTPリスナーの設定およびHTTPSリスナーの設定をご参照ください。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック