Cloud Service Mesh의 대상 프록시

이 문서는 부하 분산 API가 있는 Cloud Service Mesh에만 적용됩니다. 서비스 라우팅 API를 사용하여 Cloud Service Mesh를 배포하는 것이 좋습니다.

Cloud Service Mesh를 구성할 때 구성하는 리소스 중 하나가 대상 프록시입니다. Cloud Service Mesh와 관련된 대상 프록시의 2가지 주요 용도는 다음과 같습니다.

  • Cloud Service Mesh 클라이언트가 서비스와 연결된 백엔드 또는 엔드포인트에 대한 연결을 열 때 사용하는 프로토콜을 정의합니다.

  • 전달 규칙 및 URL 맵을 사용하여 라우팅 규칙 맵을 만듭니다. 라우팅 규칙 맵은 대상 프록시 유형에 따라 추가 기능(예: 라우팅 규칙)을 제공합니다. 잘못된 선택은 사용자 인터페이스에 숨겨져 있거나 API에서 거부됩니다.

대상 프록시 유형 및 요청 프로토콜

Cloud Service Mesh는 개발자가 구성하는 대상 프록시 유형에 따라 클라이언트에 대해 서로 다른 구성을 생성합니다. 대상 프록시 유형을 구성하면 Cloud Service Mesh 클라이언트는 특정 요청 프로토콜을 사용합니다.

대상 프록시 요청 프로토콜
HTTPS 클라이언트에서 HTTPS 연결 시작
HTTP 클라이언트에서 HTTP 연결 시작
gRPC 클라이언트에서 gRPC 연결 시작
TCP 클라이언트에서 TCP 연결 시작

한 가지 유형만 선택할 수 있는 것은 아닙니다. 예를 들어 애플리케이션은 일부 서비스의 주소를 지정할 때 HTTP를 사용하지만 다른 서비스를 지정할 때는 TCP를 사용할 수 있습니다. 이러한 사용 사례의 경우 대상 HTTP 프록시와 대상 TCP 프록시를 모두 만들어야 합니다.

라우팅 규칙 맵에 유효한 리소스 조합

잘못된 구성을 방지하기 위해 Cloud Service Mesh에서는 다음과 같은 라우팅 규칙 맵만 만들 수 있습니다.

  • 전달 규칙 > 전역 대상 HTTPS 프록시 > URL 맵 > 하나 이상의 백엔드 서비스
  • 전달 규칙 > 전역 대상 HTTP 프록시 > URL 맵 > 하나 이상의 백엔드 서비스
  • 전달 규칙 > 전역 대상 gRPC 프록시 > URL 맵 > 하나 이상의 백엔드 서비스
  • 전달 규칙 > 전역 대상 TCP 프록시 > 하나의 백엔드 서비스

Google Cloud Console을 사용하여 대상 HTTP 프록시를 설정하는 경우 대상 프록시가 라우팅 규칙 맵 구성의 일부로 암시적으로 설정됩니다. Google Cloud 콘솔에서는 아직 TCP 프록시 설정이 지원되지 않습니다.

Google Cloud CLI 또는 API를 사용하는 경우 대상 프록시를 명시적으로 구성해야 합니다.

트래픽 처리

다음 섹션에서는 사용하는 대상 프록시 유형에 따라 트래픽을 처리하는 방법을 설명합니다.

대상 HTTP 또는 HTTPS 프록시 사용

HTTP 또는 HTTPS 기반 서비스를 구성하면 일반적으로 각 서비스 인스턴스에는 Envoy 프록시가 함께 배포됩니다. Cloud Service Mesh가 이 Envoy 프록시를 구성합니다. 서비스 메시 데이터 영역의 일부이며 다음과 같이 트래픽을 처리합니다.

Envoy 프록시가 아웃바운드 요청을 수신합니다. 그런 다음 요청의 대상 IP 주소와 포트를 대상 HTTP 또는 HTTPS 프록시를 참조하는 각 전달 규칙에 구성된 IP 주소 및 포트와 비교합니다. 일치하는 항목이 있으면 Envoy 프록시는 대상 프록시의 해당 URL 맵에 따라 요청을 평가합니다.

대상 TCP 프록시 사용

TCP 기반 서비스를 구성하면 각 서비스 인스턴스는 일반적으로 각 서비스 인스턴스에는 Envoy 프록시가 함께 배포됩니다. Cloud Service Mesh가 이 Envoy 프록시를 구성합니다. 서비스 메시 데이터 영역의 일부이며 다음과 같이 트래픽을 처리합니다.

Envoy 프록시가 아웃바운드 요청을 수신합니다. 그런 다음 요청의 대상 IP 주소와 포트를 대상 TCP 프록시를 참조하는 각 전달 규칙에 구성된 IP 주소 및 포트와 비교합니다. 각 전달 규칙은 기본 백엔드 서비스를 가리키는 대상 프록시로 TCP 트래픽을 라우팅합니다. 백엔드 서비스가 상태 점검을 지정하고 적절한 백엔드를 결정합니다.

대상 gRPC 프록시 사용

gRPC 기반 서비스를 구성할 때 일반적으로 서비스 인스턴스에 Envoy 프록시가 배포되지 않습니다. 대신 Cloud Service Mesh가 gRPC 라이브러리를 구성합니다. 라이브러리는 서비스 메시 데이터 영역의 일부이며 다음과 같이 트래픽을 처리합니다.

gRPC 라이브러리는 URI에 지정된 hostname[:port]을 대상 gRPC 프록시가 참조하는 모든 URL 맵의 호스트 규칙과 비교합니다. 일치하는 항목이 발견되면 gRPC 라이브러리는 일치하는 호스트 규칙과 연결된 경로 규칙에 따라 요청을 평가합니다.

대상 프록시 리소스

대상 프록시에 대한 정보를 추가, 삭제, 나열, 가져오려면 REST API 또는 gcloud CLI를 사용합니다.

또한 대상 프록시에 대한 정보를 가져오려면 다음 gcloud 명령어를 사용합니다.

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

API

REST API를 통해 대상 프록시로 작업할 때 사용할 수 있는 속성 및 메서드에 대한 설명은 Cloud Service Mesh가 지원하는 다음 리소스를 참조하세요.

gcloud CLI

Google Cloud CLI는 다음 리소스를 참조하세요.

다음 단계