Cloud Load Balancing 개요

부하 분산기는 애플리케이션의 여러 인스턴스에 사용자 트래픽을 분산합니다. 부하 분산은 부하를 분산시켜 애플리케이션에 성능 문제가 발생할 위험을 줄여줍니다. Google Cloud Load Balancing에는 Maglev, Andromeda, Google 프런트엔드, Envoy와 같은 강력하고 효율적인 기술을 기반으로 합니다. 이러한 기술은 Google 자체 제품에 사용되는 것과 매우 동일한 기술이며 안정성과 고성능을 보장합니다.

Cloud Load Balancing은 리전 애플리케이션과 네트워크 부하 분산기의 포괄적인 포트폴리오를 제공합니다. 부하 분산기를 사용하여 단일 리전에 있는 백엔드 간에 초당 수백만 개의 요청을 배포할 수 있습니다. 단일 애니캐스트 IP 주소를 통해 이러한 부하 분산기에 액세스할 수 있도록 구성할 수 있습니다. TLS/SSL 오프로드를 걱정할 필요 없이 리전에서 백엔드 및 프록시를 유지하고, 리전별 프록시 부하 분산기를 사용해서 강력한 관할권 제어를 구현할 수 있습니다. Google의 리전 패스 스루 부하 분산기를 사용하여 고성능 직접 서버 반환(DSR)으로 여러 프로토콜을 백엔드로 빠르게 라우팅할 수 있습니다.

Cloud Load Balancing 개요.
Cloud Load Balancing 개요(확대하려면 클릭)

Cloud Load Balancing의 주요 기능

Cloud Load Balancing은 다음과 같은 부하 분산기 기능을 제공합니다.

  • 단일 애니캐스트 IP 주소. Cloud Load Balancing을 통해 단일 애니캐스트 IP 주소가 모든 백엔드 인스턴스의 프런트엔드가 됩니다.

  • 원활한 자동 확장. Cloud Load Balancing은 트래픽 처리가 가능한 다른 영역의 백엔드로 트래픽을 우회시켜 예상치 못한 즉각적인 대규모 트래픽 급증을 쉽게 처리하는 등 사용자 및 트래픽의 증가에 따라 확장이 가능합니다. 자동 확장 시 가동 준비 과정이 필요 없으며 단 몇 초 만에 최대 트래픽까지 확장할 수 있습니다. Cloud Load Balancing은 사용자, 트래픽, 네트워크, 백엔드 상태, 기타 관련 조건의 변화에 즉각적으로 반응합니다.

  • 소프트웨어 정의 부하 분산. Cloud Load Balancing은 사용자의 트래픽 전체에 적용되는 완전 분산형의 소프트웨어 정의 관리형 서비스입니다. 인스턴스 기반 또는 기기 기반의 솔루션이 아니어서 물리적인 부하 분산 인프라에 종속되거나 인스턴스 기반 부하 분산기에 내재된 고가용성, 확장, 관리 문제가 발생하지 않습니다.

  • 레이어 4 및 레이어 7 부하 분산. 네트워크의 데이터와 TCP, UDP, ESP, GRE, ICMP 및 ICMPv6와 같은 전송 계층 프로토콜을 바탕으로 트래픽을 전달하는 레이어 4 기반 부하 분산을 사용합니다. HTTP 헤더와 통합 리소스 식별자와 같은 속성을 바탕으로 요청 라우팅 결정을 추가하는 레이어 7 기반 부하 분산을 사용합니다.

  • 외부 및 내부 부하 분산. 외부 또는 내부 액세스를 위해 부하 분산기를 사용할 수 있는지 여부를 정의합니다. 클라이언트가 인터넷에서 애플리케이션에 연결해야 할 때 외부 부하 분산기를 사용할 수 있습니다. 클라이언트가Trusted Cloud내에 있을 때는 내부 부하 분산기를 사용할 수 있습니다. 자세한 내용은 외부 부하 분산과 내부 부하 분산 비교를 참조하세요.

Trusted Cloud 부하 분산기 유형

Cloud Load Balancing은 애플리케이션 부하 분산기 및 네트워크 부하 분산기의 두 가지 부하 분산기 유형을 제공합니다. HTTP(S) 트래픽을 사용하는 애플리케이션에 레이어 7 부하 분산기가 필요하면 애플리케이션 부하 분산기를 선택합니다. TLS 오프로딩을 지원하는 레이어 4 부하 분산기가 필요하거나(프록시 부하 분산기 사용) UDP, ESP, ICMP와 같이 IP 프로토콜을 지원해야 하는 경우(패스 스루 부하 분산기 사용)에는 네트워크 부하 분산기를 선택할 수 있습니다.

애플리케이션 부하 분산기

애플리케이션 부하 분산기는 애니캐스트 IP 주소 뒤에서 서비스를 실행 및 확장할 수 있게 해주는 프록시 기반의 레이어 7 부하 분산기입니다. 애플리케이션 부하 분산기는Trusted Cloud외부의 외부 백엔드는 물론 Compute Engine 및 Google Kubernetes Engine(GKE)과 같은 다양한 Trusted Cloud 플랫폼에서 호스팅되는 백엔드에 HTTP 및 HTTPS 트래픽을 배포합니다.

애플리케이션 부하 분산기는 애플리케이션이 인터넷 연결 또는 내부용으로 구성되었는지에 따라 외부 또는 내부적으로 배포할 수 있습니다. 두 경우 모두 이러한 부하 분산기는 단일 리전에서만 백엔드를 지원합니다.

  • 리전 외부 애플리케이션 부하 분산기Envoy 프록시에서 관리형 서비스로 구현됩니다. 클라이언트는 인터넷 어디에서나 이러한 부하 분산기에 연결할 수 있습니다. 애플리케이션 부하 분산기는 오픈소스 Envoy 프록시를 사용해서 고급 트래픽 관리 기능을 사용 설정합니다.
  • 리전 애플리케이션 부하 분산기는 Andromeda 네트워크 가상화 스택 및 오픈소스 Envoy 프록시를 기반으로 구축됩니다. 이 부하 분산기는 레이어 7 애플리케이션 데이터의 내부 프록시 기반 부하 분산을 제공합니다. 부하 분산기는 동일한 VPC 네트워크에 있는 클라이언트 또는 VPC 네트워크에 연결된 클라이언트에만 액세스할 수 있는 내부 IP 주소를 사용합니다.

다음 다이어그램은 샘플 애플리케이션 부하 분산기 아키텍처를 보여줍니다.

애플리케이션 부하 분산기 아키텍처.
애플리케이션 부하 분산기 아키텍처(확대하려면 클릭)

네트워크 부하 분산기

네트워크 부하 분산기는 TCP, UDP, 기타 IP 프로토콜 트래픽을 처리할 수 있는 레이어 4 부하 분산기입니다. 이러한 부하 분산기는 프록시 부하 분산기 또는 패스 스루 부하 분산기로 제공됩니다. 애플리케이션 니즈 및 처리해야 하는 트래픽 유형에 따라 부하 분산기를 선택할 수 있습니다. 고급 트래픽 제어를 제공하고 백엔드에 대해 온프레미스 및 멀티 클라우드 환경을 모두 지원하는 리버스 프록시 부하 분산기를 설정해야 할 때는 프록시 네트워크 부하 분산기를 선택합니다. 클라이언트 패킷의 소스 IP 주소를 보존할 때 응답에 대해 직접 서버 반환을 활용하거나 TCP, UDP, ESP, GRE, ICMP, ICMPv6와 같은 다양한 IP 프로토콜을 처리하는 것이 중요한 경우에는 패스 스루 네트워크 부하 분산기를 사용합니다.

프록시 네트워크 부하 분산기

프록시 네트워크 부하 분산기는 Trusted CloudVPC 네트워크에서 가상 머신(VM) 인스턴스로 TCP 트래픽을 배포하는 레이어 4 리버스 프록시 부하 분산기입니다. 트래픽은 부하 분산 레이어에서 종료된 후 TCP를 통해 사용 가능한 가장 가까운 백엔드로 전달됩니다.

프록시 네트워크 부하 분산기는 애플리케이션이 인터넷 연결 또는 내부용으로 구성되었는지에 따라 외부 또는 내부적으로 배포할 수 있습니다. 두 경우 모두 이러한 부하 분산기는 단일 리전에서만 백엔드를 지원합니다.

  • 리전 외부 프록시 네트워크 부하 분산기로 알려진 레이어 4 부하 분산기는 Trusted Cloud VPC 네트워크, 온프레미스, 여러 클라우드 환경 내에서 수신되는 인터넷 트래픽을 백엔드로 배포합니다.
  • 리전 내부 프록시 네트워크 부하 분산기는 Envoy 프록시 기술을 기반으로 하는 리전별 레이어 4 부하 분산기입니다. 이러한 부하 분산기를 사용하면 동일한 VPC 네트워크 내에 있는 클라이언트 또는 VPC 네트워크에 연결된 클라이언트만 액세스할 수 있는 내부 IP 주소를 사용해서 TCP 서비스 트래픽을 배포 및 확장할 수 있습니다.

다음 다이어그램은 샘플 프록시 네트워크 부하 분산기 아키텍처를 보여줍니다.

프록시 네트워크 부하 분산기 아키텍처
프록시 네트워크 부하 분산기 아키텍처(확대하려면 클릭)

패스 스루 네트워크 부하 분산기

패스 스루 네트워크 부하 분산기는 리전별 레이어 4 패스 스루 부하 분산기입니다. 이러한 부하 분산기는 부하 분산기와 동일한 리전의 백엔드 간에 트래픽을 분산시킵니다. 이러한 부하 분산기는 Andromeda 가상 네트워크 및 Google Maglev를 사용하여 구현됩니다.

이름에 표시된 것처럼 이러한 부하 분산기는 프록시가 아닙니다. 백엔드 VM은 패킷의 소스 및 대상 IP 주소, 프로토콜, 프로토콜이 포트 기반인 경우 소스 및 대상 포트가 변경되지 않은 상태로 부하 분산된 패킷을 수신합니다. 부하 분산된 연결은 백엔드에서 종료됩니다. 백엔드 VM의 응답은 부하 분산기를 통하지 않고 클라이언트에 직접 전달됩니다. 업계에서는 이를 직접 서버 반환(DSR)이라 합니다.

다음 이미지에 표시된 것처럼 이러한 부하 분산기는 부하 분산기가 인터넷 또는 내부에 연결되는지에 따라 두 가지 모드로 배포됩니다.

  • 외부 패스 스루 네트워크 부하 분산기는 Maglev를 기반으로 합니다. 클라이언트는 네트워크 서비스 등급에 관계없이 인터넷 어디서나 이러한 부하 분산기에 연결할 수 있습니다. 또한 부하 분산기는 외부 IP 주소가 있는 Trusted Cloud VM 또는 Cloud NAT 또는 인스턴스 기반 NAT를 통해 인터넷에 액세스할 수 있는 Trusted Cloud VM에서 트래픽을 수신할 수 있습니다.

    외부 패스 스루 네트워크 부하 분산기의 백엔드는 백엔드 서비스 또는 대상 풀을 사용하여 배포할 수 있습니다. 신규 배포의 경우 백엔드 서비스를 사용하는 것이 좋습니다.

  • 내부 패스 스루 네트워크 부하 분산기는 Andromeda 네트워크 가상화 스택을 기반으로 합니다. 내부 패스 스루 네트워크 부하 분산기를 사용하면 동일한 VPC 네트워크에 있는 시스템 또는 VPC 네트워크에 연결된 시스템에만 액세스할 수 있는 내부 부하 분산 IP 주소 뒤에서 TCP/UDP 트래픽의 부하를 분산할 수 있습니다. 이 부하 분산기는 프리미엄 등급에서만 구성할 수 있습니다.

다음 다이어그램은 샘플 패스 스루 네트워크 부하 분산기 아키텍처를 보여줍니다.

패스 스루 네트워크 부하 분산기 아키텍처
패스 스루 네트워크 부하 분산기 아키텍처(확대하려면 클릭)

Trusted Cloud 부하 분산기의 기본 기술

다음 표에서는 각Trusted Cloud 부하 분산기가 빌드되는 기본 기술을 보여줍니다.

  • Google 프런트 엔드(GFE)는 다른 시스템 및 제어 영역과 함께 전역 부하 분산을 수행하고 Google 접속 지점(PoP)에 위치하는 소프트웨어 정의 분산 시스템입니다.
  • Andromeda는 Google Cloud의 소프트웨어 정의 네트워크 가상화 스택입니다.
  • Maglev는 네트워크 부하 분산을 위한 분산 시스템입니다.
  • Envoy는 클라우드 네이티브 애플리케이션용으로 설계된 오픈소스 에지 및 서비스 프록시입니다.
부하 분산기 기술
리전 외부 애플리케이션 부하 분산기 Envoy
리전 내부 애플리케이션 부하 분산기 Envoy
리전 외부 프록시 네트워크 부하 분산기 Envoy
리전 내부 프록시 네트워크 부하 분산기 Envoy
외부 패스 스루 네트워크 부하 분산기 Maglev
내부 패스 스루 네트워크 부하 분산기 안드로메다자리

부하 분산기 선택

사용할 Cloud Load Balancing 제품을 결정하려면 먼저 부하 분산기가 처리해야 하는 트래픽 유형을 결정해야 합니다. 일반적으로 HTTP(S) 트래픽을 사용하는 애플리케이션에 유연한 기능 집합이 필요하면 애플리케이션 부하 분산기를 선택합니다. 그리고 대규모 TLS 부하 분산, UDP 지원, 클라이언트 IP 주소를 애플리케이션에 노출하는 기능이 필요하면 네트워크 부하 분산기를 선택합니다.

애플리케이션이 외부용(인터넷 연결) 또는 내부용인지에 따라 선택 범위를 좁힐 수 있습니다.

다음 다이어그램은 Cloud Load Balancing에 사용 가능한 모든 배포 모드를 보여줍니다. 자세한 내용은 부하 분산기 선택 가이드를 참조하세요.

부하 분산기 선택.
부하 분산기 선택(확대하려면 클릭)

Trusted Cloud 부하 분산기의 유형 요약

다음 표에서는 부하 분산 스키마와 함께 각 부하 분산기가 작동하는 네트워크 서비스 등급과 같은 세부정보를 보여줍니다.

부하 분산기 배포 모드 트래픽 유형 네트워크 서비스 등급 부하 분산 스키마1
애플리케이션 부하 분산기 리전 외부 HTTP 또는 HTTPS 프리미엄 또는 표준 등급 EXTERNAL_MANAGED
리전 내부 HTTP 또는 HTTPS 프리미엄 등급 INTERNAL_MANAGED
프록시 네트워크 부하 분산기 리전 외부 TCP 프리미엄 또는 표준 등급 EXTERNAL_MANAGED
리전 내부 SSL 오프로드가 없는 TCP 프리미엄 등급 INTERNAL_MANAGED
패스 스루 네트워크 부하 분산기

외부

항상 리전

TCP, UDP, ESP, GRE, ICMP 및 ICMPv6 프리미엄 또는 표준 등급 외부

내부

항상 리전

TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH, GRE 프리미엄 등급 내부

1 부하 분산 스키마는 부하 분산기의 전달 규칙백엔드 서비스의 속성이며 내부 또는 외부 트래픽에 부하 분산기를 사용할 수 있는지 여부를 나타냅니다.

EXTERNAL_MANAGED 또는 INTERNAL_MANAGED에서 managed는 부하 분산기가 Google 프런트엔드(GFE) 또는 오픈소스 Envoy 프록시에서 관리형 서비스로 구현됨을 나타냅니다. managed인 부하 분산 스키마에서 요청이 GFE 또는 Envoy 프록시로 라우팅됩니다.

인터페이스

다음 인터페이스를 사용하여 부하 분산기를 구성하고 업데이트할 수 있습니다.

  • Google Cloud CLI: Google Cloud CLI에 포함된 명령줄 도구입니다. 문서에서는 이 도구를 자주 호출하여 태스크를 수행합니다. 이 도구에 대한 전체 개요는 gcloud CLI 가이드를 참조하세요. 부하 분산 관련 명령어는 gcloud compute 명령어 그룹에서 확인할 수 있습니다.

    또한 --help 플래그를 사용하면 gcloud 명령어에 대한 상세 도움말을 이용할 수 있습니다.

    gcloud compute http-health-checks create --help
    
  • Trusted Cloud 콘솔: 부하 분산 태스크는 Trusted Cloud 콘솔을 사용하여 수행할 수 있습니다.

  • REST API: 모든 부하 분산 작업은 Cloud Load Balancing API를 사용하여 수행될 수 있습니다. API 참조 문서는 사용 가능한 리소스와 메서드를 설명합니다.

  • Terraform: Terraform과 같은 오픈소스 IaC(infrastructure-as-code) 도구를 사용하여 Trusted Cloud부하 분산 인프라를 프로비저닝, 업데이트, 삭제할 수 있습니다.

다음 단계