[GCP]로드밸런서 비교하기 Choosing a Load Balancer

Hailey·2020년 8월 14일
1

GCP

목록 보기
5/29

1. HTTP(S) Load Balancing

1-1. 특징
❶ 글로벌 로드 밸런싱 (Global load balancing)
❷ Any cast IP address
: "Global load balancing" means your applications are available to your customers at a single "any cast IP address."
❸ HTTP on port 80 or 8080
❹ HTTPs on port 443
❺ IPv4 또는 IPv6
❻ 오토스케일링 (Auto Scaling)
❼ URL maps

1-2. 아키텍쳐

글로벌 포워딩 룰은 들어오는 리퀘스트를 인터넷으로부터 타깃 HTTP 프록시로 보낸다. 타깃 HTTP 프록시는 URL map에 대항하여 리퀘스트를 위한 적절한 백엔드 서비스를 결정하기 위해 각각의 리퀘스트를 체크한다. 예를 들어, 너가 www.example.com/audio에 대한 리퀘스트를 어떤 오디오 파일을 전송하기로 설정된 인스턴스를 포함하는 백엔드서비스로 전송하고, www.example.com/video에 대한 리퀘스트를 비디오 파일을 전송하기로 설정된 인스턴스를 포함하는 백엔드 서비스로 전송한다. 그 백엔드 서비스는 각각의 리퀘스트를 capacity zone을 해결하는 것과 그것에 연결된 백엔드가 가진 인스턴스를 기반으로 적절한 백엔드로 보낸다.

1-3. Backend services
❶ 헬스체크 (Health check)
❷ 세션 어피니티 Session affinity (optional)
❸ 타임 셋 Time out setting (30-sec default)
❹ One or more backends

  • 인스턴스 그룹 (managed or unmanaged)
  • 밸런싱 모드 (CPU Utilization or RPS)
  • A capacity scaler (ceiling % of CPR/Rate targets)

1-4. HTTP VS. HTTP(S) load balacing
HTTP와 HTTP(S)의 아키텍쳐는 같은 기본적 구조를 갖는다. 그러나 다음 측면에서 차이가 있다.

❶ HTTP Load Balancing -> Target HTTP Proxy
HTTP(S) Load Balacing -> Target HTTP(S) Proxy
❷ HTTP(s) -> (최소)하나의 지정된 SSL certificate가 설치되어 있어야
❸ HTTP(s) -> Client SSL session terminates at the load balancer
❹ HTTP(s) -> QUIC transport layer protocol 지원

이제부터 HTTP(S)가 아닌 트래픽을 위한 것! HTTP(S) 트래픽의 경우 HTTP(S) 부하 분산을 사용하는 것이 좋다.

2. SSL Load Balancing

Global load balancing for encrypted, non-HTTP traffic
❷ Terminates SSL session at load balancing layer
❸ IPv4 또는 IPv6 clients
❹ 이점

  • 지능형 라우팅 Intelligent routing
    : SSL load balancer can route requests to backend locations where there is capacity
  • Certificate management
    : You only need to update your customer-facing certificate in one place when you need to switch those certificates
  • 보안 패치 Security Patching
    : If vulnerabilities arise in the SSL or TCP stack, GCP will apply patches at the load balancer automatically in order to keep your instances safe
  • SSL policies

3. TCP Load Balancing

Global load balancing for unencrypted, non-HTTP traffic
❷ Terminates TCP session at load balancing layer
❸ IPv4 또는 IPv6 clients
❹ 이점

  • 지능형 라우팅 Intelligent routing
  • 보안 패치 Security Patching

4. Network Load Balancing

Regional, non-proxied load balancer
❷ Forwarding rules (IP Protocol data)
❸ 트래픽

  • UDP
  • TCP/SSL Ports

❹ 백엔드

  • instance group
  • Target pool
    : 포워딩 룰로부터 들어오는 트래픽을 받는 인스턴스의 그룹

5. Internal Load Balancing

Regional, private load balancing

  • VM instances in same region
  • RFC 1918 IP addresses

❷ TCP/ UDP traffic
Reduced latency, simpler configuration
Software defined, fully distributed load balancing

( GCP internal load balancing은 장치나 가상머신 인스턴스에 기반하지 않는 software-defined, fully distributed load balancing 솔루션이다.

  • 왼쪽의 그림과 같은 인터널 로드밸런싱의 전통적인 프록시 모델에서는 내부 IP 주소를 로드밸런싱 장치나 인스턴스에서 정하고, 클라이언트 인스턴스를 이 IP주소에 연결하였다. 또한, IP주소에서 오는 트래픽은 로드밸런서에서 종료되었고, 로드밸런서는 새로운 커넥션을 만들 백엔드를 선택하였다. 필수적으로 클라이언트와 로드밸런서와의 연결로드밸런서와 백엔드간의 연결, 즉 두 가지의 연결이 이루어졌다.
  • 그러나, GCP 인터널 로드밸런싱은 클라이언트 인스턴스 리퀘스트를 오른쪽 그림과 같이 다른 접근을 이용하여 백엔드로 보낸다. 안드로메다의 위에서 만들어진 lightweight 로드밸런싱을 사용하여 직접적으로 클라이언트 인스턴스에서 백엔드 인스턴스로 트래픽을 보내는 소프트웨어 기반을 제공한다. )

  • 이 예시에서 웹티어는 San Francisco, Iowa, 싱가포르에 사는 유저들에게 단일의 글로벌 IP 주소를 제공하는 external HTTPS 로드밸런서를 사용한다. 이 로드밸런서의 백엔드는 글로벌 로드밸런서이기 때문에 US-Central1과 Asia-East-1에 위치한다. 이러한 백엔드는 어플리케이션이나 인터널 티어로서 각 지역에 있는 인터널 로드밸런서에 접근한다. 이러한 인터널 티어의 백엔드는 US-Central1-A, US-Central1-B, Asia-East1-B에 위치한다. 마지막 티어는 데이터베이스 티어로, 이러한 쓰리티어의 장점은 단순화된 보안과 네트워크 프라이싱이다.

6. 로드밸런서 선택하기

profile
Business & Software 💗🌎

0개의 댓글