分散環境におけるContrastの構成
Contrastを分散環境で構成するには、データベースとアプリケーションサーバを別々のサーバに配置します。この分散構成は、次のような場合に使用します。
接続するエージェント数が100以上になる予定がある
このような場合に分散構成を使用しないと、パフォーマンスの問題が発生する可能性があります。
パフォーマンスとスケーラビリティの向上のためロードバランシングを利用したい
追加の管理や運用が必要
分散構成の例
ここでは、Linux環境でContrastを/usr/local/contrastにインストールする場合の設定を例として使用します。ご利用の組織で異なる環境を使用する場合や、サードパーティ製ソフトウェアのインストール先に関するガイドラインが異なる場合があります。
本項では、以下のように各サーバを使用する構成を例とします。
1台のロードバランサー
1台のデータベースサーバ
Contrastアプリケーションを実行する2台のアプリケーションサーバ
必要に応じて、さらにサーバを増やすことができます。
開始する前に
Contrastを分散環境で構成するには、ご利用の環境およびその環境で問題なく処理できる負荷等について理解している必要があります。
分散環境の導入が適しているか、もしくはお客様専用のContrastのSaaSインスタンスを使用するのが最適かを判断するために、まずは弊社サポートまでお問い合わせください。
既にContrastを使用している場合は、既存のインスタンスをアプリケーションサーバ1(Contrast Node 1)として使用し、分散データベースの設定を使用していることを確認してください。続行する前に、次の操作を行う必要があります。
MySQLの分散環境をまだ構築していない場合は、分散型MySQLを作成すること。
$CONTRAST_HOME/VERSION
ファイルの内容を見て、アプリケーションサーバ1で実行中のContrastのバージョンを確認すること。アプリケーションサーバ 2(Contrast Node 2)の作成に使用するインストーラが、 アプリケーションサーバ1よりも新しいバージョンのContrastを使用している場合は、まずアプリケーションサーバ1を同じバージョンにアップグレードする必要があります。
Contrastを新規にインストールする場合は、次の操作が必要です。
分散型MySQL環境の作成の手順1から8に従って、データベースサーバにMySQLをインストールして設定すること。
アプリケーションサーバ1に、分散データベース構成でContrastをインストールすること。例:
Choose a MySQL database configuration. Default [1, Enter], Distributed [2]2 Host [localhost] <enter hostname of MySQL server> Port [13306] <enter port to be used to access MySQL server - usually 3306> Credentials Username <enter name of MySQL user that was created for Contrast> Password <enter password for MySQL user>
各分散サーバの設定
以下のファイルをアプリケーションサーバ1から、アプリケーションサーバ2の一時的な場所にコピーします。
$CONTRAST_HOME/data/conf/server.properties
アプリケーションサーバ1を HTTPSに設定した場合は、関連するサーバのキーストアファイル
アプリケーションサーバ1にシングルサインオン(SSO)が設定されている場合は、以下の手順を実行します。
暗号化プロパティエディタを
$CONTRAST_HOME/data/conf/saml.properties
に対して実行し、設定値を取得します。プロンプトでq
を入力します(値は変更しません)。例:$ bin/edit-properties -e data/esapi/ -f data/conf/saml.properties authenticator.saml.keystore.default.key : some_alias authenticator.saml.secret.url : authenticator.saml.keystore.path : /path/to/samlKeystore.jks authenticator.saml.keystore.password : changeit authenticator.saml.keystore.passwordMap : some_alias=changeit Enter the name of the property to edit [q to Quit]: q
上記で取得した値を含めた
saml.properties.cleartext
という名前の新しいファイルを作成しますが、次のように:
の代わりに=
に置き換えた書式設定にします。authenticator.saml.keystore.default.key=some_alias authenticator.saml.secret.url= authenticator.saml.keystore.path=/path/to/samlKeystore.jks authenticator.saml.keystore.password=changeit authenticator.saml.keystore.passwordMap=some_alias=changeit
関連するSAMLキーストアをアプリケーションサーバ1から、アプリケーションサーバ2の一時的な場所にコピーします。
アプリケーションサーバ2(Contrast Node 2)にContrastをインストールします。
インストールが完了したらアプリケーションサーバのContrastサーバを停止します。
server.properties
ファイル、関連するサーバキーストア、saml.properties.cleartext
ファイル、関連するSAMLキーストア(該当する場合)を、アプリケーションサーバ2の同じディレクトリ(通常は$CONTRAST_HOME/data/conf/)
に配置します。アプリケーションサーバ2でContrastサーバを起動します。
Contrastで作成されたデフォルトユーザでテストして、 Contrastの両方のアプリケーションサーバ (Node 1およびNode 2)が機能することを確認してください。
4台目のサーバにロードバランサ(NGINXなど)を設定します。NGINXを選択した場合は、基本的なインストール手順を使用してください。
注記
Contrastでは、パフォーマンスを向上させるためにパーシステンスまたはスティッキーセッションが必要です。例えば、NGINXロードバランサでは、IPハッシュ方式を使用して、同じアドレスからのリクエストが使用可能な場合に、同じサーバに届くことを保証します。
サーバをセットアップしたら、ロードバランサを指定するようにContrastを設定する必要があります。この設定を行うには、各ノードの/data/conf/general.propertiesファイルを編集します。YAML設定ファイルのteamserver.urlの値をロードバランサの値に変更し、Contrastアプリケーションサーバを再起動します。
ロードバランサのヘルスチェックを行う場合は、以下のURLを使用します。
<CONTRAST_SERVER>/Contrast/api/public/ng/information
ここで、
<CONTRAST_SERVER>
はContrastアプリケーションのサーバのホスト名になります。重要
エージェントは、Contrast URLを使用してアプリケーションと通信します。Contrastはホスト名を判断することで、この値をあらかじめ設定します。ネットワーク上のクライアントが指定されたホスト名を解決できない場合、クライアントはサーバと通信できなくなります。この値には、エージェントが到達可能なContrastのホストかロードバランサを設定してください。
インストールが完了すると、Contrastの初期設定が始まります。完全に起動するまでに2〜3分かかることがあります。
設定の進行状況を確認するには、
server.log
とcontrast.log
をチェックしてください。サーバが正常に起動すると、server.log
に次のようなメッセージが表示されます。260916 20.18.25,837 {} {} {} INFO (Server.java:303) Contrast TeamServer Ready -