다음 두 가지 시나리오에서 고가용성을 위해 Apigee SSO의 여러 인스턴스를 설치합니다.
- 단일 데이터 센터 환경에서 Apigee SSO 인스턴스 두 개를 설치하여 고가용성 환경을 만듭니다. 즉, SSO 모듈 중 하나가 다운되더라도 시스템이 계속 작동합니다.
- 데이터 센터가 두 개인 환경에서 한 데이터 센터의 Apigee SSO가 다운되더라도 시스템이 계속 작동하도록 두 데이터 센터 모두에 Apigee SSO를 설치합니다.
동일한 데이터 센터에 Apigee SSO 모듈 두 개 설치
고가용성을 지원하기 위해 단일 데이터 센터의 서로 다른 apigee-openldap 노드에 Apigee SSO의 두 인스턴스를 배포하여
지원합니다. 이 시나리오에서는 다음과 같습니다.
- Apigee SSO의 두 인스턴스가 모두 동일한 Postgres 서버에 연결되어야 합니다. Apigee에서는 Edge와 함께 설치한 동일한 Postgres 서버가 아닌 Apigee SSO 전용 Postgres 서버를 사용하는 것이 좋습니다. 두 인스턴스는 모두 상태 지속성을 위해
apigee_dex데이터베이스를 공유해야 합니다. - 수동 JWT 키 배포가 필요하지 않음: 기존 UAA 구성요소와 달리 현대화된 Apigee SSO는 공유 PostgreSQL 데이터베이스에 JSON 웹 키 집합 (JWKS) 및 OAuth2 상태를 기본적으로 저장하고 동기화합니다. 노드 간에 서명 키를 수동으로 복사할 필요가 없습니다.
- 내부 OpenLDAP의 사용자 인증 정보 동기화: 기본 내부 OpenLDAP를 사용하는 경우 Apigee SSO는 전용 읽기 전용 서비스 계정 (
cn=sso-reader)을 사용합니다. HA (노드 2)의 경우 관리자는 두 노드의/opt/silent.conf에서 동일한SSO_READER_PW를 설정하거나 노드 2에서setup-sso를 실행하기 전에 노드 1에서 노드 2로/opt/apigee/data/apigee-openldap/sso-reader.key를 복사해야 합니다.키 파일을 수동으로 복사하려면 노드 2에서 다음 명령어를 실행하세요.
scp node1_ip:/opt/apigee/data/apigee-openldap/sso-reader.key /opt/apigee/data/apigee-openldap/sso-reader.key chown apigee:apigee /opt/apigee/data/apigee-openldap/sso-reader.key chmod 600 /opt/apigee/data/apigee-openldap/sso-reader.key
- Apigee SSO의 두 인스턴스 앞에 부하 분산기가 필요합니다.
- SSO에서 TCP 또는 HTTP 상태 점검을 실행하도록 부하 분산기를 구성합니다. HTTP의 경우
/healthz를 포함합니다.http_or_https://edge_sso_IP_DNS:9099/healthz
Apigee SSO에서 설정한 포트를 지정합니다. 기본 포트는 9099입니다.
- 일부 부하 분산기 설정은 Apigee SSO에서 HTTPS를 사용 설정했는지 여부에 따라 다릅니다. 자세한 내용은 다음 섹션 을 참고하세요.
- SSO에서 TCP 또는 HTTP 상태 점검을 실행하도록 부하 분산기를 구성합니다. HTTP의 경우
Apigee SSO에 대한 HTTP 액세스
Apigee SSO에 대한 HTTP 액세스를 사용하는 경우 다음과 같이 부하 분산기를 구성합니다.
- HTTP 모드를 사용하여 Apigee SSO에 연결합니다.
- Apigee SSO와 동일한 포트에서 리슨합니다.
기본적으로 Apigee SSO는 포트 9099에서 HTTP 요청을 수신 대기합니다. 선택적으로 /opt/silent.conf 파일에서
SSO_PUBLIC_URL_PORT를 사용하여 포트를 설정할 수 있습니다. SSO_PUBLIC_URL_PORT
를 사용하여 포트를 기본값에서 변경한 경우 부하 분산기가 해당
포트에서 리슨하는지 확인합니다.
예를 들어 각 SSO 인스턴스에서 구성 파일에 다음을 추가하여 포트를 9033으로 설정합니다.
SSO_PUBLIC_URL_PORT=9033
그런 다음 포트 9033에서 리슨하고 포트 9033에서 SSO 인스턴스로 요청을 전달하도록 부하 분산기를 구성합니다. 이 시나리오에서 Apigee SSO의 공개 발급기관 URL은 다음과 같습니다.
http://LB_DNS_NAME:9033
Apigee SSO에 대한 HTTPS 액세스
다음 두 가지 모드 중 하나를 사용하여 HTTPS로 HA를 구성할 수 있습니다. 두 시나리오 모두 HTTPS 액세스를 위한 Apigee SSO 구성의 자세한 설정 단계를 따르세요.
모드 1: 부하 분산기가 TLS를 종료함 (SSL_PROXY)
부하 분산기가 TLS 연결을 종료하는 경우 일반 HTTP 트래픽을 Apigee SSO 인스턴스로 전달해야 합니다.
/opt/silent.conf파일에서SSO_PUBLIC_URL_SCHEME=https및SSO_PUBLIC_URL_PORT=443(또는 부하 분산기의 공개 HTTPS 포트)을 설정합니다.- HTTP 모드 를 사용하여 백엔드 Apigee SSO 인스턴스에 연결하도록 부하 분산기를 구성합니다.
- 로컬 HTTP 바인드 포트 (기본값:
9099)에서 Apigee SSO 인스턴스로 요청을 전달하도록 부하 분산기를 구성합니다.
모드 2: Apigee SSO가 TLS를 종료함 (SSL_TERMINATION)
Apigee SSO 인스턴스가 TLS 연결을 직접 종료하도록 하려면 부하 분산기가 암호화된 트래픽을 인스턴스로 전달해야 합니다.
/opt/silent.conf파일에서SSO_PUBLIC_URL_SCHEME=https및SSO_PUBLIC_URL_PORT=9443(또는 선택한 보안 포트)을 설정합니다.- TCP 모드 (HTTP 모드 아님)를 사용하여 백엔드에 연결하도록 부하 분산기를 구성하여 Apigee SSO가 TLS를 종료하도록 허용합니다.
- Apigee SSO와 동일한 포트에서 리슨하고 보안 포트 (예:
9443)에서 Apigee SSO 인스턴스로 요청을 전달하도록 부하 분산기를 구성합니다.
여러 데이터 센터에 Apigee SSO 설치
여러 데이터 센터 환경에서는 각 데이터 센터에 Apigee SSO 인스턴스 (apigee-openldap를 통해)를 설치합니다.
하나의 SSO 인스턴스가 모든 트래픽을 처리합니다. 해당 인스턴스가 다운되면 트래픽을 두 번째 SSO 인스턴스로 전환할 수 있습니다.
두 데이터 센터에 Apigee SSO를 설치하기 전에 다음이 필요합니다.
- 마스터 Postgres 서버의 IP 주소 또는 도메인 이름
여러 데이터 센터 환경에서는 일반적으로 각 데이터 센터에 하나의 Postgres 서버를 설치하고 마스터-대기 복제 모드로 구성합니다. 이 예에서는 데이터 센터 1 에 마스터 Postgres 서버가 포함되고 데이터 센터 2 에 대기 가 포함됩니다. 자세한 내용은 Postgres의 기본-대기 복제 설정을 참고하세요.
- 하나의 SSO 인스턴스를 가리키는 단일 DNS 항목 예를 들어 데이터 센터 1의 SSO 인스턴스를 가리키는 다음 형식으로 DNS
항목을 만듭니다.
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- 동기화된 OpenLDAP 리더 사용자 인증 정보 내부 OpenLDAP를 사용하는 경우 설정 중에 클러스터가 동기화되지 않도록 하려면 두 데이터 센터 모두 정확히 동일한
SSO_READER_PW를 사용하거나 동일한sso-reader.key파일을 공유해야 합니다.
각 데이터 센터에서 Apigee SSO를 구성할 때 두 구성을 모두 데이터 센터 1의 Postgres 마스터 로 지정합니다.
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432또한 공개적으로 액세스할 수 있는 발급기관 URL로 공유 DNS 항목을 사용하도록 두 데이터 센터를 모두 구성해야 합니다. setup-sso 스크립트는 발급기관 URL을 자동으로 구성하고 포트를 추가하므로 포트가 필요하지 않은 경우 포트가 추가되지 않도록 /opt/silent.conf 대신 /opt/apigee/customer/application/openldap.properties에서 정확한 URL을 직접 설정해야 합니다.
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comSSO 장애 조치 처리
데이터 센터 1의 Apigee SSO 인스턴스 (또는 Postgres 마스터)가 다운되면 활성 OAuth 세션을 잃지 않고 데이터 센터 2의 SSO 인스턴스로 전환할 수 있습니다.
- PostgreSQL 데이터베이스 장애 조치 처리에 설명된 대로 데이터 센터 2의 Postgres 대기 서버를 마스터로 변환합니다.
my-sso.domain.com이 데이터 센터 2의 SSO 인스턴스를 가리키도록 DNS 레코드를 업데이트합니다.my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- 데이터 센터 2의 Apigee SSO에 대한
/opt/silent.conf파일을 업데이트하여 데이터 센터 2의 새 Postgres 마스터 서버를 가리키도록 합니다.## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - 데이터 센터 2에서 Apigee SSO를 재구성하고 다시 시작하여 연결을 기본적으로 업데이트합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf