Sun ONE Identity Server 配備ガイド |
付録 D
ロードバランサの設定Sun ONE Identity Server は、ロードバランサで使用できるように設定できます。この章では、ロードバランスの機能およびロードバランスを実現する方法について説明します。次の節で構成されています。
ロードバランサの概要ロードバランスを使用すると、通常は 1 つのサーバーで実行される作業を複数のサーバー間で配分することで、同一時間内により多くの作業を処理できるようになります。一般に、これはすべてのユーザーの要求がより高速に処理されることを意味します。ロードバランスは、ハードウェア、ソフトウェア、またはその組み合わせで実現されます。図 5-7 に、ロードバランサで使用できるように Identity Server の配備を設定する方法を示します。この設定では、Identity Server のすべてのインスタンスが同一の Directory Server を共有することが重要です。設定が完了すると、ロードバランサ (およびすべての Identity Server サービス) が URL http://loadbalancer_host.domain:port/amconsole 経由でアクセスされます。
図 5-7 Identity Server をロードバランサで使用する場合の設定
スティッキーセッション
ロードバランサを Identity Server に配備する場合、ロードバランサがスティッキーセッションをサポートしている必要があります。スティッキーセッションにより、指定されたサーバーによるセッションの作成後に、セッション情報を保持するため、ユーザーからの後続の要求が同一のサーバーに引き続き配信されます。Identity Server は Cookie を使用してセッション情報を中継するため、ロードバランサはセッションを作成したサーバーへのリダイレクトを実行する必要があります。スティッキーセッションが存在しない場合、すべてのサーバーを信頼する必要があるため、パフォーマンスが低下します。
Resonate Central Dispatch のインストール
Resonate Central Dispatch は、ソフトウェアベースのロードバランサです。Identity Server をロードバランサで使用できるように設定する最初のステップは、ロードバランサのインストールです。2 つの物理サーバーが存在することを前提として、マシンが同一のサブネットに存在することを確認します。machine1 に Sun ONE Web Server、Sun ONE Directory Server、および Identity Server をこの順番でインストールし、Identity Server のインスタンスがインストール済みの Directory Server インスタンスを指し示すようにします。machine2 に Sun ONE Web Server および Identity Server をインストールし、Identity Server のインスタンスが server1 にインストール済みの Directory Server インスタンスを指し示すようにします。Central Dispatch ソフトウェアは、次のようにインストールします。
インストール処理中に、Reporter Agent が両方のマシンに自動的にインストールされます。表 5-1 に、設定手順で使用される可能性のある Central Dispatch に固有の用語を示します。
Central Dispatch のインストールおよび製品全般について詳しくは、ソフトウェアに同梱のドキュメントセットを参照してください。
ロードバランサの設定「スティッキーセッション」は、setcookie 関数またはロードバランサ Cookie を使用して実装できます。以降の節で、両方のオプションに合わせてロードバランサを設定する手順を示します。説明する手順は Resonate Central Dispatch ロードバランサに適用されますが、任意のロードバランサソフトウェアで動作するように修正することも可能です。
Central Dispatch を setcookie 用に設定する
- admintool を使用して、2 つの Solaris ユーザー (cdadmin および cdmon) を作成します。
- server1 上で CDMaster コンソールを起動します。
デフォルトディレクトリ (/usr/local/resonate/cd/cdmaster/bin) に移動して、./cdmaster を実行します。指示に従って、machine2 にインストールされた CDAdapter に接続します。
- CDMaster の左側のフレーム内の「Nodes」をクリックし、インストール済みの 2 つの Identity Server インスタンスのそれぞれに対して 1 つのノードを作成します。
図 5-8 に、この手順の実行時の CDMaster コンソールのスクリーンショットを示します。
図 5-8 Resonate を使用したノードの作成
- CDMaster の左側のフレーム内で「VIPs」をクリックし、ロードバランサのインストール先ホストの新規仮想 IP アドレスを作成します。
図 5-9 に、この手順および後続の手順を実行する際の CDMaster コンソールのスクリーンショットを示します。Primary SchedulerおよびBackup Schedulerが正しく設定されていることを確認してください。
図 5-9 仮想 IP アドレスを新規作成する
- 「VIPs」の右側のフレーム内の「Scheduling Rules」をクリックして「HTTP」を選択し、次のように HTTP スケジューリングルールを設定します。
- CDMaster の左側のフレームの「Scheduling Rules」で、「HTTP」をクリックします。
図 5-10 に、この手順および後続の手順を実行する際の CDMaster コンソールのスクリーンショットを示します。
- 右側のフレーム下部の「Server」タブを選択します。
サーバーが選択されていることを確認します。
- 右側のフレーム下部の「Load Balancing」タブをクリックし、「Round Robin (Basic)」を選択します。
図 5-10 HTTP スケジューリングルールを設定する
- CDMaster の左側のフレームの「Nodes」をクリックし、Identity Server の 2 番目のインスタンスである server2 の設定済みノードを選択します。
図 5-11 に、この手順および後続の手順を実行する際の CDMaster コンソールのスクリーンショットを示します。
図 5-11 CDMaster でノードを設定する
- 右側のフレーム上部の「Properties」をクリックし、エイリアスが server2.example.com であり、Server Enabled および Server auto enabled が選択されていることを確認します。
- 右側のフレーム下部の「VIP Scheduling」タブをクリックして、プライマリ仮想 IP がロードバランサのインストール先ホストに設定されていることを確認します。
- 右側のフレーム下部の「Scheduling Rules」タブを選択して、すべてのサーバーおよびポートが「Component」に表示されることを確認します。
説明した手順に従って Identity Server の最初のインスタンス (server1) を設定します。ただし、手順 11 は、server2 を「Scheduling Rules」で「Primary」として設定する手順であるため、省略します。
- CDMaster の左側のフレームの「Scheduling Rules」をクリックします。
図 5-12 に、この手順および後続の手順を実行する際の CDMaster コンソールのスクリーンショットを示します。
図 5-12 Cookie Persistence Scheduling Ruleを設定する
- 「Cookie/CGI Persistence」を選択して、Cookie Persistence Scheduling Ruleを作成します。
属性と値のペアが、iPlanetDirectoryPro=* として定義されます。
- ルールにラベルを設定し、仮想 IP 用の適切なポートが定義されていることを確認します。
VIP リストには、ロードバランサがインストールされた、設定済みのホストが含まれていなければなりません。
- 右側のフレーム下部の「Server」タブを選択し、両方のサーバーにチェックが付けられていることを確認します。
- 右側のフレーム下部の「Load Balancing」タブを選択し、「Round Robin (Basic)」を選択します。
これで、setcookie 用の Central Dispatch の設定が完了しました。引き続いて次の節「Identity Server を setcookie 用に設定する」に進み、配備を完成させてください。
Identity Server を setcookie 用に設定する
setcookie の使用時にロードバランサを認識できるように、server1 および server2 用の Identity Server の設定を更新する必要があります。
- server1 にインストールされた Identity Server インスタンスに、amadmin としてログインします。
- ロードバランサがインストールされたホストマシンの値を、「組織のエイリアス」属性に追加します。
「アイデンティティ管理」タブで最上位の組織を表示して、「組織のエイリアス」属性を見つけます。
- server2 を、「サービス設定」タブの「プラットフォーム」内にある「サーバーリスト」属性に追加します。
- AMConfig.properties で fqdnMap プロパティを設定します。
デフォルトでは、fqdnMap プロパティはコメントアウトされています。# を削除し、このプロパティを com.sun.identity.server.fqdnMap[loadbalancer_host.domain]=loadbalancer_host.domain として設定してください。
- server1 および server2 を再起動します。
設定が正しく行われたことを確認する方法については、「設定を確認する」を参照してください。
ロードバランサ Cookie の使用に合わせて Central Dispatch を設定する
- admintool を使用して、2 つの Solaris ユーザー (cdadmin および cdmon) を作成します。
- server1 上で CDMaster コンソールを起動します。
デフォルトディレクトリ (/usr/local/resonate/cd/cdmaster/bin) に移動して、./cdmaster を実行します。指示に従って、server2 にインストールされた CDAdapter に接続します。
- CDMaster の左側のフレーム内の「Nodes」をクリックし、インストール済みの 2 つの Identity Server インスタンスのそれぞれに対して 1 つのノードを作成します。
- CDMaster の左側のフレーム内で「VIPs」をクリックし、ロードバランサのインストール先ホスト新規仮想 IP アドレスを作成します。
Primary SchedulerおよびBackup Schedulerが設定されていることを確認してください。
- 「VIPs」の右側のフレーム内の「Scheduling Rules」をクリックして「HTTP」を選択し、次のように HTTP スケジューリングルールを設定します。
- CDMaster の左側のフレームの「Scheduling Rules」で、「HTTP」をクリックします。
- 右側のフレーム下部の「Server」タブを選択します。
サーバーが選択されていることを確認します。
- 右側のフレーム下部の「Load Balancing」タブをクリックし、「Round Robin (Basic)」を選択します。
- CDMaster の左側のフレームの「Nodes」をクリックし、Identity Server の 2 番目のインスタンスである server2 の設定済みノードを選択します。
- 右側のフレーム上部の「Properties」をクリックし、エイリアスが server2.example.com であり、Server Enabled および Server auto enabled が選択されていることを確認します。
- 右側のフレーム下部の「VIP Scheduling」タブをクリックして、プライマリ仮想 IP がロードバランサのインストール先ホストに設定されていることを確認します。
- 右側のフレーム下部の「Scheduling Rules」タブを選択して、すべてのサーバーおよびポートが「Component」に表示されることを確認します。
説明した手順に従って Identity Server の最初のインスタンス (server1) を設定します。ただし、手順 11 は、server2 を「Scheduling Rules」で「Primary」として設定する手順であるため、省略します。
- CDMaster の左側のフレームの「Scheduling Rules」をクリックします。
- 「Cookie/CGI Persistence」を選択して、Cookie Persistence Scheduling Ruleを server1 用に 1 つ、server2 用に 1 つ、合計 2 つ作成します。
- server1 にラベルを設定し、仮想 IP 用の適切なポートが定義されていることを確認します。
VIP リストには、ロードバランサがインストールされた、設定済みのホストも含まれていなければなりません。
- 「Resource」として cookie を選択し、Attribute-value pair を server1=server1 として定義します。
- 右側のフレーム下部の「Server」タブを選択し、両方のサーバーが選択されていることを確認します。
- 右側のフレーム下部の「Load Balancing」タブを選択し、「Round Robin (Basic)」を選択します。
これで、ロードバランサ Cookie 用の Central Dispatch の設定が完了しました。引き続いて次の節「ロードバランサ Cookie に合わせて Identity Server を設定する」に進み、配備を完成させてください。
ロードバランサ Cookie に合わせて Identity Server を設定する
ロードバランサを認識できるように、server1 および server2 用の Identity Server の設定を更新する必要があります。
- server1 にインストールされた Identity Server インスタンスに、amadmin としてログインします。
- ロードバランサがインストールされたホストマシンの値を、「組織のエイリアス」属性に追加します。
「アイデンティティ管理」タブで最上位の組織を表示して、「組織のエイリアス」属性を見つけます。
- server2 を、「サービス設定」タブの「プラットフォーム」内にある「サーバーリスト」属性に追加します。
- AMConfig.properties で fqdnMap プロパティを設定します。
デフォルトでは、fqdnMap プロパティはコメントアウトされています。# を削除し、このプロパティを com.sun.identity.server.fqdnMap[loadbalancer_host.domain]=loadbalancer_host.domain として設定してください。
- 次のプロパティを、server1 および server2 上の AMConfig.properties にそれぞれ追加します。
- server1 および server2 を再起動します。
設定を確認する次の手順で、設定が適正であることを確認します。
- コンソールの「Manage」タブ内の「Start」を選択して、CDMaster を起動します。
- 複数の新規ユーザーを作成し、作成したユーザーでログインします。
- Web ブラウザの「Location」バーに、http://loadbalancer_host.domain:port/amconsole と入力します。
- Identity Server に amadmin でログインし、「現在のセッション」タブを選択します。
amadmin として、作成したユーザーおよび対応するサーバーが表示可能になります。ユーザーは、セッションを開始したサーバーにすべてをリダイレクトする必要があります。これは、Web サーバーのアクセスログを使用しても確認できます。