技術部落格

集結國內外精選文章,掌握最新雲端技術新知與應用

首頁 / 基礎架構 / 拆解 GCP 和 AWS 雲端負載平衡功能和比較

拆解 GCP 和 AWS 雲端負載平衡功能和比較

Load Balancing 功能大比拼 – GCP vs. AWS

本文整理了 GCP Cloud Load Balancing  和 AWS Elastic Load Balancing  的服務,我們將從以下三個功能面相去做比較:
• Global or Regional
• Internal or external
• Protocol Type

Overview GCP Load Balancing

GCP Cloud Load Balancing (以下簡稱 GCP LB) 種類很多,依照功能三個面向排列組合的類型如下:
• Global external load balancing (對外), 有三種 Protocols:
     • HTTP(S) load balancing
     • SSL Proxy load balancing
     • TCP Proxy load balancing
• Regional external load balancing (對外)
     • Network load balancing
• Regional internal load balancing (對內)
     • Internal load balancing
要建立 LB 的時候,會有三種選項,如下圖: data-lazy-src=

HTTP(S) Load Balancing

下圖是 HTTP(S) Load Balancing 的架構組成:

 data-lazy-src=

如果是 Cross-Region,那麼導流、以及 Backend Service 的概念如下: data-lazy-src=

TCP 和 SSL Proxy Load Balancing 有以下共同特性:
   • Scope: Global, 把流量導向全球各個 Region
• Proxy: Connection 經過 Load Balancing 之後,複製新的 Connection,轉向 Backend Instance。
       • Backend Instance 看不到 Client IP Address
       • 需要 Enable 
Proxy Protocol 

要注意的 Proxy LB 跟 HTTP(S) LB 的差異:
   • SSL Proxy Load Balancing 可以處理 HTTPS,但是建議使用 HTTPS Load Balancing。
        • HTTPS Load Balancing 支援 HTTP/2、SPDY/3.1、拒絕不是 HTTP 的 Request / Response、整合 Cloud CDN … 等
        • SSL Proxy Load Balancing 則是給不是 HTTP 的協定,但需要安全加密使用 ,像是 Websockets、IMAP Over SSL
        • 更多詳細參閱 FAQ  說明

Network Load Balancing: TCP / UDP

主要特性:
• Scope: Regional
• Non-proxied:可以處理 TCP / UDP / SSL 。但是只是把 Connection pass-through 給後端
• Session Affinity:
• 目的:Client 的連線持續在固定的 Backend Instance
• 實作是利用 Source IP / Port, Destination IP / Port 做 Hash。
• 預設是 None.

Overview AWS Elastic Load Balancing

AWS Elastic Load Balancing  現在有三大類,整理如下: data-lazy-src=

• 歷史最悠久,簡單容易使用,但是效能最差,需要開 Support Ticket pre-warm,內容要回答一堆問題,新手很難上手。
• 無法處理瞬間巨量:因為需要 pre-warm 所以會有 Thoughtput 的問題,如果有密集度很高的 RPS 衝進來,會無法處理,而且這問題不容易發現。

實際上我就遇過因為 ELB Scale Out 太慢,造成系統效能問題。架構效能大概是這樣:

External ELB -> App1 -> Internal ELB -> App2

發現 ELB 無法乘載的時候,他會開始 Scale-Out,但是在完成之前,會出現以下現象:
• External ELB 瞬間會出現少量 5XX
• Internal ELB 瞬間出現大量 Surge Queue
原因是 ELB Scale-Out 太慢,瞬間 RPS 密度太高,造成 Throughput 不夠用,後來解法就是常態性的 pre-warm,造成很多額外的問題。

Application Load Balancing

• Layer 7
• 支援 URL Routing-base
• 支援 
Multiple TLS w/ SNI 

Network Load Balancing

• Layer 4, TCP only
• 支援 URL Routing-base
• 支援固定 IP
• 支援 RPS 到百萬等級 (終於)

Compare GCP Load Balancing with AWS

整理兩者個比較如下:

 data-lazy-src=

• Service Using Single IP in Global
• Study Notes – AWS ELB (Elastic Load Balancing)
• How Elastic Load Balancing (ELB) Implement?

參考資料

• Google Cloud Load Balancing
• AWS Elastic Load Balancing
• Google Cloud Platform for AWS Professionals
• Globally scalable microservices with Container Engine & Cloud Load Balancing 

Public Cloud Comparison

• Google Cloud vs AWS: a comparison
• A Side-by-Side Comparison of AWS, Google Cloud and Azure
• Public Cloud Services Comparison

(本文來自合作部落客 Rick:Complete Think,GCP 專門家授權轉載。)



分享本文:
FacebookLineTwitter
回到頂端