StoreFront

NetScaler® ADC を使用したロードバランシング

この記事では、2つ以上のStoreFrontサーバーを含むStoreFrontサーバーグループを、すべてアクティブなロードバランス構成で展開する方法についてガイダンスを提供します。この記事では、NetScaler ADCアプライアンスを構成して、Citrix WorkspaceアプリおよびWebブラウザーからの受信要求をサーバーグループ内のStoreFrontサーバー間でロードバランスする方法について詳しく説明します。

StoreFrontサーバーグループのロードバランサー用DNSレコードの作成

選択した共有FQDNのDNS AおよびPTRレコードを作成します。ネットワーク内のクライアントは、このFQDNを使用してNetScaler ADCアプライアンスロードバランサー経由でStoreFrontサーバーグループにアクセスします。

例: storefront.example.com は、ロードバランシング仮想サーバーの仮想IP (VIP) に解決されます。

StoreFrontサーバーの構成

ロードバランスするすべてのStoreFrontサーバーは、サーバー間で構成を同期し、同一に構成されるようにStoreFrontサーバーグループの一部として構成する必要があります。サーバーグループにサーバーを追加する方法の詳細については、「既存のサーバーグループへの参加」を参照してください。

ロードバランサーとStoreFrontサーバー間の通信が暗号化されるように、各サーバーはHTTPS用に構成する必要があります。「HTTPSによるStoreFrontの保護」を参照してください。証明書には、ロードバランスされたFQDNが共通名 (CN) またはサブジェクトの別名 (SAN) として含まれている必要があります。

サーバーグループのベースURLをロードバランサーのURLに設定します。ベースURLを変更するには、Citrix StoreFront管理コンソールで、左側のペインで [サーバーグループ] を右クリックし、[ベースURLの変更] をクリックします。ロードバランサー仮想サーバーのURLを入力します。

オプション: HTTPS用のCitrix Service Monitorの構成

StoreFrontのインストールには、Citrix Service Monitor Windowsサービスが含まれています。このサービスには他のサービス依存関係はなく、重要なStoreFrontサービスの健全性を監視します。これにより、NetScaler ADCおよびその他のサードパーティアプリケーションは、StoreFrontサーバー展開の相対的な健全性を監視できます。

デフォルトでは、モニターはポート8000でHTTPを使用します。オプションで、これをポート443でHTTPSを使用するように変更できます。

  1. プライマリStoreFrontサーバーでPowerShell統合スクリプト環境 (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

    <ArrayOfServiceStatus xmlns="http://schemas.datacontract.org/2004/07/Citrix.DeliveryServices.ServiceMonitor.Contract" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ServiceStatus>
        <name>Citrix Peer Resolution Service</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixConfigurationReplication</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixCredentialWallet</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixDefaultDomainService</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>CitrixSubscriptionsStore</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>NetTcpPortSharing</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>WAS</name>
        <status>running</status>
    </ServiceStatus>
    <ServiceStatus>
        <name>W3SVC</name>
        <status>running</status>
    </ServiceStatus>
    </ArrayOfServiceStatus>
    <!--NeedCopy-->
    

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

ルート証明書のインストール

StoreFrontサーバーが内部認証局によって署名された証明書を使用している場合、NetScalerにルート証明書をインストールする必要があります。これは、NetScalerがStoreFrontサーバーの証明書を信頼するために必要です。

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [Traffic Management] > [SSL] > [Certificates] > [CA Certificates] の順に選択します。
  3. [インストール] をクリックします。
  4. [CA証明書のインストール] ページで、証明書-キーペア名を入力し、[ファイルの選択] をクリックして証明書ファイルを参照します。
  5. [インストール] をクリックします。

サーバー証明書のインストール

HTTPSを有効にするには、サブジェクトの別名にロードバランサーのFQDNが含まれる証明書が必要です。エンタープライズまたはパブリック認証局で証明書に署名できます。

PEM形式の個別の証明書ファイルとキーファイルが必要です。秘密キーを含む証明書がPKCS12形式である場合は、openssl を使用してファイルを変換できます。例:

openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.cer
openssl pkcs12 -in cert.pfx -nocerts -out storefrontlbeu.key
<!--NeedCopy-->

既存のパスワードと新しいPEMパスフレーズを入力するプロンプトが表示されます。

証明書をインストールするには:

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [Traffic Management] > [SSL] > [Certificates] > [CA Certificates] の順に選択します。
  3. [インストール] をクリックします。
  4. [CA証明書のインストール] ページで、次の操作を行います。
    1. [証明書-キーペア名] を入力します。
    2. [証明書ファイル名] で、[ファイルの選択] をクリックして証明書ファイルを参照します。
    3. [キーファイル名] で、[ファイルの選択] をクリックしてキーファイルを参照します。
    4. [パスワード] にパスフレーズを入力します。
    5. [インストール] をクリックします。
  5. [リンク] をクリックして、証明書をルート証明書にリンクします。

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

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

  1. [Traffic Management] > [Load Balancing] > [Servers] に移動します。[追加] をクリックし、ロードバランスする各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] > [追加] の順に選択し、StoreFront という名前の新しいモニターを追加し、すべてのデフォルト設定を受け入れます。
  3. [タイプ] ドロップダウンメニューから、[StoreFront] を選択します。
  4. StoreFrontモニターをHTTPS用に構成した場合は、[セキュア] オプションが選択されていることを確認します。それ以外の場合は、このオプションを選択解除し、ポート8000を入力します。
  5. [バックエンドサービスの確認] オプションを選択します。このオプションは、StoreFrontサーバーで実行されているサービスの監視を有効にします。StoreFrontサービスは、StoreFrontサーバーで実行されているWindowsサービスをプローブすることで監視され、次のサービスのステータスを返します。
    • W3SVC (IIS)
    • WAS (Windows Process Activation Service)
    • CitrixCredentialWallet
    • CitrixDefaultDomainService

    モニター作成画面のスクリーンショット

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

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

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

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

    サービスグループメンバー作成ページのスクリーンショット

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

    モニターがリストされたモニター画面のスクリーンショット

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

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

    バインディング追加画面のスクリーンショット

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

ユーザー通信用のロードバランシング仮想サーバーの作成

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

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

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

    NetScalerロードバランシング仮想サーバー画面のスクリーンショット

  4. 以前に作成した [サービスグループ] をロードバランシング仮想サーバーにバインドします。

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

  6. [メソッド] セクションを追加し、ロードバランシングメソッドを選択します。StoreFrontのロードバランシングで一般的な選択肢は、ラウンドロビン または 最小接続 です。

    ロードバランシングメソッドセクションのスクリーンショット

  7. [永続性] セクションを追加します。

    1. 永続性メソッドを COOKIEINSERT に設定します。

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

    3. Cookieに名前を付けます。たとえば、デバッグ中に識別しやすいように NSC_SFPersistence とします。

    4. バックアップ永続性を [なし] に設定します。

    注:

    クライアントがHTTP Cookieの保存を許可されていない場合、後続の要求にはHTTP Cookieがなく、永続性は使用されません。

永続性セクションのスクリーンショット

StoreFrontループバックの構成

ベースアドレスがロードバランサーである場合、StoreFrontサービス間の内部通信では、トラフィックがロードバランサーにルーティングされ、場合によっては別のサーバーにルーティングされる可能性があります。これにより、パフォーマンスが低下し、予期しない動作が発生します。これを回避するには、StoreFront設定の ループバック通信の有効化 を使用します。デフォルトでは、これは [オン] に設定されており、サービスアドレスのホスト部分をループバックIPアドレス127.0.0.1に置き換え、スキーム (HTTPまたはHTTPS) はそのまま維持されます。これは、単一サーバー展開およびSSL終端を行わないロードバランサーを使用した展開で機能します。ロードバランサーが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. [Traffic Management] > [Load Balancing] > [Service Groups] > [追加] の順に選択します。
  3. サービスグループ名を入力し、プロトコルを [TCP] に変更して、[OK] をクリックして保存します。
  4. [サービスグループメンバー] セクションで、以前にサーバーセクションで定義したすべてのStoreFrontサーバーノードを追加し、[ポート][808] に指定します。
  5. [モニター] セクションを追加します。
    1. [モニターバインディングへのサービスグループなし] と表示されている場所をクリックします。
    2. [追加] をクリックします。モニターの [名前] を入力し、[タイプ][TCP] に設定します。[作成] をクリックします。
    3. [バインド] をクリックします。

モニターTCPのスクリーンショット

サブスクリプション同期用のロードバランシング仮想サーバーの作成

  1. NetScaler ADCアプライアンス管理GUIにログオンします。
  2. [Traffic Management] > [Load Balancing] > [Virtual Servers] > [追加] の順に選択し、新しいサービスグループを追加します。
  3. [名前] を入力します。
  4. プロトコルを [TCP] に変更します。
  5. IPアドレスを入力します。
  6. [ポート][808] を入力します。

    ロードバランス808のスクリーンショット

  7. [OK] をクリックします。
  8. [ロードバランシング仮想サーバーサービスグループバインディングなし] をクリックし、以前に作成したサービスグループを選択して [バインド] をクリックします。
  9. [メソッド] セクションを追加し、[ロードバランシングメソッド][ROUNDROBIN] に設定します。
  10. [完了] をクリックして変更を完了します。

ロードバランサー経由でのサブスクリプションデータ取得のためのStoreFrontの構成

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

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

NetScaler® ADC を使用したロードバランシング