Cloud Load Balancing 개요

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

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

Cloud Load Balancing 정보

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

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

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

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

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

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

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

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

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

  • 고급 기능 지원. Cloud Load Balancing은 IPv6 전역 부하 분산, WebSocket, 사용자 정의 요청 헤더, 비공개 VIP용 프로토콜 전달 등의 기능을 지원합니다.

    외부 HTTP(S) 부하 분산을 위한 다음 통합도 포함됩니다.

    • 캐시된 콘텐츠 전달을 위한 Cloud CDN과의 통합
    • Google Cloud Armor와 통합하여 DDoS 공격 및 기타 타겟팅된 애플리케이션 공격으로부터 인프라 보호

Google Cloud 부하 분산기 요약

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

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

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

부하 분산기 유형 트래픽 유형 전역 또는 리전 네트워크 서비스 계층 부하 분산 스키마 부하 분산기 프런트엔드 포트 프록시 또는 패스스루
전역 외부 HTTP(S) 부하 분산기 (미리보기) HTTP 또는 HTTPS 전역 프리미엄 전용 EXTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
전역 외부 HTTP(S) 부하 분산기(기본) HTTP 또는 HTTPS 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 HTTP(80 또는 8080), HTTPS(443) 프록시
리전 외부 HTTP(S) 부하 분산기(미리보기) HTTP 또는 HTTPS 리전 표준만 EXTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
내부 HTTP(S) 부하 분산기 HTTP 또는 HTTPS 리전 프리미엄 전용 INTERNAL_MANAGED HTTP(80 또는 8080), HTTPS(443) 프록시
SSL 프록시 부하 분산기 SSL 오프로드가 있는 TCP 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200, 9300 프록시
TCP 프록시 부하 분산기 SSL 오프로드가 없는 TCP 프리미엄 등급의 경우 전역. 표준 등급의 경우 리전. 프리미엄 또는 표준 외부 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200, 9300 프록시
외부 TCP/UDP 네트워크 부하 분산기 TCP, UDP, ESP 또는 ICMP(미리보기) 리전 프리미엄 또는 표준 외부 모두 패스스루
내부 TCP/UDP 부하 분산기 TCP 또는 UDP 리전 백엔드, 리전 프런트엔드(전역 액세스 지원) 프리미엄 전용 내부 모두 패스스루

부하 분산기 선택

사용할 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/UDP 네트워크 부하 분산기 Maglev
내부 TCP/UDP 부하 분산기 안드로메다자리
TCP 프록시 부하 분산기 GFE
SSL 프록시 부하 분산기 GFE

내부 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, ICMP 트래픽을 지원합니다.

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

SSL 프록시 부하 분산

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

TCP 프록시 부하 분산

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

인터페이스

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

  • gcloud 명령줄 도구: Cloud SDK에 포함된 명령줄 도구로, 문서에서는 작업을 수행하기 위해 이 도구를 자주 호출합니다. 이 도구에 대한 전체 개요는 gcloud 도구 가이드를 참조하세요. 부하 분산 관련 명령어는 gcloud compute 명령어 그룹에서 확인할 수 있습니다.

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

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

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

다음 단계