Traffic Director의 대상 프록시

Traffic Director를 구성할 때 구성하는 리소스 중 하나는 대상 프록시입니다. Google Cloud Console을 사용하는 경우 대상 프록시가 라우팅 규칙 맵 구성의 일부로 암시적으로 설정됩니다.

Traffic Director와 관련한 대상 프록시의 2가지 주요 용도는 다음과 같습니다.

  1. 이 규칙은 라우팅 규칙을 URL 맵과 IP:포트를 제공하는 전달 규칙을 연결합니다. 이렇게 하면 서비스 메시가 특정 요청을 처리할 때 사용할 라우팅 규칙을 결정할 수 있습니다.
  2. 대상 HTTP 프록시 또는 대상 gRPC 프록시로 유형이 지정되어 있습니다. 이 유형은 특정 유형의 트래픽과 관련이 없는 필드를 구성하지 않는 데 도움이 됩니다. 또한 대상 프록시의 동작도 결정합니다.
Traffic Director 전달 규칙이 강조표시됨(확대하려면 클릭)
Traffic Director 대상 프록시가 강조표시됨(확대하려면 클릭)

다음 다이어그램은 대상 프록시가 Traffic Director 아키텍처에 어떻게 부합하는지 보여줍니다.

대상 HTTP 프록시와 대상 gRPC 프록시 비교

HTTP 기반 서비스를 구성하는 경우 대상 HTTP 프록시를 선택해야 합니다. gRPC 기반 서비스를 구성하는 경우 대상 gRPC 프록시를 선택해야 합니다.

대상 HTTP 프록시 사용 시 트래픽 처리

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

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

대상 gRPC 프록시 사용 시 트래픽 처리

gRPC 기반 서비스를 구성하면 서비스 인스턴스에는 일반적으로 Envoy 프록시가 배포되지 않습니다. 대신gRPC 라이브러리는 Traffic Director에 의해 구성되고, 서비스 메시 데이터 영역에 포함되며 다음과 같이 트래픽을 처리합니다.

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

게이트웨이 및 중간 프록시에 트래픽 가로채기 구성

서비스 메시에는 일반적으로 다음 항목이 있습니다.

  • 각 서비스 인스턴스에는 전용 Envoy 사이드카 프록시 또는 gRPC 라이브러리가 있습니다.
    • Envoy를 사용하는 경우 서비스 인스턴스가 아웃바운드 요청을 가로채고 Envoy 프록시로 리디렉션하도록 구성됩니다.
  • Envoy 프록시 또는 gRPC 라이브러리가 아웃바운드 요청을 처리합니다.

하지만 Traffic Director를 사용하여 게이트웨이 또는 중간 프록시를 구성할 수도 있습니다. 이 설정에서 Envoy 프록시는 서비스 인스턴스와 별개입니다. 이 메서드는 포트에서 인바운드 요청을 리슨하고 요청을 수신하면 처리합니다.

이러한 설정 유형의 경우 가로채기나 리디렉션을 구성할 필요가 없습니다. 대신 대상 HTTP 프록시에 --proxy-bind 플래그를 사용 설정하면 됩니다. 이렇게 하면 인바운드 트래픽 가로채기가 구성되고 Envoy 프록시가 전달 규칙에 구성된 IP 주소 및 포트의 인바운드 요청을 리슨합니다.

전달 규칙은 대상 프록시를 참조한다는 점을 기억하세요. 따라서 대상 HTTP 프록시에서 --proxy-bind를 사용 설정하면 프록시가 이 대상 HTTP 프록시를 참조하는 전달 규칙의 IP 주소와 포트에서 리슨합니다.

다음에 유의하세요.

  • 서비스 메시에 Traffic Director를 사용하는 경우 일반적으로 사이드카 프록시가 아웃바운드 트래픽을 수신하고 전달하기 때문에 --proxy-bind를 사용할 필요가 없습니다.
  • 대상 gRPC 프록시에는 --proxy-bind 플래그를 사용할 수 없습니다.

대상 프록시 리소스

대상 프록시에 대한 정보를 추가, 삭제, 나열, 가져오기 위해 REST API 또는 gcloud SDK를 사용할 수 있습니다.

Google Cloud Console을 사용하여 라우팅 규칙 맵을 만들 때 전달 규칙, 대상 프록시, URL 맵이 자동으로 만들어집니다. 전달 규칙에 대한 정보를 명시적으로 제공해야 합니다. Cloud Console에서는 대상 프록시를 명시적으로 구성할 필요가 없으므로 Traffic Director에 구성된 대상 프록시의 정보를 가져올 수 있는 페이지가 없습니다.

그러나 다음 gcloud 명령어를 사용하여 대상 프록시의 정보를 가져올 수 있습니다.

gcloud compute [target-http-proxies | target-grpc-proxies ] list
gcloud compute [target-http-proxies | target-grpc-proxies ] describe target-proxy-name

API

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

gcloud SDK

gcloud 명령줄 도구는 다음 페이지를 참조하세요.

다음 단계

자세한 내용은 다음을 참고하세요.