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

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

  • 単一のデータセンター環境に、2 つの Apigee SSO インスタンスを つまり、Apigee SSO に Apigee 以外の SSO バックエンドがあれば、 停止します。
  • データセンターが 2 つある環境では、両方のデータセンターに Apigee SSO をインストールして、 Apigee SSO モジュールのいずれかが停止しても、システムは動作し続けます。

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

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

  • Apigee SSO の両方のインスタンスが同じ Postgres サーバーに接続している。Apigee では、Apigee SSO に専用の Postgres サーバーを使用し、Edge でインストールした 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 を有効にしたかどうかによって異なります。詳細は以下のセクションをご覧ください。

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

SSO_TOMCAT_PORT=9033

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

http://LB_DNS_NAME:9033

HTTPS 経由で Apigee SSO にアクセスする

HTTPS を使用するように Apigee SSO インスタンスを構成できます。このシナリオでは、 HTTPS アクセス用に Apigee SSO を構成します。として HTTPS を有効にするプロセスの一環として、Apigee SSO で SSO_TOMCAT_PROFILE を設定します。 次のように指定します。

SSO_TOMCAT_PROFILE=SSL_TERMINATION

次の行を設定して、Apigee SSO が使用するポートを HTTPS アクセス用に設定することもできます。

SSO_TOMCAT_PORT=9443

次に、ロードバランサを次のように構成します。

  • HTTP モードではなく、TCP モードを使用して Apigee SSO に接続します。
  • SSO_TOMCAT_PORT で定義されている Apigee SSO と同じポートでリッスンします。

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

https://LB_DNS_NAME:9443

複数のデータセンターに Apigee SSO をインストールする

複数のデータセンターが存在する環境では、各データセンターに Apigee SSO インスタンスをインストールします。1 つの Apigee SSO インスタンスがすべてのトラフィックを処理。その Apigee SSO インスタンスが停止したときに、2 番目の Apigee SSO インスタンスに切り換えることができます。

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

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

    複数のデータセンターが存在する環境では、通常、1 つのデータセンターに 1 台の Postgres サーバーをインストールし、マスター / スタンバイのレプリケーション モードを構成します。この例では、データ center 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 プロパティを宣言します。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 がダウンしたら、Data Center の Apigee SSO インスタンスに切り替えることができます。 center 2:

  1. PostgreSQL データベースのフェイルオーバーの処理の説明に従って、データセンター 2 の Postgres スタンバイ サーバーをマスターに変換します。
  2. my-sso.domain.com がデータセンター 2 の Apigee SSO インスタンスを参照するように、DNS レコードを更新します。
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. データセンター 2 の新しいマスター Postgres サーバーを参照するように、データセンター 2 の Apigee SSO の構成ファイルを更新します。
    ## 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