다중 환경 배포용 Traffic Director

Traffic Director는 온프레미스 데이터 센터와 하이브리드 연결을 통해 연결 가능한 기타 퍼블릭 클라우드 등 Google Cloud 외로 확장되는 환경을 지원합니다. 서비스 메시가 Google Cloud 외부의 엔드포인트로 트래픽을 보낼 수 있도록 Traffic Director를 구성합니다. 이러한 엔드포인트는 온프레미스 부하 분산기, 다른 클라우드의 가상 머신에 있는 서버 애플리케이션 또는 하이브리드 연결을 통해 연결 가능한 다른 대상일 수 있으며 IP 주소 및 포트로 바꿀 수 있습니다. 각 엔드포인트의 IP 주소와 포트를 하이브리드 연결 네트워크 엔드포인트 그룹(NEG)에 추가하기만 하면 됩니다.

Traffic Director의 온프레미스 및 멀티 클라우드 서비스 지원을 통해 다음을 수행할 수 있습니다.

  • 온프레미스 및 멀티 클라우드 서비스의 엔드포인트를 포함하여 전역적으로 트래픽 라우팅
  • 서비스 검색 및 고급 트래픽 관리와 같은 기능을 포함한 Traffic Director 및 서비스 메시의 이점을 Google Cloud 외부의 기존 인프라에서 실행되는 서비스에 제공
  • Traffic Director 기능을 Cloud Load Balancing과 결합하여 다중 환경에 Google Cloud 네트워킹 서비스를 제공합니다.

사용 사례

Traffic Director는 다음을 비롯한 여러 환경에서 VM 기반 서비스와 컨테이너 기반 서비스 간의 네트워킹을 구성할 수 있습니다.

  • Google Cloud
  • 온프레미스 데이터 센터
  • 기타 퍼블릭 클라우드

메시 트래픽을 온프레미스 위치 또는 다른 클라우드로 라우팅

이 기능의 가장 간단한 사용 사례는 트래픽 라우팅입니다. 애플리케이션이 Traffic Director 클라이언트(Envoy 프록시 또는 프록시리스 gRPC)를 실행합니다. Traffic Director는 클라이언트에 서비스와 각 서비스의 엔드포인트를 알립니다.

메시 트래픽을 온프레미스 위치 또는 다른 클라우드로 라우팅(확대하려면 클릭)
메시 트래픽을 온프레미스 위치 또는 다른 클라우드로 라우팅(확대하려면 클릭)

위의 다이어그램에서 애플리케이션이 on-prem 서비스에 요청을 보내면 Traffic Director 클라이언트는 아웃바운드 요청을 검사하고 대상을 업데이트합니다. 대상이 on-prem 서비스와 연결된 엔드포인트(이 경우에는 10.2.0.1)로 설정됩니다. 그런 다음 요청이 Cloud VPN 또는 Cloud Interconnect를 통해 대상으로 이동합니다.

엔드포인트를 더 추가해야 하는 경우 Traffic Director를 업데이트하여 서비스에 엔드포인트를 추가하면 됩니다. 애플리케이션 코드를 변경할 필요가 없습니다.

기존 온프레미스 서비스를 Google Cloud로 마이그레이션

Google Cloud 이외의 엔드포인트로 트래픽을 전송하면 트래픽을 다른 환경으로 라우팅할 수 있습니다. 이 기능을 고급 트래픽 관리와 결합하여 환경(또는 기타 사용 사례) 간에 서비스를 마이그레이션할 수 있습니다.

온프레미스 위치에서 Google Cloud로 마이그레이션(확대하려면 클릭)
온프레미스 위치에서 Google Cloud로 마이그레이션(확대하려면 클릭)

위의 다이어그램은 이전 패턴을 확장합니다. on-prem 서비스에 모든 트래픽을 보내도록 Traffic Director를 구성하는 대신 가중치 기반 트래픽 분할을 사용하여 두 서비스 간에 트래픽을 분할하도록 Traffic Director를 구성합니다.

트래픽 분할을 사용하면 트래픽 0% 를 cloud 서비스로, 100% 를 on-prem 서비스로 전송하여 시작할 수 있습니다. 그런 다음 cloud 서비스로 전송되는 트래픽의 비율을 점차 높일 수 있습니다. 결국 트래픽 100%가 cloud 서비스로 전송되고 on-prem 서비스를 사용 중지할 수 있습니다.

온프레미스 및 멀티 클라우드 배포를 위한 Google Cloud 네트워크 에지 서비스

마지막으로 이 기능을 Google Cloud의 기존 네트워킹 솔루션과 결합할 수 있습니다. Google Cloud는 Google Cloud Armor DDoS 방지를 사용한 전역 외부 부하 분산 등의 다양한 네트워크 서비스를 제공하며, 이제 Traffic Director와 함께 사용하여 온프레미스 또는 멀티 클라우드 서비스에 새로운 기능을 제공할 수 있습니다. 무엇보다도 온프레미스 또는 멀티 클라우드 서비스를 공용 인터넷에 노출할 필요가 없습니다.

여러 환경에 걸친 배포(확대하려면 클릭)
여러 환경에 걸친 배포(확대하려면 클릭)

위의 다이어그램에서 공용 인터넷의 클라이언트에서 전송된 트래픽은 Google Cloud 전역 부하 분산기(예: 전역 외부 HTTP(S) 부하 분산기)에서 Google Cloud 네트워크로 들어갑니다. 트래픽이 부하 분산기에 도달하면 Google Cloud Armor DDoS 방지 또는 IAP(Identity-Aware Proxy) 사용자 인증과 같은 네트워크 에지 서비스를 적용할 수 있습니다. 자세한 내용은 다중 환경 배포를 위한 네트워크 에지 서비스를 참조하세요.

이 서비스를 적용하면 트래픽이 Google Cloud에서 잠시 중단됩니다. Traffic Director가 구성한 애플리케이션 또는 독립형 프록시가 Cloud VPN 또는 Cloud Interconnect 간의 트래픽을 온프레미스 서비스로 전달합니다.

아키텍처 및 리소스

이 섹션에서는 온프레미스 및 멀티 클라우드 환경에 Traffic Director 관리형 서비스 메시를 제공하는 데 사용되는 Google Cloud 리소스에 대한 배경 정보를 제공합니다.

Google Cloud 리소스

다음 다이어그램은 Traffic Director의 온프레미스 및 멀티 클라우드 서비스 지원을 사용 설정하는 Google Cloud 리소스를 보여줍니다. 키 리소스는 NEG(및 네트워크 엔드포인트)입니다. 다른 리소스는 표준 Traffic Director 설정의 일부로 구성하는 리소스입니다.

온프레미스 및 멀티 클라우드 서비스용 Compute Engine 리소스(확대하려면 클릭)
온프레미스 및 멀티 클라우드 서비스용 Compute Engine 리소스(확대하려면 클릭)

간단한 설명을 위해 다음 다이어그램에는 여러 전역 백엔드 서비스 등의 옵션이 생략되어 있습니다.

Traffic Director를 구성할 때는 전역 백엔드 서비스 API 리소스를 사용하여 서비스를 만듭니다. 서비스는 다음을 결합하는 논리적 구조체입니다.

  1. 클라이언트가 서비스에 트래픽을 전송하려 할 때 적용되는 정책
  2. 서비스를 대상으로 하는 트래픽을 처리하는 하나 이상의 백엔드 또는 엔드포인트

온프레미스 및 멀티 클라우드 서비스는 Traffic Director로 구성된 다른 서비스와 같습니다. 주요 차이점은 하이브리드 연결 NEG를 사용하여 이러한 서비스의 엔드포인트를 구성한다는 점입니다. 이는 네트워크 엔드포인트 유형non-gcp-private-ip-port로 설정된 NEG입니다. 하이브리드 연결 NEG에 추가하는 엔드포인트는 클라이언트에서 연결할 수 있는 유효한 IP:port 조합이어야 합니다(예: Cloud VPN 또는 Cloud Interconnect와 같은 하이브리드 연결을 통해).

NEG에는 네트워크 엔드포인트 유형이 있으며 각 NEG에는 동일한 유형의 네트워크 엔드포인트만 포함될 수 있습니다. 이 유형에 따라 다음이 결정됩니다.

  • 서비스에서 트래픽을 전송할 수 있는 대상
  • 상태 확인 동작

NEG를 만들 때는 온프레미스 또는 멀티 클라우드 대상으로 트래픽을 보낼 수 있도록 다음과 같이 구성합니다.

  • 네트워크 엔드포인트 유형을 non-gcp-private-ip-port로 설정합니다. 이는 연결 가능한 IP 주소를 나타냅니다. 이 IP 주소가 온프레미스 또는 다른 클라우드 제공업체에 있는 경우 Google Cloud에서 Cloud VPN 또는 Cloud Interconnect에서 제공하는 연결과 같은 하이브리드 연결을 사용하여 연결할 수 있어야 합니다.
  • Google Cloud와 온프레미스 또는 멀티 클라우드 환경 사이의 지리적 거리를 최소화하는 Google Cloud 영역을 지정합니다. 예를 들어 독일 프랑크푸르트의 온프레미스 환경에서 서비스를 호스팅하는 경우 NEG를 만들 때 europe-west3-a Google Cloud 영역을 지정할 수 있습니다.

이러한 유형의 네트워크 엔드포인트의 상태 확인 동작은 다른 유형의 네트워크 엔드포인트의 상태 확인 동작과 다릅니다. 다른 네트워크 엔드포인트 유형은 Google Cloud의 중앙 집중식 상태 확인 시스템을 사용하지만 non-gcp-private-ip-port 네트워크 엔드포인트는 Envoy의 분산 상태 확인 메커니즘을 사용합니다. 자세한 내용은 제한사항 및 기타 고려사항을 참조하세요.

연결 및 네트워킹 고려사항

  • Envoy 프록시 및 프록시리스 gRPC 라이브러리와 같은 Traffic Director 클라이언트는 trafficdirector.googleapis.com:443의 Traffic Director에 연결할 수 있어야 합니다. Traffic Director 제어 영역과의 연결이 끊어지면 다음과 같은 현상이 발생합니다.
    • 기존의 Traffic Director 클라이언트가 Traffic Director에서 구성 업데이트를 받을 수 없습니다. 현재 구성을 기반으로 계속 작동합니다.
    • 새 Traffic Director 클라이언트가 Traffic Director에 연결할 수 없습니다. 연결이 다시 설정될 때까지 서비스 메시를 사용할 수 없습니다.
  • Google Cloud와 온프레미스 또는 멀티 클라우드 환경 간에 트래픽을 전송하려면 하이브리드 연결을 통해 환경을 연결해야 합니다. Cloud Interconnect 또는 Cloud VPN에서 지원하는 고가용성 연결을 사용하는 것이 좋습니다.
  • 온프레미스, 기타 클라우드, Google Cloud 서브넷 IP 주소 및 IP 주소 범위가 겹치면 안 됩니다.

제한사항 및 기타 고려사항

proxyBind 설정

targetHttpProxy를 만들 때만 proxyBind 값을 설정할 수 있습니다. 기존 targetHttpProxy는 업데이트할 수 없습니다.

연결 및 연결 중단

연결 요구사항 및 제한사항에 대한 자세한 내용은 연결 및 네트워킹 고려사항을 참조하세요.

혼합된 백엔드 유형

백엔드 서비스에는 VM 또는 NEG 백엔드가 있을 수 있습니다. 백엔드 서비스에 NEG 백엔드가 있는 경우 모든 NEG에 동일한 네트워크 엔드포인트 유형이 포함되어야 합니다. 백엔드 유형이 서로 다른 여러 NEG를 백엔드 서비스에 포함할 수 없습니다.

URL 맵은 서로 다른 백엔드 서비스로 확인되는 호스트 규칙을 포함할 수 있습니다. 하이브리드 연결 NEG만 있는 백엔드 서비스(온프레미스 엔드포인트 포함)와 독립형 NEG를 사용하는 백엔드 서비스(GKE 엔드포인트 포함)가 있을 수 있습니다. URL 맵에는 각 백엔드 서비스 간에 트래픽을 분할하는 가중치 기반 트래픽 분할 같은 규칙이 포함될 수 있습니다.

Google Cloud 백엔드에 non-gcp-private-ip-port 유형의 엔드포인트를 포함하는 NEG 사용

Google Cloud의 백엔드를 가리키는 하이브리드 연결 NEG를 사용하여 백엔드 서비스를 만들 수 있습니다. 하지만 하이브리드 연결 NEG는 중앙 집중식 상태 확인을 활용하지 않으므로 이 패턴은 권장되지 않습니다. 중앙 집중식 상태 확인 및 분산 상태 확인에 대한 설명은 상태 확인을 참조하세요.

엔드포인트 등록

NEG에 엔드포인트를 추가하려면 NEG를 업데이트해야 합니다. 이 작업은 Google Cloud 네트워크 엔드포인트 그룹 REST API 또는 gcloud 명령줄 도구를 사용하여 수동으로 수행하거나 자동으로 수행할 수 있습니다. 서비스의 새 인스턴스가 시작되면 Google Cloud API를 사용하여 구성된 NEG에 인스턴스를 등록할 수 있습니다. Google Cloud에서 Compute Engine MIG 또는 GKE를 사용하는 경우 MIG 또는 NEG 컨트롤러가 각각 엔드포인트 등록을 자동으로 처리합니다.

상태 확인

하이브리드 연결 NEG를 사용할 때 상태 확인 동작은 표준 중앙 집중식 상태 확인 동작과 다릅니다.

  • gce-vm-ip-port 유형의 네트워크 엔드포인트에서 Traffic Director는 Google Cloud의 중앙 집중식 상태 확인 시스템에서 엔드포인트 상태 정보를 수신합니다. Traffic Director는 Traffic Director 클라이언트에 이 정보를 제공하므로 잠재적으로 비용이 많이 드는 데이터 영역 기반 상태 확인이 필요하지 않습니다.
  • non-gcp-private-ip-port 유형의 네트워크 엔드포인트에서 Traffic Director는 데이터 영역을 사용하여 상태 확인을 처리하도록 클라이언트를 구성합니다. Envoy 인스턴스는 자체 상태 확인을 수행하고 고유한 메커니즘을 사용하여 비정상 백엔드로 요청을 보내지 않도록 합니다.

실제로 non-gcp-private-ip-port를 사용하면 다음과 같은 결과가 발생합니다.

  • HTTP 및 TCP 상태 확인만 지원됩니다.
  • Traffic Director 클라이언트가 각각 분산된 방식으로 상태 확인을 처리하므로 상태 확인으로 인해 네트워크 트래픽이 증가할 수 있습니다. 증가량은 Traffic Director 클라이언트 수와 각 클라이언트가 상태를 확인하는 데 필요한 엔드포인트 수에 따라 달라집니다. 예를 들면 다음과 같습니다.
    • 하이브리드 연결 NEG에 다른 엔드포인트를 추가하면 기존 Traffic Director 클라이언트가 하이브리드 연결 NEG의 엔드포인트 상태 확인을 시작할 수 있습니다.
    • 서비스 메시에 다른 인스턴스(예: 애플리케이션 코드와 Traffic Director 클라이언트를 실행하는 가상 머신 인스턴스)를 추가하면 새 인스턴스에서 하이브리드 연결 NEG의 엔드포인트를 확인하기 시작할 수 있습니다.
    • 상태 확인으로 인해 네트워크 트래픽이 2차율(O(n^2))로 증가합니다.

Virtual Private Cloud 네트워크

서비스 메시는 VPC 네트워크 이름으로 고유하게 식별됩니다. Traffic Director 클라이언트는 부트스트랩 구성에 지정된 VPC 네트워크를 기반으로 Traffic Director의 구성을 수신합니다. 따라서 메시가 완전히 Google Cloud 데이터 센터 외부에 있는 경우에도 부트스트랩 구성에 유효한 VPC 네트워크 이름을 제공해야 합니다.

서비스 계정

Google Cloud에서 기본 Envoy 부트스트랩은 Compute Engine 및 GKE 배포 환경 중 하나 또는 둘 다에서 서비스 계정 정보를 읽도록 구성됩니다. Google Cloud 외부에서 실행할 때는 Envoy 부트스트랩에 서비스 계정, 네트워크 이름, 프로젝트 번호를 명시적으로 지정해야 합니다. 이 서비스 계정에는 Traffic Director API에 연결할 수 있는 충분한 권한이 있어야 합니다.

다음 단계

온프레미스 및 멀티 클라우드 배포를 위해 Traffic Director를 구성하는 방법은 다중 환경(온프렘, 멀티 클라우드) 배포를 위한 네트워크 에지 서비스를 참조하세요.