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がCommon Name (CN) またはSubject Alternative Name (SAN) として含まれている必要があります。
サーバーグループのベースURLを負荷分散機能のURLに設定します。ベースURLを変更するには、Citrix StoreFront管理コンソールで、左側のペインにある [サーバーグループ] を右クリックし、[ベースURLの変更] をクリックします。負荷分散仮想サーバーのURLを入力します。
オプション: HTTPS用Citrix Serviceモニターの構成
StoreFrontのインストールには、Citrix Serviceモニター 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<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サーバーの証明書を信頼するために必要です。
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [Traffic Management] > [SSL] > [Certificates] > [CA Certificates] の順に選択します。
- [Install] をクリックします。
- [Install CA Certificate] ページで、証明書とキーのペア名を入力し、[Choose File] をクリックして証明書ファイルを参照します。
- [Install] をクリックします。
サーバー証明書のインストール
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パスフレーズを入力するプロンプトが表示されます。
証明書をインストールするには:
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [Traffic Management] > [SSL] > [Certificates] > [CA Certificates] の順に選択します。
- [Install] をクリックします。
-
[Install CA Certificate] ページで、次の操作を行います。
- [Certificate-Key Pair Name] を入力します。
- [Certificate File Name] で、[Choose File] をクリックして証明書ファイルを参照します。
- [Key File Name] で、[Choose File] をクリックしてキーファイルを参照します。
- [Password] にパスフレーズを入力します。
- [Install] をクリックします。
- [Link] をクリックして、証明書をルート証明書にリンクします。

NetScaler ADCアプライアンス負荷分散への個々のStoreFrontサーバーノードの追加
-
[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用に構成している場合は、[Secure] オプションが選択されていることを確認します。それ以外の場合は、このオプションを選択解除し、ポート8000を入力します。
-
[Check Backend Services] オプションを選択します。このオプションにより、StoreFrontサーバーで実行されているサービスの監視が有効になります。StoreFrontサービスは、StoreFrontサーバーで実行されているWindowsサービスをプローブすることによって監視され、次のサービスのステータスを返します。
- W3SVC (IIS)
- WAS (Windows Process Activation Service)
- CitrixCredentialWallet
- CitrixDefaultDomainService

すべてのStoreFrontサーバーを含むサービスグループの作成
-
[Traffic Management] > [Load Balancing] > [Service Groups] の順に移動します。[Add] を押します。HTTPS経由でStoreFrontサーバーに接続するには、プロトコルとしてSSLを選択します。その他の設定はデフォルトのままにします。[OK] を押します。
-
サービスグループ内で、[Service Group Members] の下にある [No Service Group Member] をクリックします。
- [Service Based] をクリックします。
- 以前に定義したすべてのサーバーを選択します。
- 負荷分散機能とStoreFrontサーバー間でSSLを使用するには、ポート443を入力します。それ以外の場合は、ポート80を入力します。

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

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

-
[Settings] セクションを追加します。[Insert Client IP Header] を選択し、ヘッダー名として X-Forwarded-For を入力します。これにより、Citrix Virtual Apps and DesktopsポリシーでクライアントIPアドレスを使用できます。
ユーザー通信用の負荷分散仮想サーバーの作成
-
NetScaler ADCアプライアンス管理GUIにログオンします。
-
[Traffic Management] > [Load Balancing] > [Virtual Servers] > [Add] の順に選択して、新しい仮想サーバーを作成します。
-
名前を入力し、プロトコルとしてSSLを選択し、[Port] を入力します。[OK] をクリックして仮想サーバーを作成します。

-
以前に作成したサービスグループを負荷分散仮想サーバーにバインドします。
-
以前にサービスグループにバインドしたのと同じサーバー証明書とCA証明書をバインドします。
-
[Method] セクションを追加し、負荷分散方法を選択します。StoreFrontの負荷分散で一般的に選択されるのは、ラウンドロビンまたは最小接続です。

-
[Persistence] セクションを追加します。
-
永続性メソッドを COOKIEINSERT に設定します。
-
タイムアウトを、StoreFront内のセッションタイムアウト(デフォルトでは20分)と同じに設定します。
-
Cookieに名前を付けます。たとえば、デバッグ中に識別しやすいように NSC_SFPersistence とします。
-
バックアップ永続性を NONE に設定します。
注:
クライアントがHTTP Cookieの保存を許可されていない場合、後続のリクエストにはHTTP Cookieがなく、永続性は使用されません。
-

StoreFrontループバックの構成
ベースアドレスが負荷分散機能である場合、StoreFrontサービス間の内部通信では、トラフィックが負荷分散機能にルーティングされ、場合によっては別のサーバーにルーティングされる可能性があります。これにより、パフォーマンスの低下や予期しない動作が発生します。これを回避するには、StoreFront設定のループバック通信の有効化を使用します。デフォルトでは、これは [On] に設定されており、サービスアドレスのホスト部分をループバック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を負荷分散します。
サブスクリプション同期用サービスグループの構成
- NetScaler ADCアプライアンス管理GUIにログオンします。
-
[Traffic Management] > [Load Balancing] > [Service Groups] > [Add] の順に選択します。
- サービスグループ名を入力し、プロトコルを TCP に変更して、[OK] をクリックして保存します。
- [Service Group Members] セクションで、以前に [Servers] セクションで定義したすべてのStoreFrontサーバーノードを追加し、[Port] を 808 に指定します。
-
[Monitors] セクションを追加します。
- [No Service Group to monitor Binding] と表示されている場所をクリックします。
- [Add] をクリックします。モニターの [Name] を入力し、[Type] を TCP に設定します。[Create] をクリックします。
- [Bind] をクリックします。

サブスクリプション同期用負荷分散仮想サーバーの作成
- NetScaler ADCアプライアンス管理GUIにログオンします。
- [Traffic Management] > [Load Balancing] > [Virtual Servers] > [Add] の順に選択し、新しいサービスグループを追加します。
- [Name] を入力します。
- プロトコルを TCP に変更します。
- IPアドレスを入力します。
-
[Port] に 808 を入力します。

- [OK] をクリックします。
- [No Load Balancing Virtual Server ServiceGroup Binding] をクリックし、以前に作成したサービスグループを選択して [Bind] をクリックします。
- [Method] セクションを追加し、[Load Balancing Method] を ROUNDROBIN に設定します。
- [Done] をクリックして変更を完了します。
負荷分散経由でのサブスクリプションデータ取得用StoreFrontの構成
サブスクリプション同期の構成を参照してください。
レプリケーションスケジュールを構成するときは、サブスクリプション同期仮想サーバーの仮想負荷分散機能IPアドレスと一致するサーバーグループアドレスを指定します。