Cloud Load Balancing 개요

부하 분산기는 애플리케이션의 여러 인스턴스에 사용자 트래픽을 분산합니다. 부하 분산은 부하를 분산시켜 애플리케이션에 성능 문제가 발생할 위험을 줄여줍니다.

부하 분산의 간단한 개요(확대하려면 클릭)
부하 분산의 간단한 개요(확대하려면 클릭)

Cloud Load Balancing 정보

Cloud Load Balancing은 완전히 배포되는 소프트웨어 정의 관리형 서비스입니다. 하드웨어 기반이 아니므로 물리적인 부하 분산 인프라를 관리할 필요가 없습니다.

Cloud Load Balancing은 Google 시스템에 활용되는 프런트엔드 지원 인프라로 구축됩니다. 초당 1백만 개 이상의 쿼리를 일관되고 우수한 성능과 낮은 지연 시간으로 지원합니다. Cloud Load Balancing을 사용하면 사용자와 최대한 근접한 콘텐츠를 제공할 수 있습니다. 80개 이상의 글로벌 부하 분산 위치를 통해 트래픽이 Cloud Load Balancing으로 유입되어 Google의 고속 비공개 네트워크 백본에서 대부분의 여정 동안 유지됩니다. 필요한 경우 트래픽이 사용자와 최대한 가깝게 공개 인터넷에 전달됩니다.

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

  • 단일 Anycast IP 주소. Cloud Load Balancing을 통해 단일 Anycast IP 주소가 세계 각지의 모든 백엔드 인스턴스의 프런트엔드가 됩니다. 기본 백엔드가 양호하지 않을 경우 트래픽을 장애 조치 백엔드로 이동시키는 자동 멀티 리전 장애 조치 등 리전 간 부하 분산을 제공합니다. Cloud Load Balancing은 사용자, 트래픽, 네트워크, 백엔드 상태, 기타 관련 조건의 변화에 즉각적으로 반응합니다.

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

  • 원활한 자동 확장. Cloud Load Balancing은 트래픽 처리가 가능한 다른 리전으로 트래픽을 우회시켜 예상치 못한 즉각적인 대규모 트래픽 급증을 쉽게 처리하는 등 사용자 및 트래픽의 증가에 따라 확장이 가능합니다. 자동 확장 시 가동 준비 과정이 필요 없으며 단 몇 초 만에 최대 트래픽까지 확장할 수 있습니다.

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

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

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

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

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

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

Google Cloud 부하 분산기 요약

다음 다이어그램은 사용 가능한 Cloud Load Balancing 제품을 요약해서 보여줍니다.

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

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

부하 분산기 유형 트래픽 유형 IP 주소 전역 또는 리전 네트워크 서비스 등급 부하 분산 스키마 부하 분산기 프런트엔드 포트 프록시 또는 패스스루
전역 외부 HTTP(S) 부하 분산기 HTTP 또는 HTTPS IPv4, IPv6 전역 프리미엄 전용 EXTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
전역 외부 HTTP(S) 부하 분산기(기본) HTTP 또는 HTTPS IPv4, IPv6(프리미엄 등급의 경우 IPv6만) 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 HTTP(80 또는 8080), HTTPS(443) 프록시
리전 외부 HTTP(S) 부하 분산기 HTTP 또는 HTTPS IPv4 전용 리전 표준만 EXTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
내부 HTTP(S) 부하 분산기 HTTP 또는 HTTPS IPv4 전용 리전 프리미엄 전용 INTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
외부 SSL 프록시 부하 분산기 SSL 오프로드가 있는 TCP IPv4, IPv6(프리미엄 등급의 경우 IPv6만) 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 1~65535에서 정확히 포트 하나 프록시
외부 TCP 프록시 부하 분산기 SSL 오프로드가 없는 TCP IPv4, IPv6(프리미엄 등급의 경우 IPv6만) 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 1~65535에서 정확히 포트 하나 프록시
내부 리전 TCP 프록시 부하 분산기 SSL 오프로드가 없는 TCP IPv4 전용 리전 프리미엄 INTERNAL_MANAGED 모두 프록시
외부 TCP/UDP 네트워크 부하 분산기 TCP, UDP, ESP, GRE, ICMP, 및 ICMPv6 IPv4, IPv6(프리미엄 등급의 경우 IPv6만) 리전 프리미엄 또는 표준 외부 모두 패스스루
내부 TCP/UDP 부하 분산기 TCP 또는 UDP IPv4, IPv6 리전 백엔드, 리전 프런트엔드(전역 액세스 지원) 프리미엄 전용 내부 모두 패스스루

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

부하 분산 스키마에서 *_MANAGED라는 용어는 부하 분산기가 Google 프런트 엔드(GFE)에서 관리형 서비스로 구현되거나 또는 오픈소스 Envoy 프록시에서 관리형 서비스로 구현된 것입니다. *_MANAGED인 부하 분산 스키마에서 요청은 GFE 또는 Envoy 프록시로 라우팅됩니다.

부하 분산기 선택

사용할 Cloud Load Balancing 제품을 확인하려면 먼저 부하 분산기에서 처리해야 하는 트래픽 유형과 전역 또는 리전 부하 분산, 외부 또는 내부 부하 분산, 프록시 또는 패스스루 부하 분산이 필요한지 여부를 결정해야 합니다. 이러한 각 결정에 대한 자세한 내용은 부하 분산기 선택을 참조하세요.

그런 다음 이 결정 트리를 사용하여 클라이언트, 프로토콜, 네트워크 구성에 사용할 수 있는 부하 분산기를 결정합니다.

부하 분산기 선택을 위한 결정 트리(확대하려면 클릭)
부하 분산기 선택을 위한 결정 트리(확대하려면 클릭)

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

이 섹션에서는 각 유형의 Google Cloud 부하 분산기에 대한 자세한 정보를 제공하며 심도 있는 이해를 위한 개요 문서로 연결되는 링크를 제공합니다.

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

내부 HTTP(S) 부하 분산기

내부 HTTP(S) 부하 분산기는 Andromeda 네트워크 가상화 스택에 구축되며 오픈소스 Envoy 프록시를 기반으로 하는 관리형 서비스입니다. 이 부하 분산기는 레이어 7 애플리케이션 데이터의 내부 프록시 기반 부하 분산을 제공하며, URL 맵을 사용하여 트래픽이 라우팅되는 방식을 지정합니다. 부하 분산기는 백엔드에 대한 프런트엔드 역할을 하는 내부 IP 주소를 사용합니다.

외부 HTTP(S) 부하 분산기

외부 HTTP(S) 부하 분산기 구현은 부하 분산기 모드에 따라 다릅니다.

전역 외부 HTTP(S) 부하 분산기는 GFE에서 구현됩니다. GFE는 Google의 전역 네트워크 및 제어 영역을 사용하여 전역으로 분산되고 함께 운영됩니다. GFE가 멀티 리전 부하 분산을 제공하여 트래픽을 용량이 있는 가장 가까운 정상 백엔드로 전달하고 사용자에게 가능한 가까운 곳에서 HTTP 트래픽을 종료합니다. 또한 전역 외부 HTTP(S) 부하 분산기는 오픈소스 Envoy 프록시를 사용하여 고급 트래픽 관리 기능을 사용 설정합니다. 전역 외부 HTTP(S) 부하 분산기는 프리미엄 등급에서만 지원됩니다.

전역 외부 HTTP(S) 부하 분산기(기본)도 GFE에서 구현됩니다. 프리미엄 등급에서는 전역 부하 분산기이지만 표준 등급에서는 사실상 리전으로 구성될 수 있습니다. 사실상 리전이란 백엔드 서비스가 항상 전역인 경우 표준 등급을 선택할 때 외부 전달 규칙과 외부 IP 주소는 리전이어야 하며, 전역 백엔드 서비스에 연결된 백엔드가 전달 규칙 및 IP 주소와 동일한 리전에 있어야 함을 의미합니다.

리전 외부 HTTP(S) 부하 분산기는 오픈소스 Envoy 프록시를 기반으로 하는 관리형 서비스로, 고급 트래픽 관리 기능을 사용 설정합니다. 이는 표준 등급에서만 지원되는 리전 HTTP(S) 부하 분산기입니다.

내부 TCP/UDP 부하 분산기

내부 TCP/UDP 부하 분산기는 Andromeda 네트워크 가상화 스택에서 구축됩니다. 내부 TCP/UDP 부하 분산기를 사용하면 내부 가상 머신(VM) 인스턴스에만 액세스할 수 있는 내부 부하 분산 IP 주소를 지원하는 TCP/UDP 트래픽 부하를 분산할 수 있습니다. 내부 TCP/UDP 부하 분산기를 사용하면 내부 백엔드 인스턴스의 프런트엔드 역할을 하도록 내부 부하 분산 IP 주소가 구성됩니다. 부하 분산되는 서비스에는 내부 IP 주소만 사용합니다. 이로써 전반적으로 구성이 단순해집니다.

내부 TCP/UDP 부하 분산기는 리전 관리형 인스턴스 그룹을 지원하므로 리전 전체를 자동 확장하여 서비스를 영역 오류로부터 보호할 수 있습니다.

외부 TCP/UDP 네트워크 부하 분산기

네트워크 부하 분산기는 Maglev에서 구축됩니다. 이 부하 분산기를 사용하면 주소, 프로토콜, 포트(선택사항) 등의 수신 IP 프로토콜 데이터를 기반으로 시스템의 트래픽 부하를 분산할 수 있습니다. 이는 프록시가 아닌 리전별 부하 분산 시스템입니다. 즉, 네트워크 부하 분산기는 클라이언트의 연결을 프록시 처리하지 않는 패스스루 부하 분산기입니다.

백엔드 서비스 기반 네트워크 부하 분산기는 TCP, UDP, ESP, GRE, ICMP, ICMPv6 트래픽을 지원합니다.

대상 풀 기반 네트워크 부하 분산기는 TCP 또는 UDP 트래픽만 지원합니다.

외부 SSL 프록시 부하 분산기

외부 SSL 프록시 부하 분산기는 전역으로 분산되는 GFE에서 구현됩니다. 프리미엄 등급의 네트워크 서비스 등급을 선택하면 외부 SSL 프록시 부하 분산기가 전역적입니다. 프리미엄 등급에서는 백엔드를 여러 리전에 배포할 수 있으며 부하 분산기는 용량이 있는 가장 가까운 리전으로 사용자 트래픽을 자동으로 전달합니다. 표준 등급을 선택하는 경우 외부 SSL 프록시 부하 분산기가 단일 리전의 백엔드 사이에서만 트래픽을 전달할 수 있습니다.

외부 TCP 프록시 부하 분산기

외부 TCP 프록시 부하 분산기는 전역으로 분산되는 GFE에서 구현됩니다. 프리미엄 등급의 네트워크 서비스 등급을 선택하면 외부 TCP 프록시 부하 분산기가 전역적입니다. 프리미엄 등급에서는 백엔드를 여러 리전에 배포할 수 있으며 부하 분산기는 용량이 있는 가장 가까운 리전으로 사용자 트래픽을 자동으로 전달합니다. 표준 등급을 선택하는 경우 외부 TCP 프록시 부하 분산기가 단일 리전의 백엔드 사이에서만 트래픽을 전달할 수 있습니다.

내부 리전 TCP 프록시 부하 분산기

내부 리전별 TCP 프록시 부하 분산기는 동일한 VPC 네트워크 또는 VPC 네트워크에 연결된 클라이언트에서만 액세스할 수 있는 내부 IP 주소로 TCP 서비스 트래픽을 실행하고 확장할 수 있게 해주는 Envoy 프록시 기반 리전별 Layer 4 부하 분산기입니다.

부하 분산기는 TCP 트래픽을 Google Cloud, 온프레미스 또는 기타 클라우드 환경에 호스팅되는 백엔드에 배포합니다. 이 부하 분산기는 내부 IP 주소의 VPC 네트워크에서 선택한 리전에서만 액세스할 수 있습니다.

인터페이스

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

  • 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 부하 분산 인프라를 프로비저닝, 업데이트, 삭제합니다.

다음 단계