ADC

コンテンツスイッチ仮想サーバーのパーシステンスサポート

アプリケーションはモノリシックアーキテクチャからマイクロサービスアーキテクチャに移行しています。マイクロサービスアーキテクチャでは、同じアプリケーションの異なるバージョンが共存できます。NetScalerアプライアンスは、アプリケーションの継続的デプロイをサポートする必要があります。これは、Canary デプロイを実行するプラットフォーム (Spinnaker など) によって実現されます。継続的デプロイのセットアップでは、アプリケーションの新しいバージョンが自動的にデプロイされ、アプリケーションが安定してトラフィックを完全に処理できるようになるまで、段階的にクライアントトラフィックにさらされます。また、クライアントへのサービスが中断されない必要があります。

NetScalerのコンテンツスイッチング機能により、NetScaler アプライアンスは、コンテンツスイッチング仮想サーバーにバインドされたポリシーに基づいて、クライアント要求を複数の負荷分散仮想サーバーに分散できます。

継続的なデプロイでは、コンテンツスイッチングを使用して、さまざまなバージョンのアプリケーションを提供する負荷分散仮想サーバーを選択します。

コンテンツスイッチングでは、コンテンツスイッチングポリシーの変更により、特定のアプリケーションバージョン用の負荷分散仮想サーバーの選択が実行時に変わります。この移行中、一部のセッションに古いバージョンのアプリケーションが存在する場合、そのようなトラフィックは引き続き古いバージョンでのみ処理する必要があります。この要件に対応するため、NetScalerアプライアンスはコンテンツスイッチング仮想サーバーの背後にある複数の負荷分散グループにわたって永続性を維持します。コンテンツスイッチング仮想サーバーの永続性により、クライアントをあるバージョンから別のバージョンにシームレスに移行できます。

コンテンツスイッチング仮想サーバーでサポートされているパーシステンスタイプ

コンテンツスイッチ仮想サーバーでは、次のパーシステンスタイプがサポートされています。

パーシスタンスタイプ 説明
接続元IP ソース IP。同じクライアント IP アドレスからの接続は、同じ永続セッションの一部です。詳細については、「送信元 IP アドレスの永続性」を参照してください。
HTTP クッキー COOKIEINSERT. 同じ HTTP Cookie ヘッダーを持つ接続は、同じ持続性セッションの一部です。NetScalerアプライアンスが挿入するCookie の形式は、 NSC_ = です。NSC_XXXXは仮想サーバー名から派生した仮想サーバーIDです 。詳細については、「HTTP Cookie パーシステンス」を参照してください。
SSL Session ID SSLSESSION. 同じ SSL セッション ID を持つ接続は、同じ持続性セッションの一部です。詳細については、「SSL セッション ID の永続性」を参照してください。

HTTP Cookieに基づくパーシステンスに対して、タイムアウト値を設定できます。タイムアウト値を0に設定すると、使用されているHTTP Cookieバージョンに関係なく、ADCアプライアンスは有効期限を指定しなくなります。その場合、有効期限はクライアントソフトウェアによって異なり、このようなクッキーはソフトウェアが動作している場合にのみ有効です。

構成した永続性のタイプに応じて、仮想サーバーは、NetScalerアプライアンスのメモリ量によって定められた制限まで、250,000の同時持続接続または任意の数の永続接続のいずれかをサポートできます。次の表は、どのタイプのパーシスタンスが各カテゴリに分類されるかを示しています。

パーシスタンスタイプ サポートされる同時持続接続数
ソース IP、SSL セッション ID 250,000
HTTP クッキー メモリの上限。CookieInsert では、タイムアウトが 0 でない場合、接続数はメモリによって制限されます。

パーシスタンスには、特定のタイプの仮想サーバーに固有のものもあります。次の表は、各タイプのパーシスタンスを一覧表示し、どのタイプのパーシスタンスがどのタイプの仮想サーバーでサポートされているかを示しています。

パーシスタンスタイプ HTTP HTTPS TCP UDP/IP SSL_Bridge TCP RTSP UDP
SOURCEIP はい はい はい はい はい はい いいえ いいえ
COOKIEINSERT はい はい いいえ いいえ いいえ いいえ いいえ いいえ
SSLSESSION いいえ はい いいえ いいえ はい はい いいえ いいえ

バックアップ永続性サポート

Cookie パーシステンスタイプが失敗した場合に、ソース IP パーシステンスタイプをバックアップパーシステンスタイプとして使用するようにコンテンツスイッチング仮想サーバーを構成できます。マイクロサービスアーキテクチャでの Canary デプロイに役立ちます。 Cookie パーシステンスタイプが失敗した場合、クライアントブラウザがリクエストで Cookie を返さない場合にのみ、アプライアンスはソース IP ベースのパーシスタンスにフォールバックします。ただし、ブラウザが Cookie(パーシステンスクッキーである必要はありません)を返した場合、そのブラウザは Cookie をサポートしていると見なされるため、バックアップパーシスタンスはトリガーされません。 バックアップ永続性のタイムアウト値を設定することもできます。タイムアウトは、永続セッションが有効な期間です。

コンテンツスイッチング仮想サーバーでのパーシスタンスの仕組み

シナリオ 1: 永続性のないコンテンツスイッチング仮想サーバー

次の例は、コンテンツスイッチング仮想サーバーを永続化せずにアプリケーションの複数のバージョンをデプロイする方法を示しています。

persistence-cs1

クライアントC1がアプリケーションに要求を送信すると、その要求はNetScalerアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。コンテンツスイッチング仮想サーバーはポリシーを評価し、アプリケーションのバージョン v1 を提供している負荷分散仮想サーバー (LB1) に要求を転送します。

persistence-cs2

アプリケーションの新しいバージョン v2 がデプロイされ、一部のユーザーに公開する必要があるとします。v2 バージョンを提供する新しい負荷分散仮想サーバー (LB2) は、適切なコンテンツスイッチングポリシーによってコンテンツスイッチング仮想サーバーにバインドされます。

クライアント C1 が新しい要求を送信すると、ポリシーが再度評価され、要求は負荷分散仮想サーバー LB2 に転送されます。そのため、ステートフルアプリケーションのトランザクションは、複数のバージョンのアプリケーションをデプロイすると失敗します。

シナリオ 2: 永続性を備えたコンテンツスイッチング仮想サーバー

次の例は、永続性のあるコンテンツスイッチング仮想サーバーを使用して、アプリケーションの複数のバージョンを展開する方法を示しています。

persistence-cs3

クライアントC1がアプリケーションに要求を送信すると、その要求はNetScalerアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。コンテンツスイッチング仮想サーバーはポリシーを評価し、永続セッションエントリを作成し、アプリケーションのバージョン v1 を提供している負荷分散仮想サーバー LB1 に要求を転送します。

persistence-cs4

同じクライアントC1がアプリケーションを再度要求し、その要求がNetScalerアプライアンスのコンテンツスイッチ仮想サーバーに送信されます。永続セッションの検索が行われ、負荷分散仮想サーバーLB1が既存の永続セッションから取得され、要求がLB1に転送されます。このソリューションでは既存のトランザクションが中断されないため、アプリケーションのステートフルな性質が維持されます。

persistence-cs5

新しいクライアント C2 を考えてみましょう。このクライアントには既存のパーシスタンスセッションがないため、新しいリクエストC2はポリシー評価を通じて新しいバージョンのアプリケーションに送信されます。これにより、ステートフルさを損なうことなく、アプリケーションの新しいバージョンを正常にロールアウトできます。

パーシスタンスサポートにより、特にステートフルアプリケーションの場合、お客様は既存のトランザクションに影響を与えることなく、複数のコンテンツや異なるバージョンのアプリケーションをシームレスにデプロイできます。絵にしつこさがなければできません。

CLI を使用してコンテンツスイッチ仮想サーバーのパーシステンスタイプを設定します

コマンドプロンプトで入力します。

set cs vserver <name> -PersistenceType <type> [-timeout <integer>]
<!--NeedCopy-->

例:

set cs vserver Vserver-CS-1 -persistenceType SOURCEIP -timeout 60
<!--NeedCopy-->

GUI を使用してコンテンツスイッチ仮想サーバーのパーシステンスタイプを設定します

  1. [ トラフィック管理 ] > [ コンテンツスイッチング ] > [ 仮想サーバー ] に移動し、[ 追加] をクリックします。

  2. 基本設定で、パーシステンスの詳細を設定します。