高可用性¶
ここでは、 License Manager および Denodo Security Token サーバーで高可用性 (HA) を実現する方法について説明します。このインストール後のタスクは任意ですが、Denodo の本番環境に単一障害点を設けないようにするためには必須です。
Denodo コンポーネント (Virtual DataPort サーバーや Scheduler サーバーなど) は、起動時に License Manager に実行許可を要求します。このために、コンポーネントは、その実行ホストの詳細 (ホスト名、IP アドレス、コア数など) を含む HTTP 要求を License Manager に送信します。要求が承認されると、コンポーネントは起動します。
各コンポーネントは、その動作を継続するために定期的に License Manager に要求を送信します。何らかの理由 (たとえば、License Manager が実行されるホストがダウンしているなど) で License Manager が応答しない場合、5 日間の 猶予期間 があります。この期間中、Denodo サーバーは通常どおり動作し、ライセンスの更新を試行し続けます。License Manager の応答がなくなってから 5 日たつと、コンポーネントはシャットダウンします。注意点として、猶予期間中はコンポーネントは動作し続けますが、コンポーネントを一度停止すると再起動できなくなります。なぜなら、個々の Denodo コンポーネントは License Manager にアクセスできないと起動しないためです。
一方、Denodo Security Token サーバーは、Solution Manager のシングルアクセスポイント機能の主要なシステムです。認証を外部の ID プロバイダー (たとえば、Azure Active Directory、Okta、PingFederate など) に委任するシングルサインオンメカニズムを開始し、有効な資格情報を生成して、他のアプリケーションがその資格情報を使用して Denodo Platform のすべてのコンポーネントにアクセスできるようにします。
License Manager および Denodo Security Token は、Denodo エコシステムの単一障害点とならないよう、高可用性 (HA) アーキテクチャにデプロイすることを強くお勧めします。それには、以下の手順に従ってください。
別のマシンに 2 つ目のインストール環境をデプロイします。
最初のインストール環境と 2 つ目のインストール環境の間に HA のためのロードバランサーを構成します。
Denodo Platform のすべてのサーバーが HA ロードバランサー経由で License Manager に接続するようにします。
Denodo Security Token サーバーへのすべてのリクエストが HA ロードバランサーを経由するように構成します。
次の図は、License Manager および Denodo Security Token で HA を実現するデプロイを表わしています。
License Manager は、 アクティブアクティブ 手法と アクティブパッシブ 手法に対応しています。つまり、任意のノードにリクエストをリダイレクトするようにロードバランサーを構成できます。
ただし、Denodo Security Token は、 アクティブパッシブ 手法に対応しています。つまり、プライマリノードにすべてのリクエストをリダイレクトし、プライマリノードで障害が発生した場合はセカンダリノードにリクエストを送信するようにロードバランサーを構成する必要があります。
手順 1: 高可用性を実現する Solution Manager インストール環境の構成¶
プライマリノード
Solution Manager プラットフォームを主要なノードにインストールします。
インストールした Solution Manager Administration Tool にログインし、 外部データベース を使用するように構成します。詳しい方法については、「 外部データベースの設定 」のセクションを参照してください。
これを行う場合、稼働時間の厳しい要件を満たすために、外部データベースの高可用性機能を有効にすることを検討してください。
[Configuration] > [Authentication] メニューで、使用する認証方式を構成します。インストール環境の構成後、後で利用できるように 構成をエクスポートして ファイルを保存します。詳しい方法については、「 インポートおよびエクスポート 」のセクションを参照してください。
注釈
これ以降、 [Configuration] > [Authentication] で行ったプライマリノードへの変更は、セカンダリノードには手動で複製する必要があります。
セカンダリノード
別のコンピュータに、同じインストール環境を使用して Solution Manager のコンポーネントをインストールします。これがインストール環境のセカンダリノードになります。この 2 番目のインストール環境には、最初の Solution Manager に使用したものと同じライセンスファイルを使用します。
セカンダリノードの Solution Manager Administration Tool にログインし、プライマリノードで指定したのと同じ外部データベースを使用するように構成します。
プライマリノードからエクスポートした構成を インポート します。これにより認証構成などが複製されます。
外部データベースの構成とインポートが完了したら、License Manager サーバーと Denodo Security Token を除くすべてのコンポーネントを停止します。Solution Manager は、クラスタでの使用は想定されておらず、License Manager と Denodo Security Token での使用のみが想定されています。想定されたサーバーだけが使用されるようにするには、それらのサーバー専用の起動スクリプトを使用してください (
licensemanager_startup.{sh|bat}
、denodo_sso_startup.{sh|bat}
)。
手順 2: 高可用性を実現する Load balancer の構成¶
重要
ロードバランサーでは、License Manager サーバーおよび Denodo Security Token サーバーのみを高可用性で動作するように構成します。Solution Manager サーバーとその管理ツールは、クラスタで動作するようには設計されていないため、高可用性の構成にはしないでください。
組織のロードバランサーでは、以前のノードを使用して、License Manager の場合は アクティブアクティブ 構成または アクティブパッシブ 構成、Denodo Security Token の場合は アクティブパッシブ 構成にします。正しいスキーム、ポート、Ping URL を考慮して、ルールと正常性チェックを適宜構成してください。
アプリケーション
デフォルトのポート
Ping のエンドポイント
License Manager
10091
/pingLicenseManager
Denodo Security Token
19090 / 19443
/sso/ping
例えば、プライマリ License Manager サーバーが稼働しているかどうかを調べるには、GET 要求を
https://<Solution Manager host>:10091/pingLicenseManager
に送信して、HTTP の成功ステータスコード 200 が返ってくるかどうかを確認します (詳細については、「 Solution Manager サーバーへの ping の実行 」を参照してください)。/sso リクエストに対し、ロードバランサーに パスベースルーティング を構成してください。Web コンテナーポート (デフォルトでは 19090/19443 ) にデプロイされたすべてのアーティファクトが HA をサポートしているわけではないからです。
手順 3: ロードバランサーを経由するアクセスの構成¶
Denodo Platform の環境
HA ノードと Denodo Platform マシンの両方のクロックが同期していることを確認します。Windows の場合、[時刻を同期する] オプションが有効であることを確認してください。Linux の場合、 ネットワークタイムプロトコル (NTP) サービスが有効であることを確認してください。
注釈
これらのコンピューターのクロックは、できる限り同期している必要があります。つまり、両方のコンピューターは、同じ時刻、同じ日付に設定されていなければなりません。そうでない場合、Denodo コンポーネントはライセンスを適切に取得できない可能性があります。クロックが同期していなければ、Virtual DataPort サーバーが「猶予期間」中のままになったり、猶予期間に入った時にシャットダウンしたりします。
Denodo Platform が ロードバランサー経由でアクセスする ようにするために、既存の環境を License Manager と Denodo Security Token に対して定義されたロードバランサーを参照するよう構成してください。これらのプロパティを手動で直接編集するか、Control Center で GUI を使用して編集します。詳細については、 Denodo Security Token に関するセクションを参照してください。
Solution Manager プラットフォーム
Solution Manager がロードバランサーを経由して シングルサインオン でアクセスできるようにするために、
<SOLUTION_MANAGER_HOME>/conf/SSOConfiguration.properties
を編集し、 sso.url プロパティにロードバランサーの URL が含まれるよう構成してください。sso.url=https://load-balancer.com
Denodo Security Token - ID プロバイダーの登録
このセクションの説明は、ID プロバイダーへシングルサインオンを委任するために Denodo Security Token を使用する場合にのみ適用されます。外部の ID プロバイダーでのクライアント登録プロセスでは、ロードバランサーの完全な URL を使用し、正しいリダイレクトパラメータが設定されるようにしてください。認証タイプによって相対 URL が異なることに留意してください。
OAuth: デフォルトは、 /sso-oauth/oauth-login 。ロードバランサーの完全な URL (
https://load-balancer.com:19443/sso/sso-oauth/oauth-login
) を Oauth サーバーにリダイレクト URI として登録し、ノードごとにそれをファイル<NODE-HOME>/conf/denodo-sso/SSOTokenConfiguration.properties
のプロパティ oauth.redirectUri として構成してください。oauth.redirectUri=https://load-balancer.com:19443/sso/sso-oauth/oauth-login
- OpenID Connect: デフォルトは、 /sso-openid/openid-login 。ロードバランサーの完全な URL (
https://load-balancer.com:19443/sso/sso-openid/openid-login
) を OpenID Connect サーバーにリダイレクト URI として登録し、ノードごとにそれをファイル<NODE-HOME>/conf/denodo-sso/SSOTokenConfiguration.properties
のプロパティ openid.redirectUri として構成してください。 セグメント50で訳出済み
openid.redirectUri=https://load-balancer.com:19443/sso/sso-openid/openid-login
- OpenID Connect: デフォルトは、 /sso-openid/openid-login 。ロードバランサーの完全な URL (
SAML: /sso-saml/SSO アサーションコンシューマーサービスの相対 URL。SAML クライアントの登録には、このアサーションコンシューマーサービスを使用し (
https://load-balancer.com:19443/sso/sso-saml/SSO
)、 サービスプロバイダーのベース URL を適宜構成してください。ノードごとにファイル<NODE-HOME>/conf/denodo-sso/SSOTokenConfiguration.properties
のプロパティ saml.sp-BaseEntityUrl を入力してください。saml.sp-BaseEntityUrl=https://load-balancer.com:19443/sso/sso-saml
SSL/TLS ターミネーションプロキシー の場合、ロードバランサーには別の構成が必要となります。構成ファイル
<NODE-HOME>/conf/denodo-sso/SSOTokenConfiguration.properties
を (ノードごとに) 編集し、プロパティforwardedHeader.enabled = true
を追加してください。これは、クライアントで指定されたプロトコルとアドレスを反映させるために Forwarded ヘッダーおよび X-Forwarded-* ヘッダーの使用を有効または無効にするオプションのプロパティです。クライアントが HTTP プロキシまたはロードバランサーを経由して Denodo Security Token サーバーに接続するときに有用です。また、ロードバランサーの構成で、ヘッダー Forwarded と X-Forwarded-* が正しく入力されていることを確認してください。
「 高可用性構成の Solution Manager の更新 」のセクションでは、License Manager および Denodo Security Token のクラスタの更新方法に関連するベストプラクティスを紹介しています。