Edge for Private Cloud v4.19.01
高可用性を実現するために複数の Edge SSO インスタンスをインストールするシナリオは 2 つあります。
- 単一のデータセンター環境では、2 つの Edge SSO インスタンスをインストールして高可用性環境を作成します。つまり、Edge SSO モジュールの 1 つが停止してもシステムは動作を継続します。
- 2 つのデータセンターがある環境では、両方のデータセンターに Edge SSO をインストールして、Edge SSO モジュールの 1 つがダウンしてもシステムが動作し続けるようにします。
同じデータセンターに 2 つの Edge SSO モジュールをインストールする
高可用性をサポートするために、単一のデータセンター内の異なるノードに Edge SSO の 2 つのインスタンスをデプロイします。次のようになります。
- Edge SSO の両方のインスタンスが同じ Postgres サーバーに接続されている必要があります。Apigee では、Edge と一緒にインストールした Postgres サーバーではなく、Edge SSO 専用の Postgres サーバーを使用することをおすすめします。
- Edge SSO の両方のインスタンスで、構成ファイルの
SSO_JWT_SIGNING_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 を有効にしたかどうかによって異なります。詳細については、以下のセクションをご覧ください。
- ロードバランサは、アプリケーションで生成された Cookie スティッキネスをサポートする必要があります。また、セッション Cookie の名前は
Edge SSO への HTTP アクセス
Edge SSO への HTTP アクセスを使用している場合は、次のようにロードバランサを構成します。
- 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 でリッスンし、ポート 9033 で Edge SSO インスタンスにリクエストを転送するようにロードバランサを構成します。このシナリオでの Edge SSO の公開 URL は次のとおりです。
http://LB_DNS_NAME:9033
Edge SSO への HTTPS アクセス
HTTPS を使用するように Edge SSO インスタンスを構成できます。このシナリオでは、HTTPS アクセス用に apigee-sso を構成するの手順に沿って操作します。HTTPS を有効にするプロセスの一環として、以下に示すように Edge SSO 構成ファイルで SSO_TOMCAT_PROFILE を設定します。
SSO_TOMCAT_PROFILE=SSL_TERMINATION
必要に応じて、Edge SSO が HTTPS アクセスに使用するポートを設定することもできます。
SSO_TOMCAT_PORT=9443
次に、ロードバランサを次のように構成します。
- Edge SSO に接続するには、HTTP モードではなく TCP モードを使用します。
SSO_TOMCAT_PORTで定義されている Edge SSO と同じポートでリッスンします。
次に、ポート 9433 の Edge SSO インスタンスにリクエストを転送するようにロードバランサを構成します。このシナリオでの 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 つの 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 の両方のインスタンスで、構成ファイルの
SSO_JWT_SIGNING_KEY_FILEPATHプロパティとSSO_JWT_VERIFICATION_KEY_FILEPATHプロパティで指定された同じ JWT 鍵ペアを使用する必要があります。これらのプロパティの設定の詳細については、Edge SSO のインストールと構成をご覧ください。
各データセンターに 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 インスタンスに切り替えることができます。
- PostgreSQL データベースのフェイルオーバーの処理の説明に従って、データセンター 2 の Postgres スタンバイ サーバーをマスターに変換します。
my-sso.domain.comがデータセンター 2 の Edge SSO インスタンスを指すように DNS レコードを更新します。my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- データセンター 2 の Edge SSO の構成ファイルを更新して、データセンター 2 の新しい Postgres マスター サーバーを指すようにします。
## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
- データセンター 2 で Edge SSO を再起動して、構成を更新します。
/opt/apigee/apigee-service/bin/apigee-service apigee-sso restart