인터넷 네트워크 엔드포인트 그룹을 사용하는 Cloud Service Mesh 개요

INTERNET_FQDN_PORT 유형의 인터넷 네트워크 엔드포인트 그룹(NEG)을 사용하도록 Cloud Service Mesh를 구성할 수 있습니다. 외부 서비스는 NEG의 포트 번호 및 정규화된 도메인 이름(FQDN)으로 표시됩니다. NEG는 FQDN:Port 쌍 하나만 포함할 수 있고 백엔드 서비스는 이 유형의 NEG 하나만 포함할 수 있습니다. FQDN은 기본 Virtual Private Cloud(VPC) 네트워크의 이름 확인 순서를 사용하여 확인됩니다.

FQDN 백엔드를 사용하여 Cloud Service Mesh 서비스 메시 확장

Cloud Service Mesh 서비스 메시는 이름 지정된 온프레미스, 멀티 클라우드, 인터넷 서비스를 포함하여 하이브리드 연결을 사용하여 연결할 수 있는 비공개 서비스로 트래픽을 라우팅할 수 있습니다. 원격 서비스는 FQDN으로 참조됩니다.

하이브리드 연결을 통해 FQDN 백엔드를 사용하여 온프레미스 또는 멀티 클라우드 위치로 Cloud Service Mesh 서비스 메시를 확장합니다.
하이브리드 연결을 통한 FQDN 백엔드를 사용하여 Cloud Service Mesh 서비스 메시를 온프레미스 또는 멀티 클라우드 위치로 확장(확대하려면 클릭)

공개 인터넷을 통해 연결할 수 있는 서비스로 트래픽을 라우팅할 수도 있습니다.

FQDN 백엔드를 사용하여 인터넷 서비스로 Cloud Service Mesh 서비스 메시를 확장합니다.
FQDN 백엔드를 사용하여 Cloud Service Mesh 서비스 메시를 인터넷 서비스로 확장(확대하려면 클릭)

Google Cloud 리소스 및 아키텍처

이 섹션에서는 인터넷 NEG로 Cloud Service Mesh를 구성하기 위한 리소스 및 아키텍처를 설명합니다.

INTERNET_FQDN_PORT 네트워크 엔드포인트 그룹

해당 FQDN으로 참조되는 외부 서비스로 트래픽을 라우팅하려면 INTERNET_FQDN_PORT 유형의 전역 인터넷 NEG를 사용합니다. NEG에는 서비스의 FQDN 및 포트 번호가 포함됩니다. Cloud Service Mesh는 xDS 구성을 사용하여 FQDN을 Envoy 프록시로 프로그래밍합니다.

Cloud Service Mesh 자체는 원격 엔드포인트에 대한 이름 변환 및 연결 가능성을 보장하지 않습니다. FQDN은 Envoy 프록시가 연결된 VPC 네트워크의 이름 확인 순서로 확인될 수 있어야 하고 확인된 엔드포인트는 Envoy 프록시에서 연결될 수 있어야 합니다.

상태 확인

INTERNET_FQDN_PORT 유형의 네트워크 엔드포인트에 대한 상태 점검 동작은 Cloud Load Balancing 및 Cloud Service Mesh에 사용되는 다른 유형의 네트워크 엔드포인트에 대한 상태 점검 동작과 다릅니다. 다른 대부분의 네트워크 엔드포인트 유형에 Google Cloud의 중앙 집중식 상태 확인 시스템이 사용되지만 멀티 클라우드 환경의 엔드포인트에 사용되는 NEG(INTERNET_FQDN_PORTNON_GCP_PRIVATE_IP_PORT)에는 Envoy의 분산형 상태 확인 메커니즘이 사용됩니다.

Envoy는 상태 확인을 위해 다음 프로토콜을 지원합니다.

  • HTTP
  • HTTPS
  • HTTP/2
  • TCP

Compute Engine API를 사용하여 상태 점검을 구성합니다.

DNS 고려사항

DNS와 관련하여 두 가지 다른 고려사항이 있습니다.

  • 외부 서비스의 리소스 레코드를 호스팅하는 DNS 서버
  • 연결 관리를 위해 DNS를 사용하도록 구성된 Envoy 프록시 모드

Cloud DNS 서버

Google Cloud 프로젝트에서 DNS 레코드를 호스팅하도록 Cloud DNS 관리형 비공개 영역을 만들 수 있습니다. 전달 영역과 같은 Cloud DNS의 다른 기능을 사용하여 온프레미스 DNS 서버에서 레코드를 가져올 수도 있습니다.

Envoy DNS 모드

서비스 검색이라고도 부르는 Envoy DNS 모드는 아웃바운드 연결 관리를 위해 Envoy 프록시에서 DNS 레코드가 사용되는 방법을 지정합니다. Cloud Service Mesh는 엄격한 DNS 모드를 사용하도록 Envoy를 구성합니다. 엄격한 DNS 모드는 모든 확인된 엔드포인트에 부하 분산을 사용 설정합니다. 상태 확인 상태를 유지하고 정상이 아니거나 DNS를 사용해서 더 이상 확인되지 않는 엔드포인트로 연결을 드레이닝합니다. 이 모드는 변경할 수 없습니다.

서비스 검색에 대한 자세한 내용은 Envoy 문서를 참조하세요.

연결 및 라우팅

비공개 서비스로 트래픽을 라우팅하는 겨우 기본 네트워크 연결에 대한 요구사항은 다음과 같습니다.

  • VPC 네트워크와 온프레미스 데이터 센터 또는 타사 퍼블릭 클라우드 사이의 하이브리드 연결은 Cloud VPN 또는 Cloud Interconnect를 사용하여 설정됩니다.
  • VPC 방화벽 규칙과 경로가 Envoy에서 비공개 서비스 엔드포인트로, 해당되는 경우 온프레미스 DNS 서버로의 양방향 연결 가능성을 설정하도록 올바르게 구성됩니다.
  • 성공적인 전역 고가용성 장애 조치를 위해서는 전역 동적 라우팅을 사용 설정해야 합니다. 자세한 내용은 동적 라우팅 모드를 참조하세요.

인터넷에서 연결할 수 있는 외부 서비스로 트래픽을 라우팅하는 경우에 요구사항은 다음과 같습니다.

  • VPC 네트워크의 클라이언트 가상 머신(VM) 인스턴스에는 외부 IP 주소 또는 Cloud NAT가 있어야 합니다.
  • 인터넷으로 트래픽을 이그레스하기 위한 기본 경로가 있어야 합니다.

앞의 두 경우 모두 트래픽에 VPC 네트워크의 라우팅이 사용됩니다.

보안

FQDN 백엔드는 Cloud Service Mesh의 보안 기능 및 API와 호환됩니다. 외부 서비스에 대한 아웃바운드 연결에서 클라이언트 TLS 정책을 사용하여 SNI에서 FQDN을 구성할 수 있습니다.

제한사항 및 고려사항

  • INTERNET_IP_PORT 유형의 인터넷 NEG는 Cloud Service Mesh에서 지원되지 않습니다.
  • FQDN 백엔드에는 Envoy 버전 1.15.0 이상이 필요합니다.
  • Google Cloud CLI 또는 REST API를 사용하여 Cloud Service Mesh를 구성합니다. Google Cloud Console을 사용하는 엔드 투 엔드 구성은 지원되지 않습니다.
  • Envoy에서 FQDN 백엔드만 지원됩니다. 프록시리스 gRPC는 지원되지 않습니다.
  • Cloud Service Mesh에 NEG 유형 INTERNET_FQDN_PORT를 사용하는 경우 원격 엔드포인트의 상태 확인은 Envoy의 분산형 상태 확인 메커니즘을 사용하여 수행됩니다. 새 원격 엔드포인트가 추가될 때마다 모든 Envoy 프록시가 독립적으로 상태 확인을 시작합니다.

    비슷한 방식으로 새 Envoy 프록시가 메시에 추가되면 모든 원격 엔드포인트 검사를 시작합니다. 따라서 배포에 있는 Envoy 프록시 및 원격 엔드포인트 수에 따라 결과 상태 확인 메시로 상당한 네트워크 트래픽 및 과도한 로드가 원격 엔드포인트에서 발생할 수 있습니다. 상태 확인을 구성하지 않도록 선택할 수 있습니다.

  • 상태 점검 상태는 Google Cloud 콘솔에서 FQDN 백엔드에 대해 표시되지 않습니다.

  • UDP, SSL, gRPC 프로토콜을 사용하는 상태 확인은 지원되지 않습니다.

  • 다음 상태 확인 옵션은 지원되지 않습니다.

    • HTTP/HTTP2/HTTPS 상태 확인
      • --proxy-header
      • --response
    • TCP 상태 확인
      • --proxy-header
      • --request
      • --response

다음 단계