다음 두 가지 시나리오에서 고가용성을 위해 Apigee SSO 인스턴스를 여러 개 설치합니다.
- 단일 데이터 센터 환경에 Apigee SSO 인스턴스 2개를 설치하여 고가용성 환경을 구축하세요. 즉, Apigee SSO 모듈 중 하나가 다운되어도 시스템이 계속 작동합니다.
- 데이터 센터가 2개인 환경에서는 Apigee SSO 모듈 중 하나가 다운되어도 시스템이 계속 작동하도록 두 데이터 센터 모두에 Apigee SSO를 설치합니다.
동일한 데이터 센터에 Apigee SSO 모듈 2개 설치
고가용성을 지원하기 위해 단일 데이터 센터의 서로 다른 노드에 있는 두 개의 Apigee SSO 인스턴스를 배포합니다. 이 시나리오에서는 다음과 같습니다.
- 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의 두 인스턴스 앞에 부하 분산기가 있어야 합니다.
- 부하 분산기는 애플리케이션에서 생성한 쿠키 고정을 지원해야 하며 세션 쿠키의 이름은
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 인스턴스를 구성할 수 있습니다. 이 시나리오에서는 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 인스턴스를 각 데이터 센터에 설치합니다. 그러면 Apigee SSO 인스턴스 1개가 모든 트래픽을 처리합니다. Apigee SSO 인스턴스가 다운되면 두 번째 Apigee SSO 인스턴스로 전환할 수 있습니다.
Apigee SSO를 두 데이터 센터에 설치하려면 다음 항목이 필요합니다.
마스터 Postgres 서버의 IP 주소 또는 도메인 이름입니다.
다중 데이터 센터 환경에서는 일반적으로 각 데이터 센터에 Postgres 서버 하나를 설치하고 마스터 대기 복제 모드로 구성합니다. 이 예에서 데이터 센터 1에는 마스터 Postgres 서버가 포함되고 데이터 센터 2에는 대기가 포함됩니다. 자세한 내용은 Postgres용 마스터 대기 복제 설정을 참조하세요.
- 하나의 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 인스턴스로 전환할 수 있습니다.
- PostgreSQL 데이터베이스 장애 조치 처리에 설명된 대로 데이터 센터 2의 Postgres Standby 서버를 마스터로 변환합니다.
my-sso.domain.com
이 데이터 센터 2의 Apigee SSO 인스턴스를 가리키도록 DNS 레코드를 업데이트합니다.my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- 데이터 센터 2의 새 Postgres 마스터 서버를 가리키도록 데이터 센터 2에서 Apigee SSO 구성 파일을 업데이트합니다.
## 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