Cloud Load Balancing 개요

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

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

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 기반 부하 분산을 사용합니다.

  • 외부 및 내부 부하 분산. 사용자가 인터넷에서 애플리케이션에 도달할 때 외부 부하 분산을 사용할 수 있습니다. 클라이언트가 Google Cloud 내부에 있을 때는 내부 부하 분산을 사용할 수 있습니다.

  • 글로벌 및 리전 부하 분산. 부하 분산된 리소스를 단일 또는 여러 리전에 배포하여 사용자와 가까운 연결을 종료하고 고가용성 요구사항을 충족할 수 있습니다.

  • 고급 기능 지원. Cloud Load Balancing은 IPv6 부하 분산, 소스 IP 기반 트래픽 조정, 가중치가 적용된 부하 분산, WebSocket, 사용자 정의 요청 헤더, 비공개 가상 IP 주소(VIP)용 프로토콜 전달 등의 기능을 지원합니다.

    또한 다음 통합이 포함됩니다.

    • 캐시된 콘텐츠 전달을 위한 Cloud CDN과의 통합 Cloud CDN은 전역 외부 애플리케이션 부하 분산기 및 기본 애플리케이션 부하 분산기에서 지원됩니다.
    • Google Cloud Armor와 통합하여 DDoS 공격 및 기타 타겟팅된 애플리케이션 공격으로부터 인프라 보호 상시 사용 설정된 DDoS 보호는 전역 외부 애플리케이션 부하 분산기, 기본 애플리케이션 부하 분산기, 외부 프록시 네트워크 부하 분산기, 외부 패스 스루 네트워크 부하 분산기에 대해 제공됩니다. 또한 Google Cloud Armor는 외부 패스 스루 네트워크 부하 분산기에 대해서만 고급 네트워크 DDoS 보호를 지원합니다. 자세한 내용은 고급 네트워크 DDoS 보호 구성을 참조하세요.

부하 분산기 유형

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

애플리케이션 부하 분산기

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

애플리케이션 부하 분산기는 애플리케이션이 인터넷 연결 또는 내부용으로 구성되었는지에 따라 외부 또는 내부적으로 배포할 수 있습니다.

  • 외부 애플리케이션 부하 분산기Google 프런트엔드(GFE) 또는 Envoy 프록시에 관리형 서비스로 구현됩니다. 클라이언트는 인터넷 어디에서나 이러한 부하 분산기에 연결할 수 있습니다. 다음에 유의합니다.

    • 이러한 부하 분산기는 전역, 리전 또는 기본 모드 중 하나로 배포할 수 있습니다.
      • 전역 외부 애플리케이션 부하 분산기는 여러 리전의 백엔드를 지원합니다.
      • 리전 외부 애플리케이션 부하 분산기는 단일 리전의 백엔드만 지원합니다.
      • 기본 애플리케이션 부하 분산기는 프리미엄 등급에서 전역이지만 표준 등급에서는 사실상 리전별로 구성될 수 있습니다.
    • 애플리케이션 부하 분산기는 오픈소스 Envoy 프록시를 사용해서 고급 트래픽 관리 기능을 사용 설정합니다.
  • 내부 애플리케이션 부하 분산기는 Andromeda 네트워크 가상화 스택 및 오픈소스 Envoy 프록시를 기반으로 구축됩니다. 이 부하 분산기는 레이어 7 애플리케이션 데이터의 내부 프록시 기반 부하 분산을 제공합니다. 부하 분산기는 동일한 VPC 네트워크에 있는 클라이언트 또는 VPC 네트워크에 연결된 클라이언트에만 액세스할 수 있는 내부 IP 주소를 사용합니다. 다음에 유의하세요.

    • 이러한 부하 분산기는 리전별 또는 리전 간 모드 중 하나로 배포할 수 있습니다.
    • 리전 내부 애플리케이션 부하 분산기는 단일 리전의 백엔드만 지원합니다.
    • 리전 간 내부 애플리케이션 부하 분산기는 여러 리전에서 백엔드를 지원하며 항상 전역에서 액세스할 수 있습니다. Google Cloud 리전의 클라이언트가 부하 분산기로 트래픽을 전송할 수 있습니다.

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

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

네트워크 부하 분산기

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

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

프록시 네트워크 부하 분산기는 Google Cloud VPC 네트워크에서 가상 머신(VM) 인스턴스로 TCP 트래픽을 배포하는 레이어 4 역방향 프록시 부하 분산기입니다. 트래픽은 부하 분산 레이어에서 종료된 후 TCP를 통해 사용 가능한 가장 가까운 백엔드로 전달됩니다. 이러한 부하 분산기는 GFE에서 관리형 서비스로 구현됩니다.

프록시 네트워크 부하 분산기는 애플리케이션이 인터넷 연결 또는 내부용으로 구성되었는지에 따라 외부 또는 내부적으로 배포할 수 있습니다.

  • 외부 프록시 네트워크 부하 분산기로 알려진 레이어 4 부하 분산기는 Google Cloud VPC 네트워크, 온프레미스, 여러 클라우드 환경 내에서 수신되는 인터넷 트래픽을 백엔드로 배포합니다.

    이러한 부하 분산기는 전역, 리전 또는 기본 모드 중 하나로 배포할 수 있습니다.

    • 전역 외부 프록시 네트워크 부하 분산기는 여러 리전의 백엔드를 지원합니다.
    • 리전 외부 프록시 네트워크 부하 분산기는 단일 리전의 백엔드를 지원합니다.
    • 기본 프록시 네트워크 부하 분산기는 프리미엄 등급에서 전역이지만 표준 등급에서는 사실상 리전별로 구성될 수 있습니다.
  • 내부 프록시 네트워크 부하 분산기는 Envoy 프록시 기술을 기반으로 하는 리전별 레이어 4 부하 분산기입니다. 이러한 부하 분산기를 사용하면 동일한 VPC 네트워크 내에 있는 클라이언트 또는 VPC 네트워크에 연결된 클라이언트만 액세스할 수 있는 내부 IP 주소를 사용해서 TCP 서비스 트래픽을 배포 및 확장할 수 있습니다.

    이러한 부하 분산기는 리전별 또는 리전 간 모드 중 하나로 배포할 수 있습니다.

    • 리전 내부 프록시 네트워크 부하 분산기는 단일 리전의 백엔드만 지원합니다.
    • 리전 간 내부 프록시 네트워크 부하 분산기는 여러 리전에서 백엔드를 지원하며 항상 전역에서 액세스할 수 있습니다. Google Cloud 리전의 클라이언트가 부하 분산기로 트래픽을 전송할 수 있습니다.

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

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

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

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

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

이러한 부하 분산기는 부하 분산기가 인터넷 연결 또는 내부용으로 구성되었는지에 따라 두 가지 모드로 배포됩니다.

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

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

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

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

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

부하 분산기 선택

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

애플리케이션이 외부용(인터넷 연결) 또는 내부용인지, 백엔드를 전역적으로 또는 리전별로 배포해야 하는지, 네트워크 서비스 등급이 프리미엄 또는 표준인지와 같은 애플리케이션 요구사항에 따라 선택 범위를 좁힐 수 있습니다.

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

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

1 전역 외부 애플리케이션 부하 분산기는 전역 및 기본 등 두 가지 작업 모드를 지원합니다.

2 전역 외부 프록시 네트워크 부하 분산기는 전역 및 기본 등 두 가지 작업 모드를 지원합니다.

3 패스 스루 네트워크 부하 분산기는 클라이언트 소스 IP 주소를 보존합니다. 패스 스루 네트워크 부하 분산기는 또한 UDP, ESP, ICMP와 같은 추가 프로토콜을 지원합니다.

Google Cloud 부하 분산기 유형 요약

다음 표는 각 부하 분산기에 대한 더 구체적인 정보를 제공합니다.

부하 분산기 배포 모드 트래픽 유형 네트워크 서비스 등급 부하 분산 스키마
애플리케이션 부하 분산기 전역 외부 HTTP 또는 HTTPS 프리미엄 등급 EXTERNAL_MANAGED
리전 외부 HTTP 또는 HTTPS 프리미엄 또는 표준 등급 EXTERNAL_MANAGED
기본 HTTP 또는 HTTPS

프리미엄 등급의 경우 전역

표준 등급의 경우 리전

외부
리전 내부 HTTP 또는 HTTPS 프리미엄 등급 INTERNAL_MANAGED
리전 간 내부 HTTP 또는 HTTPS 프리미엄 등급 INTERNAL_MANAGED
프록시 네트워크 부하 분산기 전역 외부 선택적 SSL 오프로드가 있는 TCP 프리미엄 등급 EXTERNAL_MANAGED
리전 외부 TCP 프리미엄 또는 표준 등급 EXTERNAL_MANAGED
기본 선택적 SSL 오프로드가 있는 TCP

프리미엄 등급의 경우 전역

표준 등급의 경우 리전

외부
리전 내부 SSL 오프로드가 없는 TCP 프리미엄 등급 INTERNAL_MANAGED
리전 간 내부 SSL 오프로드가 없는 TCP 프리미엄 등급 INTERNAL_MANAGED
패스 스루 네트워크 부하 분산기

외부

항상 리전

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

내부

항상 리전

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

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

부하 분산 스키마에서 *_MANAGED는 부하 분산기가 Google Front End(GFE)에서 또는 오픈소스 Envoy 프록시에서 관리형 서비스로 구현되었음을 나타냅니다. *_MANAGED인 부하 분산 스키마에서 요청이 GFE 또는 Envoy 프록시로 라우팅됩니다.

인터페이스

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

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

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

    gcloud compute http-health-checks create --help
    
    
  • Google Cloud 콘솔: Google Cloud 콘솔을 사용하여 부하 분산 작업을 수행할 수 있습니다.

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

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

다음 단계