NetScaler ADCによる負荷分散
ここでは、すべてのアクティブな負荷分散構成に2つ以上のStoreFrontサーバーを含むStoreFrontサーバーグループを展開する方法について説明します。サーバーグループのStoreFrontサーバー間でCitrix Workspaceアプリとブラウザーからの受信要求を負荷分散するため、NetScaler ADCアプライアンスを構成する方法について詳しく説明します。
負荷分散化される展開のサーバー証明書の要件
商用証明機関から証明書を購入する、またはエンタープライズ証明機関から発行しようとする前に、次のオプションについて検討します。
- オプション1: *.example.com ワイルドカード証明書をNetScaler ADCアプライアンス負荷分散仮想サーバーとStoreFrontサーバーグループノードの両方で使用する。これにより構成が簡素化され、将来的には証明書を置き換える必要なく追加のStoreFrontサーバーを増やすことができます。
- オプション2:サブジェクトの別名(SAN)を含む証明書をNetScaler ADCアプライアンス負荷分散仮想サーバーとStoreFrontサーバーグループノードの両方で使用する。すべてのStoreFrontサーバーの完全修飾ドメイン名(FQDN)と一致する証明書内の追加のSANはオプションですが、これによりStoreFront展開環境に柔軟性がもたらされるため、推奨されます。
StoreFrontサーバーグループ負荷分散用のDNSレコードの作成
選択した共用FQDN用にDNS AおよびPTRレコードを作成します。ネットワーク内のクライアントはこのFQDNを使用して、NetScaler ADCアプライアンスロードバランサーを使用するStoreFrontサーバーにアクセスします。
例:storefront.example.com
が負荷分散仮想サーバーの仮想IP(VIP)に解決されます。
StoreFrontサーバーの構成
負荷分散を行うすべてのStoreFrontサーバーは、サーバー間の構成を同期して同一に構成されるようにしている、StoreFrontサーバーグループの一部として構成する必要があります。サーバーグループへのサーバーの追加について詳しくは、「既存のサーバーグループへの参加」を参照してください。
ロードバランサーとStoreFrontサーバー間の通信が暗号化されるように、各サーバーをHTTPS用に構成する必要があります。「HTTPSによるStoreFrontのセキュリティ保護」を参照してください。証明書は、共通名(CN)またはサブジェクトの別名(SAN)として負荷分散されたFQDNを含む必要があります。
サーバーグループのベースURLをロードバランサーのURLに設定します。ベースURLを変更するには、Citrix StoreFront管理コンソール内の左側のペインで [サーバーグループ] を右クリックし、[ベースURLの変更] をクリックします。ロードバランサーの仮想サーバーのURLを入力します。
必要に応じてHTTPS用にCitrixサービスモニターを構成する
StoreFrontのインストールには、CitrixサービスモニターWindows サービスが含まれています。このサービスは他のサービスには依存せず、他の重要なStoreFrontサービスのヘルスを監視します。これにより、NetScaler ADCおよび他のサードパーティアプリケーションがStoreFrontサーバー展開の相対的なヘルスを監視できるようになります。
デフォルトでは、モニターはポート8000でHTTPを使用します。必要に応じて、この設定をポート443でHTTPSを使用するように変更できます。
-
プライマリStoreFrontサーバーでPowerShell Integrated Scripting Environment(ISE)を開き、以下のコマンドを実行してデフォルトモニターをHTTPS 443に変更します:
$ServiceUrl = "https://localhost:443/StorefrontMonitor" Set-STFServiceMonitor -ServiceUrl $ServiceUrl Get-STFServiceMonitor <!--NeedCopy-->
-
変更が完了したら、StoreFrontサーバーグループ内の外のすべてのサーバーに変更を反映させます。
-
モニターでクイックテストを実行するには、StoreFrontサーバー、またはStoreFrontサーバーへネットワークアクセスするほかの任意のマシンでブラウザーに次のURLを入力します。ブラウザーは、すべてのStoreFrontサービスの状態についてXMLサマリーを返します。
https://<loadbalancingFQDN>/StoreFrontMonitor/GetSFServicesStatus
NetScalerロードバランサーの構成
NetScaler ADCでのSSL証明書の構成
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [Traffic Management]>[SSL]>[Certificates]>[Server Certificates]を選択します。
- [Install] をクリックします。
- [Install Server Certificate] ページで、証明書とキーのペアの名前を入力し、[Choose File] をクリックして証明書ファイルを参照します。証明書ファイルに秘密キーが含まれていない場合は、追加でキーファイルを選択する必要があります。
個々のStoreFrontサーバーノードのNetScaler ADCアプライアンスロードバランサーへの追加
-
[Traffic Management]>[Load Balancing]>[Servers] の順に移動します。[Add] をクリックし、負荷分散するStoreFrontサーバーをそれぞれ追加します。
例 = StoreFront-eu-1およびStoreFront-eu-2という名前の2台のStoreFrontサーバー
-
IPベースのサーバー構成を使用し、各StoreFrontノードのサーバーIPアドレスを入力します。
StoreFrontモニターを定義して、サーバーグループ内のすべてのStoreFrontノードをチェックします
- NetScaler ADC管理GUIにログオンします。
- [Traffic Management]>[Load Balancing]>[Monitors]>[Add] の順に選択し、StoreFrontを呼び出す新しいモニターを追加し、すべてのデフォルトの設定を受け入れます。
- [Type] ドロップダウンの一覧から [StoreFront] を選択します。
- StoreFrontモニターをHTTPS用に構成した場合は、[セキュア] オプションが選択されていることを確認してください。それ以外の場合は、このオプションを選択解除したままにし、ポート8000を入力します。
-
[バックエンドサービスの確認] オプションを選択します。このオプションにより、StoreFrontサーバーで監視サービスの実行が有効になります。StoreFrontサーバーで実行するWindowsサービスをプローブしてStoreFrontサービスが監視され、次のサービスの状態が返されます:
- W3SVC (IIS)
- WAS(Windowsプロセスアクティブ化サービス)
- CitrixCredentialWallet
- CitrixDefaultDomainService
すべてのStoreFrontサーバーを含むサービスグループの作成
-
[Traffic Management]>[Load Balancing]>[Service Groups] の順に移動します。[Add]を押します。HTTPS経由でStoreFrontサーバーに接続するには、SSLのプロトコルを選択します。他の設定はデフォルトのままにします。[OK] を押します。
-
サービスグループ内の [サービスグループメンバー]で、[サービスグループメンバーなし]をクリックします。
- [サービスベース] をクリックします。
- 以前に定義したサーバーをすべて選択します。
- ロードバランサーとStoreFrontサーバーの間でSSLを使用するには、ポート443を入力します。それ以外の場合は、ポート80を入力します。
-
[モニター] セクションを追加し、前に作成したStoreFrontモニターを選択します。
-
[証明書] セクションを追加します。
- クライアント証明書をバインドします。
- 以前にインポートしたサーバー証明書の署名に使用されたCA証明書と、PKIチェーン信頼の一部の可能性があるそのほかのCAをバインドします。
-
[設定] セクションを追加します[クライアントIPヘッダーの挿入] を選択し、ヘッダー名としてX-Forwarded-Forを入力します。これにより、クライアントIPアドレスをCitrix Virtual Apps and Desktops ポリシーで使用できるようになります。
ユーザートラフィック用負荷分散仮想サーバーの作成
-
NetScaler ADCアプライアンス管理GUIにログオンします。
-
[Traffic Management]>[Load Balancing]>[Virtual Servers]>[Add] の順に選択し、新しい仮想サーバーを作成します。
-
名前を入力し、SSLのプロトコルを選択してポートを入力します。[OK]をクリックして仮想サーバーを作成します。
-
前に作成したサービスグループを負荷分散仮想サーバーにバインドします。
-
以前にサービスグループにバインドしたのと同じSSLおよびCA証明書をバインドします。
-
[方法] セクションを追加し、負荷分散方法を選択します。StoreFront負荷分散で共通の選択は、[round robin] または [least connection] です。
-
[パーシステンス] セクションを追加します。
-
パーシステンス方式をCOOKIEINSERTに設定します。
-
タイムアウトを、StoreFront内のセッションタイムアウト(デフォルトでは20分)と同じ設定にします。
-
cookieに名前を付けます。たとえば、デバッグ時に見つけやすいようにNSC_SFPersistenceという名前を付けます。
-
バックアップパーシステンスを [NONE] に設定します。
注:
クライアントがHTTP Cookieを保存できない場合は、以降の要求にHTTP Cookieが含まれなくなり、パーシステンスは適用されません。
-
StoreFrontループバックの構成
ベースアドレスがロードバランサーである場合、StoreFrontサービス間の内部通信では、トラフィックがロードバランサーにルーティングされ、場合によっては別のサーバーにルーティングされる可能性があります。これにより、パフォーマンスが低下し、予期しない動作が発生します。これを回避するには、StoreFront設定の [ループバック通信を有効にする] を使用します。デフォルトでは、これは [オン] に設定されています。これは、スキーマ(HTTPまたはHTTPS)をそのまま維持しながら、サービスアドレスのホスト部分をループバックIPアドレス127.0.0.1に置き換えることを意味します。これは単一サーバー展開および非SSL終了ロードバランサーがある展開で機能します。
ロードバランサーがSSLで終了し、HTTP経由でStoreFrontと通信する場合(非推奨)、StoreFrontループバック通信をOnUsingHttpに構成する必要があります。これは、StoreFrontがスキーマをHTTPSからHTTPに変更することを意味します。
- Citrix StoreFrontを開きます。
- ストアごとに、[Receiver for Web サイトの管理]に移動します。Web サイトごとに、[構成] に移動します。
- [詳細設定] に移動
- [ループバック通信を有効にする] 設定をOnUsingHttpに変更します。
ロードバランサーがSSLで終了し、HTTP経由でStoreFrontと通信する場合(非推奨)、StoreFrontループバック通信をOnUsingHttpに構成する必要があります。これは、StoreFrontがスキーマをHTTPSからHTTPに変更することを意味します。
サーバーグループ間のサブスクリプション同期用NetScaler ADCロードバランサーの構成
2つ以上のStoreFrontサーバーグループで構成されるマルチサイト展開がある場合は、繰り返しスケジュールでプル戦略を使用して、それらの間でサブスクリプションデータをレプリケートできます。StoreFrontサブスクリプションレプリケーションはTCPポート808を使用するため、既存の負荷分散仮想サーバーをHTTPポート80またはHTTPS 443で使用することはできません。このサービスに対して高い可用性を提供するには、展開内の各NetScaler ADCアプライアンスで2つ目の仮想サーバーを作成して、各StoreFrontサーバーグループのTCPポート808へ負荷分散します。
サブスクリプション同期用のサービスグループの構成
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [トラフィック管理]>[負荷分散]>[サービスグループ]>[追加] の順に選択します。
- サービスグループ名を入力し、プロトコルを [TCP] に変更し、[OK] をクリックして保存します。
- [サービスグループメンバー] セクション内で、[サーバー]セクションで以前定義したすべてのStoreFrontサーバーノードを追加して [ポート] を808に指定します。
-
[モニター] セクションを追加します。
- 「バインドを監視するサービスグループがありません」と表示されている場所をクリックします。
- [追加] をクリックします。モニターの[名前] を入力し、その [種類] を [TCP] に設定します。[作成] をクリックします。
- [Bind] をクリックします。
サブスクリプション同期用負荷分散仮想サーバーの作成
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [トラフィック管理]>[負荷分散]>[仮想サーバー]>[追加] の順に選択し、新しいサービスグループを作成します。
- [名前] の入力
- プロトコルを [TCP] に変更します。
- IPアドレスを入力します。
-
[ポート]として808を入力します。
- [OK] をクリックします。
- [負荷分散仮想サーバーのサービスグループバインドなし] をクリックし、前に作成したサービスグループを選択して、[バインド]をクリックします。
- [方法] セクションを追加し、[負荷分散方式] を [ROUNDROBIN] に設定します
- [Done] をクリックして変更を完了します。
ロードバランサー経由でサブスクリプションデータを取得するようにStoreFrontを構成する
「サブスクリプション同期の構成」を参照してください。
レプリケーションスケジュールを構成する場合、サブスクリプション同期仮想サーバーの仮想ロードバランサーIPアドレスと一致するサーバーグループアドレスを指定します。