Cloud Service Mesh 부하 분산
Cloud Service Mesh는 사이드카 프록시 또는 프록시리스 gRPC를 사용하여 내부 마이크로서비스에 전역 부하 분산을 제공합니다. 여러 리전의 인스턴스로 내부 마이크로서비스(사이드카 프록시 기반 또는 프록시리스 gRPC 기반)를 배포할 수 있습니다. Cloud Service Mesh는 사이드카 프록시 또는 프록시리스 gRPC에 상태, 라우팅, 백엔드 정보를 제공하므로 사이드카 프록시는 서비스의 여러 클라우드 리전에 있는 애플리케이션 인스턴스로 트래픽을 적절히 라우팅할 수 있습니다.
다음 그림에서 사용자 트래픽은 외부 전역 부하 분산기를 통해 Google Cloud 배포에 들어갑니다. 외부 부하 분산기는 최종 사용자의 위치에 따라 us-central1
또는 asia-southeast1
의 프런트엔드 마이크로서비스에 트래픽을 분산합니다.
내부 배포에는 Front End, Shopping Cart, Payments라는 세 개의 전역 마이크로서비스가 있습니다. 각 서비스는 us-central1
및 asia-southeast1
등 두 리전에 있는 관리형 인스턴스 그룹(MIG)에서 실행됩니다. Cloud Service Mesh는 트래픽을 캘리포니아 사용자로부터 us-central1
에 배포된 마이크로서비스로 전달하는 전역 부하 분산 알고리즘을 사용합니다. 싱가포르 사용자의 요청은 asia-southeast1
의 마이크로서비스로 전달됩니다.
들어오는 사용자 요청은 Front End 마이크로서비스로 라우팅됩니다. Front End 호스트에 설치된 서비스 프록시는 트래픽을 Shopping Cart로 전달하고 Shopping Cart 호스트에 설치된 사이드카 프록시는 트래픽을 Payments 마이크로서비스로 전달합니다. 프록시리스 gRPC 환경에서 gRPC 애플리케이션은 트래픽 관리를 처리합니다.
다음 예시에서 Cloud Service Mesh가 us-central1
에서 Shopping Cart 마이크로서비스를 실행하는 가상 머신(VM)이 비정상임을 나타내는 상태 점검 결과를 수신할 경우 Cloud Service Mesh는 프런트엔드 마이크로서비스에 대해 사이드카 프록시에 asia-southeast1
에서 실행되는 Shopping Cart 마이크로서비스로 트래픽을 장애 조치하도록 지시합니다. 자동 확장은 Google Cloud의 트래픽 관리와 통합되므로 Cloud Service Mesh는 asia-southeast1
의 MIG에 추가 트래픽을 알리고 MIG의 크기를 늘립니다.
Cloud Service Mesh는 Payments 마이크로서비스의 모든 백엔드가 정상임을 감지합니다. 따라서 Cloud Service Mesh는 Shopping Cart의 Envoy 프록시가 트래픽의 일부를 고객이 설정한 용량까지 asia-southeast1
으로 보내고 나머지는 us-central1
로 오버플로하도록 지시합니다.
Cloud Service Mesh의 부하 분산 구성요소
Cloud Service Mesh 설정 중에는 여러 부하 분산 구성요소를 구성합니다.
- 구성값이 포함된 백엔드 서비스
- 상태 확인(배포에서 VM 및 Google Kubernetes Engine(GKE) 포드에 대한 상태 확인 제공)
- 서비스 라우팅 API에서
Mesh
또는Gateway
리소스 및Route
리소스 - 부하 분산 API에서 VIP 주소, 대상 프록시, URL 맵이 포함된 전역 전달 규칙
Envoy와 같은 xDS API 호환 사이드카 프록시는 클라이언트 VM 인스턴스 또는 Kubernetes 포드에서 실행됩니다. Cloud Service Mesh는 컨트롤 플레인으로 작동하고 xDS API를 사용하여 각 프록시와 직접 통신합니다. 데이터 플레인에서 애플리케이션은 전달 규칙 또는 Mesh
리소스에 구성된 VIP 주소로 트래픽을 전송합니다. 사이드카 프록시 또는 gRPC 애플리케이션은 트래픽을 가로채서 이를 적절한 백엔드로 리디렉션합니다.
다음 다이어그램은 Compute Engine VM 또는 GKE 포드, 구성요소, Cloud Service Mesh 배포의 트래픽 흐름에서 실행되는 애플리케이션을 보여줍니다. 트래픽 라우팅을 확인하는 데 사용되는 Cloud Service Mesh 및 Cloud Load Balancing 리소스를 보여줍니다. 이 다이어그램은 이전 부하 분산 API를 보여줍니다.
다음 단계
- 고급 부하 분산 기능을 구성하는 방법은 고급 부하 분산 개요 참조하기
- 서비스 검색 및 트래픽 가로채기에 대한 자세한 내용은 Cloud Service Mesh 서비스 검색 참조하기
- 서비스 라우팅 API를 사용하는 Cloud Service Mesh에 대해 자세히 알아보려면 개요 참조하기