서비스 검색

Cloud Service Mesh는 서비스 및 엔드포인트 검색을 제공합니다. 이러한 기능을 사용하면 코드를 실행하는 가상 머신(VM) 인스턴스와 컨테이너 인스턴스를 서비스의 엔드포인트로 그룹화할 수 있습니다.

Cloud Service Mesh는 이러한 서비스를 모니터링하여 최신 상태 점검 정보를 클라이언트와 공유할 수 있습니다. 따라서 애플리케이션 중 하나가 Envoy 사이드카 프록시 또는 프록시리스 gRPC 애플리케이션과 같은 Cloud Service Mesh 클라이언트를 사용하여 요청을 전송할 때 서비스에 대한 최신 정보를 활용할 수 있습니다.

Cloud Service Mesh 컨텍스트에서 클라이언트는 VM 또는 컨테이너에서 실행되며 서버로 전송할 요청을 만드는 애플리케이션 코드입니다. 서버는 이러한 요청을 수신하는 애플리케이션 코드입니다. Cloud Service Mesh 클라이언트는 Cloud Service Mesh에 연결되고 데이터 플레인에 포함되는 Envoy, gRPC 또는 기타 xDS 클라이언트입니다.

데이터 영역에서 Envoy 또는 gRPC는 다음을 수행합니다.

  1. 요청을 검사하고 배포 중 구성하는 리소스인 백엔드 서비스에 대해 일치하는 요청을 찾습니다.
  2. 요청이 일치하면 Envoy 또는 gRPC가 이전에 구성된 트래픽 또는 보안 정책을 적용하고 백엔드 또는 엔드포인트를 선택하며 요청을 해당 백엔드 또는 엔드포인트로 전달합니다.

서비스 검색

Cloud Service Mesh는 서비스 검색을 제공합니다. Cloud Service Mesh를 구성할 때 백엔드 서비스를 만듭니다. 또한 특정 서비스에 대해 일치하는 아웃바운드 요청(애플리케이션 코드로 전송되고 Cloud Service Mesh 클라이언트로 처리되는 요청)을 찾는 방법을 지정하는 라우팅 규칙을 정의합니다. Cloud Service Mesh 클라이언트가 규칙과 일치하는 요청을 처리할 때 요청을 수신할 서비스를 선택할 수 있습니다.

예를 들면 다음과 같습니다.

  • 애플리케이션을 실행하는 VM이 있습니다. 이 VM에는 Cloud Service Mesh에 연결되는 Envoy 사이드카 프록시가 있고, 애플리케이션 대신 아웃바운드 요청을 처리합니다.
  • payments라는 백엔드 서비스가 구성되어 있습니다. 이 백엔드 서비스에는 payments 서비스에 대해 코드를 실행하는 여러 컨테이너 인스턴스를 가리키는 2개의 네트워크 엔드포인트 그룹(NEG) 백엔드가 있습니다.
  • sidecar-mesh라는 메시를 정의하는 Mesh 리소스를 구성했습니다.
  • 백엔드 서비스 payments 및 호스트 이름 helloworld-gce의 트래픽 대상을 정의하는 Route 리소스를 구성했습니다.

이 구성에서 VM의 애플리케이션이 HTTP 요청을 payments.example.com으로 전송하면 Cloud Service Mesh 클라이언트가 payments 서비스 대상 요청이라는 것을 알 수 있습니다.

Cloud Service Mesh를 프록시리스 gRPC 서비스에 사용하면 서비스 검색이 비슷하게 작동합니다. 하지만 Cloud Service Mesh 클라이언트 역할을 수행하는 gRPC 라이브러리는 xDS 리졸버를 지정한 서비스에 대한 정보만 가져옵니다. 기본적으로 Envoy는 Envoy 부트스트랩 파일에 지정된 Virtual Private Cloud(VPC) 네트워크에 구성된 모든 서비스에 대한 정보를 가져옵니다.

엔드포인트 검색

서비스 검색을 사용하면 클라이언트가 서비스에 대해 알 수 있습니다. 엔드포인트 검색을 사용하면 클라이언트가 코드를 실행 중인 인스턴스에 대해 알 수 있습니다.

서비스를 만들 때는 해당 서비스의 백엔드도 지정합니다. 이 백엔드는 관리형 인스턴스 그룹(MIG)의 VM이거나 NEG의 컨테이너입니다. Cloud Service Mesh가 이러한 MIG 및 NEG를 모니터링하기 때문에 인스턴스 및 엔드포인트가 생성 및 삭제될 때 이를 확인할 수 있습니다.

Cloud Service Mesh는 이러한 서비스에 대한 최신 정보를 클라이언트와 지속적으로 공유합니다. 이 정보에 따라 클라이언트가 더 이상 존재하지 않는 엔드포인트에 트래픽을 전송하지 않을 수 있습니다. 또한 클라이언트가 새 엔드포인트를 확인하고 이러한 엔드포인트에서 제공되는 추가 용량을 활용할 수 있습니다.

MIG 또는 NEG에 엔드포인트를 추가하고 Cloud Service Mesh를 설정하는 것 외에 Cloud Service Mesh로 서비스 검색을 사용 설정하기 위해 추가 구성이 필요하지 않습니다.

Cloud Service Mesh의 사이드카 프록시 트래픽 가로채기

Cloud Service Mesh는 사이드카 프록시 모델을 지원합니다. 이 모델에서는 애플리케이션이 해당 대상으로 트래픽을 전송할 때 트래픽을 가로채서 애플리케이션이 실행되는 호스트의 사이드카 프록시에 있는 포트로 리디렉션합니다. 사이드카 프록시는 트래픽의 부하 균형 방법을 결정한 후 트래픽을 해당 대상으로 전송합니다.

Cloud Service Mesh와 서비스 라우팅 API를 사용하면 트래픽 가로채기가 자동으로 관리됩니다.

다음 단계

  • Cloud Service Mesh가 사이드카 프록시를 사용하여 내부 마이크로서비스에 전역 부하 분산을 제공하는 방법은 Cloud Service Mesh 부하 분산을 참고하세요.
  • Cloud Service Mesh에 대한 자세한 내용은 Cloud Service Mesh 개요를 참조하세요.