Cloud Load Balancing 개요

부하 분산기는 애플리케이션의 여러 인스턴스에 사용자 트래픽을 분산합니다. 부하 분산은 부하를 분산시켜 애플리케이션이 과부하되거나 느려지거나 작동을 멈추는 위험을 낮춰줍니다.

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

Cloud Load Balancing 정보

Cloud Load Balancing을 사용하면 초당 백만 건 이상의 쿼리에 응답할 수 있는 시스템에서 사용자와 최대한 근접한 콘텐츠를 제공할 수 있습니다.

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

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

  • 프런트엔드 역할을 하는 단일 IP 주소
  • 백엔드의 자동 지능형 자동 확장
  • 사용자가 인터넷에서 애플리케이션에 도달할 때의 외부 부하 분산
  • 고객이 Google Cloud 내부에 있을 때의 내부 부하 분산
  • 단일 리전에서 애플리케이션을 사용할 때의 리전 부하 분산
  • 전 세계에서 애플리케이션을 사용할 때의 전역 부하 분산
  • 패스스루 부하 분산(직접 서버 반환(DSR) 또는 직접 라우팅 참조)
  • 프록시 기반 부하 분산(패스스루 대체)
  • 네트워크의 데이터와 IP 주소, TCP 또는 UDP 포트 같은 전송 레이어 프로토콜을 바탕으로 트래픽을 전달하는 레이어 4 기반 부하 분산
  • HTTP 헤더와 통합 리소스 식별자와 같은 속성을 바탕으로 콘텐츠 기반 라우팅 결정을 추가하는 레이어 7 기반 부하 분산
  • 캐시된 콘텐츠 전달을 위한 Cloud CDN과의 통합

더 포괄적인 기능 목록은 부하 분산기 기능을 참조하세요.

Cloud Load Balancing 유형

아래 표에는 부하 분산기가 내부 IP 주소를 사용하는지 외부 IP 주소를 사용하는지, 부하 분산기가 리전인지 전역인지, 지원되는 네트워크 서비스 등급 및 트래픽 유형은 무엇인지를 비롯한 각 Google Cloud 부하 분산기의 기능이 요약되어 있습니다.

내부 또는 외부 리전 또는 전역 지원되는 네트워크 등급 프록시 또는 패스스루 트래픽 유형 부하 분산기 유형
내부 리전 프리미엄 전용 패스스루 TCP 또는 UDP 내부 TCP/UDP
리전 프리미엄 전용 프록시 HTTP 또는 HTTPS 내부 HTTP(S)
외부 리전 프리미엄 또는 스탠더드 패스스루 TCP 또는 UDP TCP/UDP 네트워크
프리미엄 등급 전역

스탠더드 등급의 경우 사실상 리전1
프리미엄 또는 스탠더드 프록시 TCP TCP 프록시
프리미엄 또는 스탠더드 프록시 SSL SSL 프록시
프리미엄 또는 스탠더드 프록시 HTTP 또는 HTTPS 외부 HTTP(S)

1사실상 리전이란 백엔드 서비스가 전역이지만 스탠더드 등급을 선택하는 경우 외부 전달 규칙과 외부 IP 주소가 리전 단위여야 하며 전역 백엔드 서비스에 연결된 백엔드 인스턴스 그룹 또는 네트워크 엔드포인트 그룹(NEG)이 전달 규칙 및 IP 주소와 동일한 리전에 있어야 함을 의미합니다. 자세한 내용은 HTTP(S) 부하 분산, TCP 프록시 부하 분산, SSL 프록시 부하 분산 스탠더드 등급 구성을 참조하세요.

전역 부하 분산과 리전 부하 분산 비교

여러 리전에 백엔드가 배포되며 사용자가 동일한 애플리케이션 및 콘텐츠에 액세스해야 하고 단일 애니캐스트 IP 주소를 사용하여 액세스를 제공하고자 한다면 전역 분산 부하를 사용합니다. 또한 전역 부하 분산은 IPv6 종료를 제공할 수 있습니다.

백엔드가 한 리전에 있고 IPv4 종료만 필요하다면 리전 부하 분산을 사용합니다.

외부 부하 분산과 내부 부하 분산 비교

Google Cloud 부하 분산기는 외부 부하 분산기와 내부 부하 분산기로 나눌 수 있습니다.

  • 외부 부하 분산기는 인터넷에서 유입되는 트래픽을 Google Cloud Virtual Private Cloud(VPC) 네트워크에 배포합니다. 전역 부하 분산을 사용하려면 프리미엄 등급의 네트워크 서비스 등급을 사용해야 합니다. 리전 부하 분산의 경우 스탠더드 등급을 사용할 수 있습니다.

  • 내부 부하 분산기는 Google Cloud 내부의 인스턴스에 트래픽을 분산합니다.

외부 및 내부 부하 분산 유형(확대하려면 클릭)
외부 및 내부 부하 분산 유형(확대하려면 클릭)

다음 다이어그램은 외부 및 내부 부하 분산을 함께 사용하는 일반적인 사용 사례를 보여줍니다. 이 이미지에서 샌프란시스코, 아이오와, 싱가포르의 사용자 트래픽은 Google Cloud 네트워크의 여러 리전에 트래픽을 분산하는 외부 부하 분산기로 전달됩니다. 그런 다음 내부 부하 분산기는 us-central-1aus-central-1b 영역 간에 트래픽을 분배합니다.

외부 및 내부 부하 분산의 작동 방식(확대하려면 클릭)
외부 및 내부 부하 분산의 작동 방식(확대하려면 클릭)

트래픽 유형

부하 분산기에서 처리해야 하는 트래픽 유형은 사용할 부하 분산기를 결정할 때 고려해야 할 또 다른 요소입니다.

  • HTTP 및 HTTPS 트래픽에는 다음을 사용합니다.
    • 외부 HTTP(S) 부하 분산
    • 내부 HTTP(S) 부하 분산
  • TCP 트래픽에는 다음을 사용합니다.
    • TCP 프록시 부하 분산
    • 네트워크 부하 분산
    • 내부 TCP/UDP 부하 분산
  • UDP 트래픽에는 다음을 사용합니다.
    • 네트워크 부하 분산
    • 내부 TCP/UDP 부하 분산

백엔드 리전 및 네트워크

다음 표에는 다른 VPC 네트워크에 있는 백엔드에 대한 지원이 요약되어 있습니다. 이 표는 멀티 NIC 부하 분산 지원에 대한 정보도 제공합니다.

부하 분산기 유형 백엔드 리전 및 네트워크 멀티 NIC 참고사항
내부 TCP/UDP 부하 분산 모든 백엔드는 동일한 VPC 네트워크에 있어야 하며 백엔드 서비스와 동일한 리전에 있어야 합니다. 또한 백엔드 서비스는 전달 규칙과 동일한 리전 및 VPC 네트워크에 있어야 합니다. 여러 부하 분산기를 사용하면 동일한 백엔드의 여러 NIC에 부하를 분산할 수 있습니다.
내부 HTTP(S) 부하 분산 모든 백엔드는 동일한 VPC 네트워크에 있어야 하며 백엔드 서비스와 동일한 리전에 있어야 합니다. 또한 백엔드 서비스는 전달 규칙과 동일한 리전 및 VPC 네트워크에 있어야 합니다. 백엔드 VM의 nic0은 전달 규칙에서 사용하는 것과 동일한 네트워크 및 리전에 있어야 합니다.
HTTP(S) 부하 분산, SSL 프록시 부하 분산, TCP 프록시 부하 분산 프리미엄 등급: 모든 리전 및 모든 VPC 네트워크에서 백엔드를 사용할 수 있습니다.

스탠더드 등급: 백엔드는 전달 규칙과 동일한 리전에 있어야 하지만 모든 VPC 네트워크에서 사용할 수 있습니다.
부하 분산기는 nic0이 위치한 VPC 네트워크와 관계없이 첫 번째 네트워크 인터페이스(nic0)로만 트래픽을 전송합니다.

방화벽 규칙

다음 표에는 부하 분산기 액세스에 필요한 최소 필요 방화벽 규칙이 요약되어 있습니다.

부하 분산기 유형 최소 필수 인그레스 허용 방화벽 규칙 개요
외부 HTTP(S) 부하 분산
  • 상태 확인 범위
개요
내부 HTTP(S) 부하 분산
  • 상태 확인 범위
  • 프록시 전용 서브넷
개요
내부 TCP/UDP 부하 분산
  • 상태 확인 범위
  • 클라이언트의 내부 소스 IP 주소
개요
SSL 프록시 부하 분산
  • 상태 확인 범위
개요
TCP 프록시 부하 분산
  • 상태 확인 범위
개요
네트워크 부하 분산
  • 상태 확인 범위
  • 인터넷상 클라이언트의 외부 소스 IP 주소
    (예: 0.0.0.0/0 또는 특정 범위의 집합)
개요

외부 부하 분산기용 DDoS 보호

Google Cloud는 부하 분산기 유형에 따라 다양한 DDos 보호 기능을 제공합니다.

프록시 기반 외부 부하 분산기

모든 Google Cloud 프록시 기반 외부 부하 분산기는 Google 프로덕션 인프라의 일부인 Google 프런트엔드(GFE)에서 DDoS 보호를 자동으로 상속합니다.

GFE에서 제공하는 자동 DDoS 외에도 외부 HTTP(S) 부하 분산기에 대해 Google Cloud Armor를 구성할 수 있습니다.

패스스루 외부 부하 분산기

유일한 패스스루 외부 부하 분산기는 네트워크 부하 분산기입니다. 이러한 부하 분산기는 Compute Engine VM에 외부 IP 주소를 구현하는 데 사용되는 것과 동일한 Google 라우팅 인프라를 사용하여 구현됩니다. 네트워크 부하 분산기로의 수신 트래픽의 경우 Google Cloud는 VM당 수신 패킷을 제한합니다.

자세한 내용은 외부 IP 주소로의 수신 대역폭을 참조하세요.

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

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

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

내부 HTTP(S) 부하 분산

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

외부 HTTP(S) 부하 분산

HTTP(S) 부하 분산은 GFE에서 구현됩니다. GFE는 Google의 전역 네트워크 및 제어 영역을 사용하여 전역으로 분산되고 함께 운영됩니다. 프리미엄 등급에서는 GFE가 교차 리전 부하 분산을 제공하여 트래픽을 용량이 있는 가장 가까운 정상 백엔드로 전달하고 사용자에게 가능한 가까운 곳에서 HTTP 트래픽을 종료합니다.

내부 TCP/UDP 부하 분산

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

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

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

네트워크 부하 분산은 Maglev에서 구축됩니다. 이 부하 분산기를 사용하면 주소, 포트, 프로토콜 유형 등의 수신 IP 프로토콜 데이터를 기반으로 시스템의 트래픽 부하를 분산할 수 있습니다. 이는 프록시가 아닌 리전 부하 분산 시스템입니다. SSL 프록시 부하 분산기 및 TCP 프록시 부하 분산기가 지원하지 않는 포트의 TCP 및 SSL 트래픽과 UDP 트래픽에 네트워크 부하 분산을 사용합니다. 네트워크 부하 분산기는 클라이언트의 연결을 프록시 처리하지 않는 패스스루 부하 분산기입니다.

SSL 프록시 부하 분산

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

TCP 프록시 부하 분산

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

인터페이스

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

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

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

    gcloud compute http-health-checks create --help
    
  • Google Cloud Console: 부하 분산 작업은 Google Cloud Console을 통해 수행됩니다.

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

다음 단계

  • 어떤 Google Cloud 부하 분산기가 가장 적합한지 확인하려면 부하 분산기 선택을 참조하세요.