高可用性を実現するために、次の 2 つのシナリオで Apigee SSO の複数のインスタンスをインストールします。
- 単一のデータセンター環境に、2 つの Apigee SSO インスタンスを つまり、Apigee SSO に Apigee 以外の SSO バックエンドがあれば、 停止します。
- データセンターが 2 つある環境では、両方のデータセンターに Apigee SSO をインストールして、 Apigee SSO モジュールのいずれかが停止しても、システムは動作し続けます。
同じ環境に 2 つの Apigee SSO モジュールをインストールする データセンター
単一のデータセンターの異なるノードに Apigee SSO の 2 つのインスタンスをデプロイし、 高可用性を実現できます。次のようになります。
- Apigee SSO の両方のインスタンスが同じ Postgres サーバーに接続されている必要があります。Apigee の推奨事項 Apigee SSO に専用の Postgres サーバーを使用し、使用している Postgres サーバーとは異なる インストールされています。
- Apigee SSO の両方のインスタンスでは、
SSO_JWT_SIGNING_KEY_FILEPATH
およびSSO_JWT_VERIFICATION_KEY_FILEPATH
プロパティを宣言します。Apigee SSO をインストールして構成するをご覧ください。 ご覧ください - Apigee SSO の 2 つのインスタンスの前にロードバランサが必要です。
<ph type="x-smartling-placeholder">
- </ph>
- ロードバランサはアプリケーションで生成された Cookie の固定をサポートする必要があります。また、セッションは
Cookie の名前は
JSESSIONID
にする必要があります。 - Apigee SSO で TCP または HTTP のヘルスチェックを実行するようにロードバランサを構成します。TCP の場合、
Apigee SSO の URL を使用します。
http_or_https://edge_sso_IP_DNS:9099
Apigee SSO によって設定されたポートを指定します。デフォルトはポート 9099 です。
HTTP の場合は、
/healthz
を含めます。http_or_https://edge_sso_IP_DNS:9099/healthz
- 一部のロードバランサの設定は、Apigee SSO で HTTPS を有効にしたかどうかによって異なります。詳しくは、 以下のセクションをご覧ください。
- ロードバランサはアプリケーションで生成された Cookie の固定をサポートする必要があります。また、セッションは
Cookie の名前は
HTTP アクセス Apigee SSO へ
Apigee SSO への HTTP アクセスを使用している場合は、次のようにロードバランサを構成します。
- HTTP モードを使用して Apigee SSO に接続します。
Apigee SSO と同じポートでリッスンします。
デフォルトでは、Apigee SSO はポート 9099 で HTTP リクエストをリッスンします。必要に応じて、
SSO_TOMCAT_PORT
: Apigee SSO ポートを設定します。SSO_TOMCAT_PORT
を使用した場合 Apigee SSO ポートをデフォルトから変更するには、ロードバランサがそのポートでリッスンしていることを確認します。 ポートです。
たとえば、各 Apigee SSO インスタンスで次のコードを追加して、ポートを 9033 に設定します。 config ファイル:
SSO_TOMCAT_PORT=9033
次に、ポート 9033 をリッスンしてリクエストを Edge に転送するようにロードバランサを構成します。 SSO インスタンスをポート 9033 で接続します。このシナリオでの Apigee SSO の公開 URL は次のとおりです。
http://LB_DNS_NAME:9033
Apigee SSO への HTTPS アクセス
安全な通信のために HTTPS を使用するように Apigee SSO インスタンスを構成できます。このシナリオでは、
HTTPS アクセス用に Apigee SSO を構成します。HTTPS を有効にするプロセスの一環として、Apigee SSO 構成ファイルで SSO_TOMCAT_PROFILE
を次のように設定します。
SSO_TOMCAT_PROFILE=SSL_TERMINATION
必要に応じて、Apigee SSO が HTTPS アクセスに使用するポートを設定します。
SSO_TOMCAT_PORT=9443
ロードバランサと Apigee SSO の間で適切な通信を確保するには、次のようにロードバランサを構成します。
- HTTP モードではなく TCP モードを使用して Apigee SSO に接続します。これにより、SSL 接続はロードバランサで終端せずに通過できます。
SSO_TOMCAT_PORT
で定義されている Apigee SSO と同じポートでリッスンします(例:9443)。- 同じポート(9443)の Apigee SSO インスタンスにリクエストを転送します。
公開 URL にロードバランサの DNS とポートの設定が反映されていることを確認します。このシナリオでの Apigee SSO の公開 URL は次のとおりです。
https://LB_DNS_NAME:9443
複数のデータセンターに Apigee SSO をインストールする
複数のデータセンター環境では、各データセンターに Apigee SSO インスタンスをインストールします。 その後、1 つの Apigee SSO インスタンスがすべてのトラフィックを処理します。Apigee SSO インスタンスが停止した場合でも、 切り替えます。
Apigee SSO を 2 つのデータセンターにインストールする前に、次のものが必要です。
マスター Postgres サーバーの IP アドレスまたはドメイン名。
複数のデータセンター環境では、通常、データごとに 1 台の Postgres サーバーをインストールします。 マスター / スタンバイ レプリケーション モードで構成できます。この例では、データ center 1 には、マスター Postgres サーバーとデータセンターが含まれます 2 には、スタンバイが含まれています。詳細については、マスター / スタンバイ レプリケーションを設定する Postgres。
- 1 つの Apigee SSO インスタンスを参照する単一の DNS エントリ。たとえば、1 つの DNS ドメインに
エントリを次のように作成します。
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- Apigee SSO の両方のインスタンスでは、
SSO_JWT_SIGNING_KEY_FILEPATH
およびSSO_JWT_VERIFICATION_KEY_FILEPATH
プロパティを宣言します。Apigee SSO をインストールして構成するをご覧ください。 ご覧ください
各データセンターに Apigee SSO をインストールするときに、Postgres マスターを使用するように両方のデータセンターを構成します。 データセンター 1:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432
また、DNS エントリを一般公開 URL として使用するように、両方のデータセンターを構成します。
# Externally accessible URL of Apigee SSO SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com # Default port is 9099. SSO_PUBLIC_URL_PORT=9099
データセンター 1 の Apigee SSO がダウンしたら、Data Center の Apigee SSO インスタンスに切り替えることができます。 center 2:
- PostgreSQL データベースのフェイルオーバーの処理の説明に沿って、データセンター 2 の Postgres スタンバイ サーバーをマスターに変換します。
my-sso.domain.com
が次の Apigee SSO インスタンスを参照するように DNS レコードを更新します。 データセンター 2:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- 新しい Postgres マスターを参照するようにデータセンター 2 の Apigee SSO の構成ファイルを更新する
データセンター 2 のサーバーです。
## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
- データセンター 2 の Apigee SSO を再起動して、構成を更新します。
/opt/apigee/apigee-service/bin/apigee-service apigee-sso restart