高可用性のための Edge SSO のインストール

Edge for Private Cloud v4.19.01

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

  • 1 つのデータセンターしかない環境。2 つの Edge SSO インスタンスをインストールして、高可用性環境を構築します。1 つの Edge SSO モジュールが停止しても、残りのシステムは処理を継続できます。
  • 2 つのデータセンターがある環境。両方のデータセンターに Edge SSO をインストールします。片方の Edge SSO モジュールが停止しても、システムは処理を継続できます。

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

高可用性を実現するため、1 つのデータセンター内の異なるノードに 2 つの Edge SSO インスタンスをデプロイします。このシナリオの場合:

  • Edge SSO の両方のインスタンスが同じ Postgres サーバーに接続している。Apigee では、Edge SSO に専用の Postgres サーバーを使用し、Edge でインストールした Postgres サーバーを使用しないことをおすすめします。
  • Edge SSO の両方のインスタンスでは、構成ファイルの SSO_JWT_SIGNINIG_KEY_FILEPATH プロパティと SSO_JWT_VERIFICATION_KEY_FILEPATH プロパティで指定されたものと同じ JWT キーと証明書を使用する必要がある。これらのプロパティの設定の詳細については、Edge SSO のインストールと構成をご覧ください。
  • Edge SSO の 2 つのインスタンスの前面にロードバランサを配置する:
    • ロードバランサは、アプリケーションが生成する Cookie の持続性をサポートする必要があります。また、セッションの Cookie 名は JSESSIONID になります。
    • Edge SSO で TCP または HTTP のヘルスチェックを実行するようにロードバランサを構成します。TCP の場合は、Edge SSO の URL を使用します。
      http_or_https://edge_sso_IP_DNS:9099

      Edge SSO によって設定されたポートを指定します。デフォルトは 9099 です。

      HTTP の場合、/healthz を追加します。

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • ロードバランサの一部の設定は、Edge SSO で HTTPS が有効かどうかによって異なります。詳細については、以降のセクションをご覧ください。

HTTP 経由で Edge SSO にアクセスする

HTTP 経由で Edge SSO にアクセスするには、次のようにロードバランサを構成します。

  • HTTP モードを使用して Edge SSO に接続する。
  • Edge SSO と同じポートでリッスンする。

    デフォルトでは、Edge SSO はポート 9099 で HTTP リクエストをリッスンします。あるいは、SSO_TOMCAT_PORT を使用して Edge SSO ポートを設定します。SSO_TOMCAT_PORT を使用して Edge SSO ポートをデフォルトから変更した場合は、ロードバランサがそのポートでリッスンするようにします。

たとえば、それぞれの Edge SSO インスタンスで構成ファイルに次の行を追加し、ポートを 9033 に設定します。

SSO_TOMCAT_PORT=9033

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

http://LB_DNS_NAME:9033

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

このシナリオでは、HTTPS アクセス用の apigee-sso の構成の手順に沿って、HTTPS を使用するよう Edge SSO インスタンスを構成します。HTTPS を有効にするプロセスで、Edge SSO の構成ファイルで次のように SSO_TOMCAT_PROFILE を設定します。

SSO_TOMCAT_PROFILE=SSL_TERMINATION

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

SSO_TOMCAT_PORT=9443

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

  • HTTP モードではなく、TCP モードを使用して Edge SSO に接続します。
  • SSO_TOMCAT_PORT で定義したように、Edge SSO と同じポートでリッスンします。

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

https://LB_DNS_NAME:9443

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

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

2 つのデータセンターに Edge SSO をインストールする前に、次のものを用意する必要があります。

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

    複数のデータセンターが存在する環境では、通常、1 つのデータセンターに 1 台の Postgres サーバーをインストールし、マスター / スタンバイのレプリケーション モードを構成します。たとえば、データセンター 1マスター Postgres サーバーを配置し、データセンター 2スタンバイを配置します。詳細については、Postgres 用のマスター / スタンバイ レプリケーションを設定するをご覧ください。

  • 1 つの Edge SSO インスタンスを参照する DNS エントリ。たとえば、以下の形式で、データセンター 1 の Edge SSO インスタンスを参照する DNS エントリを作成します。
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb

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

## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
    PG_PORT=5432

また、この DNS エントリを一般公開の URL として使用するように両方のデータセンターを構成します。

# Externally accessible URL of Edge SSO
    SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com
    # Default port is 9099.
    SSO_PUBLIC_URL_PORT=9099

データセンター 1 の Edge SSO が停止したときに、データセンター 2 の Edge SSO インスタンスに切り換えることができます。

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