Google Cloud API 지원 기능이 있는 Cloud Service Mesh
이 문서에서는 Cloud Service Mesh에서 사용할 수 있는 기능을 요약합니다.
Cloud Service Mesh는 애플리케이션, xDS 호환 데이터 영역(오픈소스 Envoy 프록시 또는 gRPC 프록시리스 데이터 영역), 컨트롤 플레인인 Cloud Service Mesh로 구성됩니다.
다음 표에서 '해당 사항 없음(N/A)'은 해당 기능이 특정 Cloud Service Mesh 구성과 호환되지 않으므로 지원되지 않음을 의미합니다. 체크표시나 N/A 표시가 없는 공백은 이 기능이 지원되지 않음을 의미합니다.
이러한 기능 중 일부는 부하 분산 API에서만 사용할 수 있습니다. 서비스 라우팅 API를 사용하고 부하 분산 API를 사용하여 새 배포를 만들지 않는 것이 좋습니다.
지원되는 xDS 버전
Cloud Service Mesh는 오픈소스 xDS 컨트롤 플레인 API를 사용하여 Envoy 및 프록시리스 gRPC 클라이언트를 구성합니다. 이러한 클라이언트는 애플리케이션 코드를 대신하여 Cloud Service Mesh의 애플리케이션 네트워킹 기능을 제공합니다.
xDS v3만 지원됩니다. xDS v2를 사용하는 경우 xDS v3로 마이그레이션합니다. 마이그레이션 방법에 대한 자세한 내용은 xDS v2에서 xDS v3로 마이그레이션을 참조하세요.
메시 서비스를 실행하는 플랫폼
다음 플랫폼에서 애플리케이션을 실행하고 Cloud Service Mesh에서 구성한 글로벌 서비스 메시로 채택할 수 있습니다.
기능 | 지원됨 |
---|---|
Compute Engine 가상 머신(VM) 인스턴스 | ✔ |
Google Kubernetes Engine(GKE) 컨테이너 인스턴스 | ✔ |
Compute Engine 컨테이너 인스턴스의 Kubernetes | ✔ |
서비스 관리
Cloud Service Mesh에서 구성된 메시의 서비스는 다음의 이점을 누릴 수 있습니다.
서비스 검색 메시의 애플리케이션이 다른 애플리케이션에 도달하려는 경우 이름으로 해당 서비스를 호출할 수 있습니다.
백엔드 자동 확장. 애플리케이션 코드를 실행하는 인스턴스는 필요에 따라 동적으로 확장 또는 축소됩니다.
자동 엔드포인트 등록. 새 인스턴스가 생성되거나 삭제되면 서비스와 자동으로 연결됩니다.
기능 | 지원됨 |
---|---|
Compute Engine VM용 사이드카 프록시 자동 배포 | ✔ |
GKE 포드용 사이드카 프록시 자동 삽입 | ✔ |
호스트 이름을 기반으로 서비스 검색 | ✔ |
CPU 사용률을 기반으로 인스턴스 자동 확장 | ✔ |
트래픽 로드/제공 용량에 따른 인스턴스 자동 확장 (관리형 인스턴스 그룹의 Compute Engine VM 또는 MIG에만 해당) |
✔ |
구성 가능한 상태 확인 기반의 인스턴스 자동 복구 | ✔ |
Compute Engine VM용 자동 엔드포인트 등록 | ✔ |
GKE 컨테이너 인스턴스/포드의 자동 엔드포인트 등록 | ✔ |
엔드포인트를 프로그래매틱 방식으로 추가하거나 삭제하는 API | ✔ |
데이터 영역 트래픽의 엔드포인트
마이크로서비스는 데이터 영역을 사용하여 메시와 메시 외부의 서비스에 도달합니다. Cloud Service Mesh를 사용하면 애플리케이션 로직을 네트워킹 로직과 분리할 수 있으므로 애플리케이션에서는 데이터 영역(예: 애플리케이션과 함께 실행되는 사이드카 프록시)에 요청을 보내기만 하면 됩니다. 그러면 데이터 영역이 올바른 엔드포인트로 요청을 전송합니다.
다음 표에서 메시에 있는 것으로 설명된 애플리케이션은 Cloud Service Mesh 관리 데이터 영역을 사용하여 다른 서비스와 통신합니다. 이러한 애플리케이션은 인-메시 서비스 및 메시 외부 서비스로 트래픽을 보낼 수 있습니다.
기능 | 지원됨 |
---|---|
메시의 VM 기반 애플리케이션 | ✔ |
메시의 컨테이너 기반 애플리케이션 | ✔ |
메시 외부의 VM 기반 애플리케이션 | ✔ |
메시 외부의 컨테이너 기반 애플리케이션 | ✔ |
온프레미스 데이터 센터에서 실행되는 애플리케이션 | ✔ |
멀티 클라우드 환경의 애플리케이션 | ✔ |
데이터 영역 토폴로지
서비스 메시 모델에서 애플리케이션은 데이터 영역을 사용하여 통신합니다. 이 데이터 영역은 애플리케이션과 함께 배포된 사이드카 프록시로 구성되어 있는 경우가 많습니다. Cloud Service Mesh는 유연하며 서비스 네트워킹 요구 사항에 맞는 데이터 영역 토폴로지를 지원합니다.
기능 | 지원됨 |
---|---|
애플리케이션과 함께 실행되는 사이드카 프록시 | ✔ |
프록시리스 gRPC 애플리케이션 | ✔ |
메시의 두 애플리케이션 사이에 있는 중간 프록시 | ✔ |
메시 경계의 에지 프록시 | ✔ |
여러 리전의 여러 GKE 클러스터 또는 Compute Engine VM에 걸쳐 있는 메시 | ✔ |
프로그래매틱 API 기반 구성
모든 구성은 REST API와 대시보드를 통해 기본적으로 노출되므로 대규모 팀 전체의 변경사항을 자동화하고 변경사항을 프로그래매틱 방식으로 관리할 수 있습니다. 일부 기능은 Google Cloud 콘솔을 사용하여 구성할 수 없습니다.
기능 | 지원됨 |
---|---|
REST API | ✔ |
Google Cloud Console | ✔ |
Google Cloud CLI | ✔ |
Cloud Deployment Manager | ✔ |
Terraform 지원 | ✔ |
프록시리스 gRPC 애플리케이션을 통한 언어 지원
다음 프로그래밍 언어를 사용하여 Cloud Service Mesh와 함께 작동하는 프록시리스 gRPC 애플리케이션을 만들 수 있습니다. gRPC의 다양한 구현 및 버전에서 지원되는 서비스 메시 기능이 GitHub에 나열됩니다.
언어 | 지원됨 |
---|---|
자바 | ✔ |
Go | ✔ |
C++ | ✔ |
Python | ✔ |
Ruby | ✔ |
PHP | ✔ |
노드 | ✔ |
요청 프로토콜
애플리케이션은 Cloud Service Mesh로 구성된 데이터 영역을 사용하여 통신할 때 다음 요청 프로토콜을 사용할 수 있습니다.
기능 | 지원됨 |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
서비스 보안
Cloud Service Mesh는 다음 구성으로 서비스 보안을 지원합니다.
기능 | Envoy | gRPC |
---|---|---|
GKE 포드가 포함된 TLS | ✔ | ✔ |
GKE 포드가 포함된 mTLS | ✔ | ✔ |
액세스 제어 및 승인 | ✔ | ✔ |
라우팅 및 트래픽 관리
Cloud Service Mesh는 데이터 영역을 통과하는 트래픽을 조정, 분할, 구성하는 데 사용할 수 있는 고급 트래픽 관리 정책을 지원합니다.
일부 고급 트래픽 관리 기능은 프록시리스 gRPC 서비스에서 사용할 수 없으며, 고급 트래픽 관리 기능도 대상 TCP 프록시 리소스에서 사용할 수 없습니다.
Cloud Service Mesh가 TCP(HTTP(S)가 아닌) 트래픽을 처리하는 경우 다음 기능은 지원되지 않습니다.
기능 | HTTP(S) 또는 gRPC 트래픽을 처리하도록 구성된 Envoy 프록시에서 지원됨 | 프록시리스 gRPC에서 지원됨 |
---|---|---|
다음에서 서픽스/프리픽스/전체/정규식 일치에 기반한 HTTP/레이어 7 요청 라우팅: | ||
• 호스트이름 | ✔ | ✔ |
• 경로 | ✔ | ✔ |
• 헤더 | ✔ | ✔ |
• 메서드 | ✔ | 해당 사항 없음 |
• 쿠키 | ✔ | ✔ |
• 요청 매개변수 | ✔ | 해당 사항 없음 |
결함 주입 | ✔ | ✔ |
구성 가능한 제한 시간 | ✔ | 해당 없음 최대 스트림 시간을 참조하세요. |
재시도 | ✔ | ✔ 재시도 제한 시간 제외 |
리디렉션 | ✔ | |
URI 재작성 | ✔ | |
요청/응답 헤더 변환 | ✔ | |
트래픽 분할 | ✔ | ✔ |
트래픽 미러링 | ✔ | |
이상점 감지 | ✔ | ✔ |
회로 차단 | ✔ | ✔ maxRequests만 해당 |
최대 스트림 지속 시간 | ✔ | ✔ |
부하 분산
서비스, 백엔드 그룹(인스턴스 그룹 또는 네트워크 엔드포인트 그룹), 개별 백엔드, 엔드포인트 수준에서 부하 분산을 위해 고급 부하 분산 메서드와 알고리즘을 구성할 수 있습니다. 자세한 내용은 백엔드 서비스 개요 및 고급 부하 분산 개요를 참조하세요.
기능 | HTTP(s), TCP 또는 gRPC 트래픽을 처리하도록 구성된 Envoy 프록시에서 지원됨 | 프록시리스 gRPC에서 지원됨 |
---|---|---|
리전을 기준으로 백엔드(인스턴스 그룹 또는 네트워크 엔드포인트 그룹) 선택(백엔드 용량이 안정적인 가장 가까운 리전 선호) | ✔ | ✔ |
비율 기반(초당 요청 수) 분산 모드를 사용하는 백엔드 선택 | ✔ TCP(HTTP(S)가 아닌) 트래픽에서는 지원되지 않습니다. |
✔ |
사용률 기반 분산 모드를 기반으로 하는 백엔드 선택(Compute Engine 인스턴스 그룹의 VM만 해당) | ✔ | ✔ |
백엔드 당 구성 가능한 최대 용량(Compute Engine 및 GKE만 해당) | ✔ | ✔ |
구성 가능한 부하 분산 정책을 기반으로 하는 백엔드 선택 각 기본 제공 정책에 관한 자세한 내용은 |
|
|
서비스 복원력
Cloud Service Mesh는 서비스의 복원력을 향상시키는 기능을 지원합니다. 예를 들어 Cloud Service Mesh를 사용하여 블루-그린 배포 패턴, 카나리아 테스트 또는 회로 차단(Envoy, gRPC)을 구현할 수 있습니다.
기능 | HTTP(s), TCP 또는 gRPC 트래픽을 처리하도록 구성된 Envoy 프록시에서 지원됨 | 프록시리스 gRPC에서 지원됨 |
---|---|---|
가중치 기반 트래픽 분할을 기반으로 한 서비스 선택 | ✔ | ✔ |
회로 차단 | ✔ | ✔ maxRequests만 해당 |
서비스 및 백엔드 용량 관리
Cloud Service Mesh는 서비스 및 백엔드 용량을 고려하여 서비스 백엔드 간에 트래픽을 최적으로 분산시킵니다. Cloud Service Mesh는 Google Cloud 인프라와 통합되어 용량 데이터를 자동으로 수집합니다. 용량을 수동으로 설정하고 구성할 수도 있습니다.
기능 | 지원됨 |
---|---|
관리형 인스턴스 그룹(MIG)의 VM 인스턴스에 대한 백엔드 용량 및 사용률을 CPU 기반으로 자동 추적 | ✔ |
요청 비율에 따라 MIG 및 네트워크 엔드포인트 그룹(NEG)의 VM 및 컨테이너 인스턴스의 수동 용량 및 재정의 | ✔ |
수동 용량 드레이닝 | ✔ |
장애 조치
기업 워크로드는 서비스 업타임을 보장하기 위해 일반적으로 고가용성 배포에 의존합니다. Cloud Service Mesh는 멀티 영역/멀티 리전 중복을 사용 설정하여 이러한 유형의 배포를 지원합니다.
기능 | 지원됨 |
---|---|
백엔드 용량이 정상인 동일한 리전 내의 다른 영역으로 자동 장애 조치 | ✔ |
정상 백엔드 용량이 있는 가장 가까운 리전으로 자동 장애 조치 | ✔ |
상태 확인
Cloud Service Mesh는 백엔드 상태를 확인하기 위해 중앙 집중식 상태 확인을 지원합니다.
자세한 내용은 상태 점검 개요를 참조하세요.
기능 | 지원됨 |
---|---|
gRPC 상태 확인 | ✔ |
HTTP 상태 확인 | ✔ |
HTTPS 상태 확인 | ✔ |
HTTP/2 상태 확인 | ✔ |
TCP 상태 확인 | ✔ |
구성 가능한 상태 확인:
|
✔ |
구성 가능한 요청 경로(HTTP, HTTPS, HTTP/2) | ✔ |
구성 가능한 요청 문자열 또는 경로(TCP 또는 SSL) | ✔ |
구성 가능한 예상 응답 문자열 | ✔ |
관측 가능성
관측 가능성 도구는 서비스 메시를 이해하는 데 도움이 되는 모니터링, 디버깅, 성능 정보를 제공합니다. 다음 기능은 기본적으로 제공되거나 데이터 영역에서 구성됩니다. 애플리케이션 코드는 이 관측 가능성 데이터를 생성하기 위해 어떤 특별한 작업도 수행할 필요가 없습니다.
서비스 상태 대시보드는 프록시리스 gRPC 서비스에서 사용할 수 있지만 데이터 영역 로깅 및 추적을 구성할 수 없습니다. Cloud Service Mesh는 gRPC 애플리케이션의 로깅 및 추적을 구성할 수 없습니다. 오픈소스 사이트에 제공되는 문제 해결 섹션 또는 gRPC 가이드의 안내에 따라 로깅 및 추적을 사용 설정할 수 있습니다. 예를 들어 프록시리스 gRPC 서비스에서 측정항목 수집 및 추적을 사용 설정하려면 Opencensus를 사용하면 됩니다.
기능 | 프록시에서 지원됨 | 프록시리스 gRPC 서비스에서 지원됨 |
---|---|---|
서비스 상태 대시보드 | ✔ | ✔ |
데이터 영역 로깅 | ✔ | ✔ |
데이터 영역 추적 | ✔ | ✔ |
세션 어피니티
클라이언트-서버 통신에는 여러 연속 요청이 포함되는 경우가 많습니다. 이 경우 연속 클라이언트 요청을 동일한 백엔드 또는 서버로 라우팅하면 유용합니다. Traffic Director는 백엔드가 정상이고 용량이 있는 한 특정 클라이언트의 요청을 동일한 백엔드로 전송하도록 구성 가능한 옵션을 제공합니다. 자세한 내용은 백엔드 서비스 개요를 참조하세요.
기능 | HTTP(S) 프록시에서 지원됨 | TCP 프록시에서 지원됨 | 프록시리스 gRPC 서비스에서 지원됨 |
---|---|---|---|
클라이언트 IP 주소 | ✔ | ✔ | |
HTTP 쿠키 | ✔ | 해당 사항 없음 | |
HTTP 헤더 | ✔ | 해당 사항 없음 | ✔ |
생성된 쿠키(첫 번째 요청 시 클라이언트 쿠키 설정) | ✔ | 해당 사항 없음 |
네트워크 토폴로지
Cloud Service Mesh는 일반적인 Google Cloud 네트워크 토폴로지를 지원합니다.
기능 | 지원됨 |
---|---|
Google Cloud 프로젝트의 단일 네트워크 | ✔ |
Google Cloud 프로젝트의 여러 메시 | ✔ |
Google Cloud 프로젝트의 여러 게이트웨이 | ✔ |
공유 VPC(여러 Google Cloud 프로젝트에서 단일 네트워크 공유) | ✔ |
Cloud Service Mesh에서 공유 VPC가 지원되는 방식에 대한 자세한 설명은 제한사항을 참조하세요.
규정 준수
Cloud Service Mesh는 다음 표준을 준수합니다.
규정 준수 인증 | 지원됨 |
---|---|
HIPAA | ✔ |
ISO 27001, ISO 27017, ISO 27018 | ✔ |
SOC1, SOC2, SOC3 | ✔ |
PCI DSS | ✔ |
다음 단계
- Cloud Service Mesh에 대한 자세한 내용은 Cloud Service Mesh 개요를 참조하세요.
- 프록시리스 gRPC 서비스의 사용 사례 및 아키텍처 패턴을 찾으려면 프록시리스 gRPC 서비스 개요를 참조하세요.