GCP – Cloud Load Balancing 之分類與選擇

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 Balancing 是什麼,Google Cloud 6大 Load Balancer 原理及差異的人可先閱讀《什麼是負載平衡?原理、6大 GCP Load Balancer 完整介紹》。已經具備基本知識的話就直接看下去吧!

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

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

一、從流量類型選擇 Load Balancing

  • 如果是 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 選擇 Load Balancing

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 選擇 Load Balancing

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 官網

四、Google Cloud Load Balancing 分類統整

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

Figure 04. Load Balancer Type

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

延伸閱讀:

GCP HTTP(S) Load Balancer 負載平衡依網址分流教學
什麼是負載平衡?原理、6大 GCP Load Balancer 完整介紹
【GCP 教學】負載平衡 Load Balancer 和 Instance Group
如何透過 GCP HTTP(S) Load Balancing 來實現 HTTP Redirect HTTPS
在 GCP Load Balancer 上設定 logging 以及 monitoring 功能 – TCP Load Balancer dashboard & Email 告警設定教學

發佈留言