API 게이트웨이용 HTTP(S) 부하 분산

API 게이트웨이에 대한 Google Cloud HTTP(S) 부하 분산 지원 통합으로 서버리스 백엔드가 Cloud Load Balancing에서 제공되는 모든 기능을 활용할 수 있습니다. 서버리스 네트워크 엔드포인트 그룹(NEG)을 사용하여 API 게이트웨이 및 HTTP(S) 부하 분산을 조합하여 다음을 수행할 수 있습니다.

  • 커스텀 브랜드 도메인에 게이트웨이를 호스팅합니다.
  • 원하는 인증 기관에서 발급한 인증서를 사용하여 게이트웨이에 TLS를 구성합니다.
  • 여러 백엔드에 대한 게이트웨이 라우팅을 위해 일반적인 진입점을 만듭니다.
  • 각 리전에 대해 URL을 관리하지 않고 고가용성을 위해 여러 지리적 리전에 게이트웨이를 배포합니다.
  • Cloud Armor로 게이트웨이를 보호합니다.
  • Cloud CDN을 활용해서 게이트웨이 응답 시간을 개선합니다.

API 게이트웨이에 서버리스 NEG 사용

네트워크 엔드포인트 그룹(NEG)은 부하 분산기의 백엔드 엔드포인트 그룹을 지정합니다. 서버리스 NEGCloud Run, App Engine, API 게이트웨이와 같은 Google에서 호스팅되는 서버리스 백엔드를 가리키는 백엔드입니다. API 게이트웨이의 서버리스 NEG 백엔드는 다음을 제공할 수 있습니다.

  • API 게이트웨이 인스턴스
  • 동일한 API 구성을 사용하는 게이트웨이 그룹

아래 그림은 Cloud Load Balancing 모델에서 서버리스 NEG를 사용하는 방법을 보여줍니다.

멀티 리전 게이트웨이의 백엔드로 표시된 서버리스 NEG의 다이어그램입니다.

위에서 설명한 것처럼 백엔드 서비스는 여러 개의 서버리스 NEG로 관리될 수 있습니다. 각 서버리스 NEG는 단일 API 게이트웨이 인스턴스를 포함하거나 URL 마스크를 사용해서 여러 게이트웨이를 가리킬 수 있습니다. 백엔드 서비스로 작동하는 모든 NEG가 부하 분산에 사용되기 때문에 기능적으로 동일한 게이트웨이 배포를 지원합니다. 예를 들어 모든 NEG는 서로 다른 리전에 있는 각 게이트웨이에 배포된 것과 동일한 API 구성을 갖습니다. 백엔드 서비스에 여러 NEG가 포함된 경우 부하 분산기가 이러한 NEG 간에 트래픽을 분산하여 요청 지연 시간을 최소화합니다.

서버리스 NEG 및 API 게이트웨이에 대한 제한사항

API 게이트웨이에 대해 Cloud Load Balancing을 통합하기 위해 서버리스 NEG를 사용하는 경우에는 몇 가지 제한사항을 고려해야 합니다. 특히 다음 항목에 주의해야 합니다.

  • 서버리스 NEG는 IP 주소 또는 포트와 같이 연결된 네트워크 엔드포인트를 가질 수 없습니다.
  • 서버리스 NEG는 NEG가 생성된 동일 리전에 있는 API 게이트웨이 인스턴스에만 연결될 수 있습니다.
  • 서버리스 NEG는 서버리스 NEG 백엔드를 사용하여 부하분산기와 동일한 프로젝트에 생성된 API 게이트웨이 인스턴스에만 연결될 수 있습니다.
  • API 게이트웨이는 아직 인그레스 제어 설정을 지원하지 않습니다. 따라서 서비스로 생성된 게이트웨이 URL을 통해 API 게이트웨이에 대해 액세스를 사용 중지하고 부하 분산기로 모든 트래픽이 처리되도록 할 수 있는 방법이 없습니다.

일반적으로 서버리스 NEG 및 백엔드 서비스와 관련된 제한사항에 대한 자세한 내용은 제한사항을 참조하세요.

백엔드 서비스 구성의 서버리스 NEG에 대한 제한사항

백엔드 서비스는 Cloud Load Balancing이 트래픽을 분산하는 방법을 정의합니다. 백엔드 서비스 구성에는 백엔드에 연결하는 데 사용되는 프로토콜, 다양한 배포 및 세션 설정, 상태 확인, 제한 시간 등의 다양한 값 집합이 포함됩니다. API 게이트웨이에 대해 백엔드 서비스로 사용되는 서버리스 NEG의 경우 이러한 설정을 통해 부하 분산기의 작동 방식을 세밀하게 제어할 수 있습니다.

백엔드 서비스의 리소스 정의는 부하 분산 설계에 다음과 같은 영향을 줍니다.

  • 동일한 백엔드 서비스에서 서버리스 NEG를 다른 유형의 NEG와 함께 사용할 수 없습니다. 예를 들어 동일한 백엔드에서 GKE 클러스터 및 API 게이트웨이 인스턴스로 라우팅할 수 없습니다.
  • 백엔드 서비스에 조합된 모든 서버리스 NEG는 동일한 유형의 백엔드를 사용해야 합니다. 즉, API 게이트웨이 서버리스 NEG는 다른 API 게이트웨이 서버리스 NEG와만 조합될 수 있고, App Engine 서버리스 NEG는 App Engine 서버리스 NEG와만 조합될 수 있습니다.
  • 백엔드 서비스에는 리전당 서버리스 NEG 하나만 포함될 수 있습니다.

서버리스 NEG로 라우팅되는 백엔드 서비스 구성을 정의할 때는 다음과 같은 필드 제한사항이 적용됩니다.

  • balancingMode를 지정할 수 없습니다.
  • healthCheck 필드는 비어 있어야 하고 지정할 수 없습니다.
  • 포트를 지정할 수 없습니다.
  • HTTP 및 HTTPS 프로토콜만 지원됩니다.
  • utilization 또는 connection 관련 필드에 지정된 값은 지원되지 않습니다.

백엔드 서비스 구성의 IAP, cdnPolicy, securityPolicy 필드는 서버리스 NEG에 적합합니다. 이러한 필드를 각각 사용해서 API 게이트웨이 서비스에 IAP(Identity-Aware Proxy), Cloud CDN, Cloud Armor를 설정할 수 있습니다.

다음 단계