StoreFront

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を使用するように変更できます。

  1. プライマリStoreFrontサーバーでPowerShell Integrated Scripting Environment(ISE)を開き、以下のコマンドを実行してデフォルトモニターをHTTPS 443に変更します:

    $ServiceUrl = "https://localhost:443/StorefrontMonitor"
    Set-STFServiceMonitor -ServiceUrl $ServiceUrl
    Get-STFServiceMonitor
    <!--NeedCopy-->
    
  2. 変更が完了したら、StoreFrontサーバーグループ内の外のすべてのサーバーに変更を反映させます。

  3. モニターでクイックテストを実行するには、StoreFrontサーバー、またはStoreFrontサーバーへネットワークアクセスするほかの任意のマシンでブラウザーに次のURLを入力します。ブラウザーは、すべてのStoreFrontサービスの状態についてXMLサマリーを返します。

    https://<loadbalancingFQDN>/StoreFrontMonitor/GetSFServicesStatus

    ローカライズされた画像

NetScalerロードバランサーの構成

NetScaler ADCでのSSL証明書の構成

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [Traffic Management]>[SSL]>[Certificates]>[Server Certificates]を選択します。
  3. [Install] をクリックします。
  4. [Install Server Certificate] ページで、証明書とキーのペアの名前を入力し、[Choose File] をクリックして証明書ファイルを参照します。証明書ファイルに秘密キーが含まれていない場合は、追加でキーファイルを選択する必要があります。

証明書のインストール画面のスクリーンショット

個々のStoreFrontサーバーノードのNetScaler ADCアプライアンスロードバランサーへの追加

  1. [Traffic Management]>[Load Balancing]>[Servers] の順に移動します。[Add] をクリックし、負荷分散するStoreFrontサーバーをそれぞれ追加します。

    例 = StoreFront-eu-1およびStoreFront-eu-2という名前の2台のStoreFrontサーバー

  2. IPベースのサーバー構成を使用し、各StoreFrontノードのサーバーIPアドレスを入力します。

2台のサーバーがあるサーバー画面のスクリーンショット

StoreFrontモニターを定義して、サーバーグループ内のすべてのStoreFrontノードをチェックします

  1. NetScaler ADC管理GUIにログオンします。
  2. [Traffic Management]>[Load Balancing]>[Monitors]>[Add] の順に選択し、StoreFrontを呼び出す新しいモニターを追加し、すべてのデフォルトの設定を受け入れます。
  3. [Type] ドロップダウンの一覧から [StoreFront] を選択します。
  4. StoreFrontモニターをHTTPS用に構成した場合は、[セキュア] オプションが選択されていることを確認してください。それ以外の場合は、このオプションを選択解除したままにし、ポート8000を入力します。
  5. [バックエンドサービスの確認] オプションを選択します。このオプションにより、StoreFrontサーバーで監視サービスの実行が有効になります。StoreFrontサーバーで実行するWindowsサービスをプローブしてStoreFrontサービスが監視され、次のサービスの状態が返されます:
    • W3SVC (IIS)
    • WAS(Windowsプロセスアクティブ化サービス)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    [Create monitor]画面のスクリーンショット

すべてのStoreFrontサーバーを含むサービスグループの作成

  1. [Traffic Management]>[Load Balancing]>[Service Groups] の順に移動します。[Add]を押します。HTTPS経由でStoreFrontサーバーに接続するには、SSLのプロトコルを選択します。他の設定はデフォルトのままにします。[OK] を押します。

  2. サービスグループ内の [サービスグループメンバー]で、[サービスグループメンバーなし]をクリックします。

    1. [サービスベース] をクリックします。
    2. 以前に定義したサーバーをすべて選択します。
    3. ロードバランサーとStoreFrontサーバーの間でSSLを使用するには、ポート443を入力します。それ以外の場合は、ポート80を入力します。

    [Create service group member]ページのスクリーンショット

  3. [モニター] セクションを追加し、前に作成したStoreFrontモニターを選択します。

    モニターがリスト表示されている[Monitor]画面のスクリーンショット

  4. [証明書] セクションを追加します。

    1. クライアント証明書をバインドします。
    2. 以前にインポートしたサーバー証明書の署名に使用されたCA証明書と、PKIチェーン信頼の一部の可能性があるそのほかのCAをバインドします。

    [Add binding]画面のスクリーンショット

  5. [設定] セクションを追加します[クライアントIPヘッダーの挿入] を選択し、ヘッダー名としてX-Forwarded-Forを入力します。これにより、クライアントIPアドレスをCitrix Virtual Apps and Desktops ポリシーで使用できるようになります。

ユーザートラフィック用負荷分散仮想サーバーの作成

  1. NetScaler ADCアプライアンス管理GUIにログオンします。

  2. [Traffic Management]>[Load Balancing]>[Virtual Servers]>[Add] の順に選択し、新しい仮想サーバーを作成します。

  3. 名前を入力し、SSLのプロトコルを選択してポートを入力します。[OK]をクリックして仮想サーバーを作成します。

    [NetScaler Load Balancing Virtual Server]画面のスクリーンショット

  4. 前に作成したサービスグループを負荷分散仮想サーバーにバインドします。

  5. 以前にサービスグループにバインドしたのと同じSSLおよびCA証明書をバインドします。

  6. [方法] セクションを追加し、負荷分散方法を選択します。StoreFront負荷分散で共通の選択は、[round robin] または [least connection] です。

    [load balancing method]セクションのスクリーンショット

  7. [パーシステンス] セクションを追加します。

    1. パーシステンス方式をCOOKIEINSERTに設定します。

    2. タイムアウトを、StoreFront内のセッションタイムアウト(デフォルトでは20分)と同じ設定にします。

    3. cookieに名前を付けます。たとえば、デバッグ時に見つけやすいようにNSC_SFPersistenceという名前を付けます。

    4. バックアップパーシステンスを [NONE] に設定します。

    注:

    クライアントがHTTP Cookieを保存できない場合は、以降の要求にHTTP Cookieが含まれなくなり、パーシステンスは適用されません。

[Persistance]セクションのスクリーンショット

StoreFrontループバックの構成

ベースアドレスがロードバランサーである場合、StoreFrontサービス間の内部通信では、トラフィックがロードバランサーにルーティングされ、場合によっては別のサーバーにルーティングされる可能性があります。これにより、パフォーマンスが低下し、予期しない動作が発生します。これを回避するには、StoreFront設定の [ループバック通信を有効にする] を使用します。デフォルトでは、これは [オン] に設定されています。これは、スキーマ(HTTPまたはHTTPS)をそのまま維持しながら、サービスアドレスのホスト部分をループバックIPアドレス127.0.0.1に置き換えることを意味します。これは単一サーバー展開および非SSL終了ロードバランサーがある展開で機能します。

ロードバランサーがSSLで終了し、HTTP経由でStoreFrontと通信する場合(非推奨)、StoreFrontループバック通信をOnUsingHttpに構成する必要があります。これは、StoreFrontがスキーマをHTTPSからHTTPに変更することを意味します。

  1. Citrix StoreFrontを開きます。
  2. ストアごとに、[Receiver for Web サイトの管理]に移動します。Web サイトごとに、[構成] に移動します。
  3. [詳細設定] に移動
  4. [ループバック通信を有効にする] 設定を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へ負荷分散します。

サブスクリプション同期用のサービスグループの構成

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [トラフィック管理]>[負荷分散]>[サービスグループ]>[追加] の順に選択します。
  3. サービスグループ名を入力し、プロトコルを [TCP] に変更し、[OK] をクリックして保存します。
  4. [サービスグループメンバー] セクション内で、[サーバー]セクションで以前定義したすべてのStoreFrontサーバーノードを追加して [ポート]808に指定します。
  5. [モニター] セクションを追加します。
    1. バインドを監視するサービスグループがありません」と表示されている場所をクリックします。
    2. [追加] をクリックします。モニターの[名前] を入力し、その [種類][TCP] に設定します。[作成] をクリックします。
    3. [Bind] をクリックします。

TCPの監視のスクリーンショット

サブスクリプション同期用負荷分散仮想サーバーの作成

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [トラフィック管理]>[負荷分散]>[仮想サーバー]>[追加] の順に選択し、新しいサービスグループを作成します。
  3. [名前] の入力
  4. プロトコルを [TCP] に変更します。
  5. IPアドレスを入力します。
  6. [ポート]として808を入力します。

    負荷分散の808のスクリーンショット

  7. [OK] をクリックします。
  8. [負荷分散仮想サーバーのサービスグループバインドなし] をクリックし、前に作成したサービスグループを選択して、[バインド]をクリックします。
  9. [方法] セクションを追加し、[負荷分散方式][ROUNDROBIN] に設定します
  10. [Done] をクリックして変更を完了します。

ロードバランサー経由でサブスクリプションデータを取得するようにStoreFrontを構成する

サブスクリプション同期の構成」を参照してください。

レプリケーションスケジュールを構成する場合、サブスクリプション同期仮想サーバーの仮想ロードバランサーIPアドレスと一致するサーバーグループアドレスを指定します。

NetScaler ADCによる負荷分散