고가용성을 위한 Apigee SSO 설치

다음 두 가지 시나리오에서 고가용성을 위해 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_FILEPATHSSO_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_FILEPATHSSO_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 인스턴스로 전환할 수 있습니다.

  1. PostgreSQL 데이터베이스 장애 조치 처리에 설명된 대로 데이터 센터 2의 Postgres Standby 서버를 마스터로 변환합니다.
  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