고가용성을 위해 Apigee SSO 설치

다음 두 가지 시나리오에서 고가용성을 위해 Apigee SSO의 여러 인스턴스를 설치합니다.

  • 단일 데이터 센터 환경에서 Apigee SSO 인스턴스 2개를 설치하여 고가용성 환경을 만듭니다. 즉, Apigee SSO 모듈 중 하나가 다운되더라도 시스템이 계속 작동합니다.
  • 데이터 센터가 2개인 환경에서는 Apigee SSO 모듈 중 하나가 다운되더라도 시스템이 계속 작동하도록 두 데이터 센터 모두에 Apigee SSO를 설치합니다.

동일한 데이터 센터에 Apigee SSO 모듈 2개 설치

고가용성을 지원하기 위해 단일 데이터 센터의 서로 다른 노드에 Apigee SSO 인스턴스 두 개를 배포합니다. 이 시나리오에서는 다음과 같습니다.

  • Apigee SSO의 두 인스턴스가 모두 동일한 Postgres 서버에 연결되어야 합니다. Apigee에서는 Apigee SSO에 전용 Postgres 서버를 사용하고 Edge와 함께 설치한 동일한 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

필요한 경우 HTTPS 액세스를 위해 Apigee SSO에서 사용하는 포트를 설정합니다.

SSO_TOMCAT_PORT=9443

부하 분산기와 Apigee SSO 간의 적절한 통신을 보장하려면 부하 분산기를 다음과 같이 구성합니다.

  • HTTP 모드가 아닌 TCP 모드를 사용하여 Apigee SSO에 연결합니다. 이렇게 하면 SSL 연결이 부하 분산기에서 종료되지 않고 통과할 수 있습니다.
  • SSO_TOMCAT_PORT에서 정의한 대로 Apigee SSO와 동일한 포트에서 리슨합니다 (예: 9443).
  • 동일한 포트 (9443)에서 Apigee SSO 인스턴스로 요청을 전달합니다.

공개 URL에 부하 분산기의 DNS 및 포트 설정이 반영되어 있는지 확인합니다. 이 시나리오에서 Apigee SSO의 공개 URL은 다음과 같습니다.

https://LB_DNS_NAME:9443

여러 데이터 센터에 Apigee SSO 설치

여러 데이터 센터 환경에서는 각 데이터 센터에 Apigee SSO 인스턴스를 설치합니다. 그러면 하나의 Apigee SSO 인스턴스가 모든 트래픽을 처리합니다. 해당 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 인스턴스로 전환할 수 있습니다.

  1. PostgreSQL 데이터베이스 장애 조치 처리에 설명된 대로 데이터 센터 2의 Postgres 대기 서버를 마스터로 변환합니다.
  2. my-sso.domain.com가 데이터 센터 2의 Apigee SSO 인스턴스를 가리키도록 DNS 레코드를 업데이트합니다.
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. 데이터 센터 2의 Apigee SSO 구성 파일을 업데이트하여 데이터 센터 2의 새 Postgres 마스터 서버를 가리킵니다.
    ## 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