GCP – Cloud Load Balancing 之分類與選擇
banner

GCP – Cloud Load Balancing 之分類與選擇

近來有一些客戶詢問若是有自定義 TCP Port的需求,在 Google Cloud 上面應選擇的是哪一種 Load Balancer Type 才是正確的?

這篇文章主要在說明 Cloud Load Balancing 有哪些不同種類的 Load Balancer Type ,依據 Services / Application 的面向是單一地區或多地區 (Global or Regional),內部或外部 (Internal or External ),以及流量類型 (Traffic Type)等區分方式,來協助釐清各種不同的Load Balancer Type。

不多說,我們直接開始吧!

在GCP Console 上 ,當我們點進去 Load Balancing 的頁面時,可以看到主要分為三大類:

  1. HTTP / HTTPS Load Balancing
  2. TCP Load Balancing
  3. UDP Load Balancing
Figure 01. Create a load balancer

一、從流量類型來分的話,我們可以依據以下三種方式來分:

  • 如果是 HTTP 和 HTTPS 流量,請使用:
    • External HTTP(S) Load Balancing
    • Internal HTTP(S) Load Balancing
  • 如果是 TCP 流量,請使用:
    • SSL Proxy Load Balancing
    • TCP Proxy Load Balancing
    • (TCP) Network Load Balancing
    • Internal TCP Load Balancing
  • 如果是 UDP 流量,請使用:
    • (UDP) Network Load Balancing
    • Internal UDP Load Balancing

二、從 Global 或是 Regional 來分:

Global load balancing:

若是Load Balancer 的後面的Services/Application 是分佈在多個地區 (Region) ,外部使用者需要訪問相同的應用和內容之前提下,並且希望透過單個 Anycast IP 來進行存取,這時候我們應該選用Global Load Balancing。Global Load Balancing 同時也可以提供 IPv6 的 IP。

Regional load balancing

若是Load Balancer 的後面的Services/Application 是位於同一個地區例如 Compute Engine 都開在台灣 asia-east1,並且只需要 IPv4 的IP,這時候我們應該選用 Regional load balancing。

三、從External 或是 Internal 來分:

External load balancing:

External load balancers 分配來自 Internet 到你的Google Cloud VPC 的流量,也就是說只要有需要對應到Internet的都可以稱為External load balancers 。

*註: External global load balancing 需要使用 Premium Tier。External regional load balancing 可以使用Standard Tier

目前External Load balancing有這五種:

  • External HTTP(S) Load Balancing
  • SSL Proxy Load Balancing
  • TCP Proxy Load Balancing
  • TCP Network Load Balancing
  • UDP Network Load Balancing

Internal load balancing:

Internal load balancers 分配流量在Google Cloud 內,例如VM 至VM 之間的Traffic。

目前Internal Load balancing有這三種:

  • Internal HTTP(S) Load Balancing
  • Internal TCP Load Balancing
  • Internal UDP Load Balancing
Internal or externalRegional or globalNetwork tiersProxy or pass-throughTraffic typeLoad balancer type
InternalRegionalPremium onlyPass-throughTCP or UDPInternal TCP/UDP
InternalRegionalPremium onlyProxyHTTP or HTTPSInternal HTTP(S)
ExternalRegionalPremium or StandardPass-throughTCP or UDPTCP/UDP Network
ExternalGlobal in Premium Tier
Effectively regional1 in Standard Tier
Premium or StandardProxyTCPTCP Proxy
ExternalGlobal in Premium Tier
Effectively regional1 in Standard Tier
Premium or StandardProxySSLSSL Proxy
ExternalGlobal in Premium Tier
Effectively regional in Standard Tier
Premium or StandardProxyHTTP or HTTPSExternal HTTP(S)
Figure 02. Load Balancer 分類對照表

Google Cloud 的官網也很貼心的製作了一個Flow Chart 來協助各位使用者做一些判斷,其實可以看到,主要就是分成兩個部分 External or Internal,先判斷出是否會接收到來自Internet的流量,接著再根據流量類型 Traffic type來進行分類,若是HTTP/HTTPS 以Port 80, 443, 8080的話,那就是直接選擇 HTTP(S) Load Balancer。除此之外,都是TCP or UDP Traffic。

TCP Traffic的部分則是分為是否有SSL Offload的,也就是如果有需要掛SSL憑證的,若有那也很簡單,直接使用SSL Proxy。其餘的則是TCP Proxy or Network TCP LB。

若有Global LB 的需求,則是TCP Proxy,若無則是在看是否有需要Preserve Client IPs ,也就是保留Original Client IP ,若需要保留則必須使用Network TCP LB。(TCP Proxy 因為是Proxy的關係,是無法直接保留Original Client IP的哦!)

UDP Traffic的部分則是相對單純,直接使用Network UDP LB。

右半邊Internal的部分也是相對容易的選擇,直接看是TCP or UDP or HTTP/HTTPS。

Figure 03. Flow chart from Google Cloud 官網

最後,作者這邊製作了一個Summary的Table,歡迎各位取用。

Figure 04. Load Balancer Type

以上便是針對 Google Cloud Load Balancin 的一些分類的方法說明,希望可以幫助到第一次接觸 GCP 或是對 GCP Load Balancer 不熟的讀者,一些釐清概念的方向。

Solution Architect

Cloud Ace 解決方案架構師,負責協助各大企業上雲