高可用性のために Apigee SSO をインストールする

高可用性を実現するために Apigee SSO の複数のインスタンスをインストールするシナリオは 2 つあります。

  • 単一のデータセンター環境では、2 つの Apigee SSO インスタンスをインストールして高可用性環境を作成します。つまり、Apigee SSO モジュールの 1 つがダウンしても、システムは動作を継続します。
  • 2 つのデータセンターがある環境では、両方のデータセンターに Apigee SSO をインストールして、一方の Apigee SSO モジュールがダウンしてもシステムが動作し続けるようにします。

同じデータセンターに 2 つの Apigee SSO モジュールをインストールする

高可用性をサポートするために、単一のデータセンター内の異なるノードに Apigee SSO の 2 つのインスタンスをデプロイします。次のようになります。

  • Apigee SSO の両方のインスタンスが同じ Postgres サーバーに接続されている必要があります。Apigee では、Edge と一緒にインストールした Postgres サーバーではなく、Apigee SSO 専用の Postgres サーバーを使用することをおすすめします。
  • Apigee SSO の両方のインスタンスで、構成ファイルの SSO_JWT_SIGNING_KEY_FILEPATH プロパティと SSO_JWT_VERIFICATION_KEY_FILEPATH プロパティで指定された同じ JWT 鍵ペアを使用する必要があります。これらのプロパティの設定の詳細については、Apigee SSO をインストールして構成するをご覧ください。
  • Apigee SSO の 2 つのインスタンスの前にロードバランサが必要です。
    • ロードバランサは、アプリケーションで生成された 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 を有効にしたかどうかによって異なります。詳細については、以下のセクションをご覧ください。

Apigee SSO への HTTP アクセス

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 に設定します。

SSO_TOMCAT_PORT=9033

次に、ポート 9033 でリッスンし、ポート 9033 で Edge SSO インスタンスにリクエストを転送するようにロードバランサを構成します。このシナリオでの Apigee SSO の公開 URL は次のとおりです。

http://LB_DNS_NAME:9033

Apigee SSO への HTTPS アクセス

安全な通信のために HTTPS を使用するように Apigee SSO インスタンスを構成できます。このシナリオでは、Apigee SSO への HTTPS アクセスを構成するの手順に沿って操作します。HTTPS を有効にするプロセスの一環として、Apigee SSO 構成ファイルで SSO_TOMCAT_PROFILE を次のように設定します。

SSO_TOMCAT_PROFILE=SSL_TERMINATION

必要に応じて、Apigee SSO が HTTPS アクセスに使用するポートを設定します。

SSO_TOMCAT_PORT=9443

ロードバランサと Apigee SSO 間の通信が適切に行われるようにするには、ロードバランサを次のように構成します。

  • Apigee SSO に接続するには、HTTP モードではなく TCP モードを使用します。これにより、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 インスタンスが停止した場合は、2 番目の Apigee SSO インスタンスに切り替えることができます。

2 つのデータセンターに Apigee SSO をインストールする前に、次のものが必要です。

  • マスター Postgres サーバーの IP アドレスまたはドメイン名。

    複数のデータセンター環境では、通常、各データセンターに 1 つの Postgres サーバーをインストールし、マスター / スタンバイ レプリケーション モードで構成します。この例では、データセンター 1 にマスター Postgres サーバー、データセンター 2 にスタンバイが含まれています。詳細については、Postgres のマスター / スタンバイ レプリケーションを設定するをご覧ください。

  • 1 つの Apigee SSO インスタンスを指す単一の DNS エントリ。たとえば、データセンター 1 の Apigee SSO インスタンスを指す DNS エントリを次の形式で作成します。
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Apigee SSO の両方のインスタンスで、構成ファイルの SSO_JWT_SIGNING_KEY_FILEPATH プロパティと SSO_JWT_VERIFICATION_KEY_FILEPATH プロパティで指定された同じ JWT 鍵ペアを使用する必要があります。これらのプロパティの設定の詳細については、Apigee SSO をインストールして構成するをご覧ください。

各データセンターに Apigee SSO をインストールするときに、データセンター 1 の Postgres マスターを使用するように両方を構成します。

## 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 が停止した場合は、データセンター 2 の Apigee SSO インスタンスに切り替えることができます。

  1. PostgreSQL データベースのフェイルオーバーの処理の説明に従って、データセンター 2 の Postgres スタンバイ サーバーをマスターに変換します。
  2. DNS レコードを更新して、my-sso.domain.com がデータセンター 2 の Apigee SSO インスタンスを指すようにします。
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. データセンター 2 の Apigee SSO の構成ファイルを更新して、データセンター 2 の新しい Postgres マスター サーバーを指すようにします。
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. データセンター 2 で Apigee SSO を再起動して、構成を更新します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart