AWS Load Balancer負載平衡器全解

在現代雲端環境中,負載平衡器是確保應用高可用性和效能的關鍵元件。 AWS 負載平衡器(Elastic Load Balancing, ELB)可接收來自用戶端的應用程式流量,並將其智慧分發至多個註冊目標,例如跨多個可用區的EC2 執行個體、容器或IP 位址。透過這種方式,ELB 不僅平衡流量,還能提升應用的容錯能力與可用性。

 

AWS 負載平衡器概述

AWS 負載平衡器為用戶端提供單一存取點,智慧路由要求至運作正常的目標實例,並自動偵測執行異常的實例,一旦恢復,流量會重新路由。它能動態適應流量波動,無需人工幹預,同時支援跨可用區和跨區域分發,以實現高可用性。

負載平衡器的核心功能包括:

  • 自動將流量指派至多個目標實例
  • 健康檢查目標實例並動態調整路由
  • 支援SSL/TLS 解密與使用者身份驗證
  • 提供彈性伸縮能力與容錯能力
  • 可與AWS 憑證管理器、Auto Scaling、CloudWatch 等服務集成

 

AWS 負載平衡器類型

AWS 提供四種負載平衡器類型:

  1. 經典負載平衡器(Classic Load Balancer, CLB)
  • 在請求層級和連線層級分發流量,主要用於EC2-Classic 網路。
  • 功能有限,不支援基於路徑或基於主機的路由。
  • 僅建議舊版EC2-Classic 用戶使用,新用戶推薦ALB 或NLB。
  1. 應用程式負載平衡器(Application Load Balancer, ALB)
  • 第7 層負載平衡器,依據HTTP/HTTPS 封包內容進行路由。
  • 支援基於路徑和基於主機的路由,以及Lambda 函數處理請求。
  • 原生支援WebSocket 和HTTP/2 協議,適合微服務和容器化架構。
  • 可註冊IP 位址或多個連接埠的目標,以實現靈活的流量分發。
  1. 網路負載平衡器(Network Load Balancer, NLB)
  • 第4 層負載平衡器,適合高效能和極低延遲需求。
  • 提供靜態IP,支援TLS 終止,處理百萬級請求/秒。
  • 適合管理不穩定或突發流量,避免DNS 快取問題。
  1. 網關負載平衡器(Gateway Load Balancer, GLB)
  • 主要用於第三方虛擬網路設備的部署,流量不會在多個目標間自動分配。
  • 功能較為專業,對多數使用者而言應用場景有限。

 

AWS 負載平衡器工作原理

AWS 負載平衡器透過**偵聽器(Listener)**檢查用戶端請求,根據設定的連接埠和協定將請求路由到註冊的執行個體。運行狀況檢查保證僅向健康實例發送流量。預設情況下,負載平衡器會在已啟用的可用區之間均勻分配流量,並建議每個可用區執行個體數量大致相等以提高容錯能力。

  • 內部負載平衡器(Internal ELB):僅在VPC 內部可訪問,適合私有子網路應用。
  • 外部負載平衡器(Internet-facing ELB):節點擁有公有IP,可被網際網路存取。

透過與 Auto Scaling(ASG) 配合,ELB 可以自動識別故障實例並淘汰,同時啟動新實例,保持應用程式高可用。 ASG 會驗證實例健康狀況,並與ELB 協同確保流量僅路由至正常運作的實例。

 

進階功能與配置

  • 路徑路由(Path-based routing):ALB 可依URL 路徑將流量導向至不同後端服務。
  • 基於主機的路由(Host-based routing):同一ALB 支援多個網域的請求分發。
  • 反向代理:ALB 可作為反向代理,實現請求分發與負載平衡,但僅支援靜態目標。
  • 多埠負載分配:支援單一實例多個連接埠註冊,提高容器化應用效能。
  • 跨區域負載平衡:可在不同AWS 區域間均勻分配流量,提高全球可用性。
  • 安全集成:支援SSL/TLS 加密、AWS WAF 防護與IAM 認證。

配置負載平衡器時,需要:

  1. 選擇負載平衡器類型(ALB、NLB 或GLB)
  2. 設定可用區與子網
  3. 配置安全性群組與連接埠
  4. 建立目標群組並註冊實例
  5. 設定健康檢查策略
  6. 測試並上線

 

AWS 負載平衡器局限性

雖然ELB 在高可用性和彈性方面表現優異,但仍存在一些限制:

  • 延遲:尤其在後端實例CPU 或記憶體使用率高、網路配置不當時,可能出現請求延遲。
  • 目標組限制:NLB 對目標組內實例數量有配額限制,可透過垂直擴展或多個NLB 解決,但無法完全消除。
  • 連線穩定性:單一NLB 在處理大量已建立連線時,偶爾會出現短暫斷開。
  • 功能限制:傳統ELB 缺乏即時應用分析、跨雲端流量管理及複雜負載平衡策略。

 

實踐建議與優化策略

在實際應用中,選擇合適的AWS 負載平衡器類型至關重要。對於微服務架構或多服務Web 應用,ALB 提供了基於路徑和主機名的靈活路由,使不同服務可共享相同負載平衡器,從而降低成本並簡化管理。同時,ALB 原生支援WebSocket 和HTTP/2 協議,便於建立即時互動應用或多請求復用場景。

對於需要處理高同時和突發流量的應用,如大型電商促銷、金融交易或線上遊戲,NLB 更為適用。其靜態IP 和低延遲特性可確保關鍵業務的穩定性,並相容於現有防火牆策略。結合TLS 終止功能,NLB 還能卸載伺服器加密壓力,提升整體效能。

此外,結合 Auto Scaling 使用負載平衡器,可以根據流量波動動態調整執行個體數量,實現真正的彈性伸縮。例如,在流量高峰期自動啟動更多實例分擔壓力,低峰值回收實例降低成本,同時負載平衡器自動剔除異常實例,保障應用持續可用。

為了進一步優化效能,使用者可以啟用跨區域負載平衡或多可用區部署,實現全球流量平衡和災備能力。配合CloudWatch 監控指標,能夠即時追蹤請求延遲、目標實例健康狀況及流量分佈,幫助開發者及時調整策略。

整體而言,AWS 負載平衡器不僅提升了應用的可用性和可靠性,也提供了靈活的路由和安全功能。透過合理選擇類型、配置目標群組和啟用擴充策略,企業能夠在雲端環境中建立高效能、彈性和可維護的應用架構。

 

進階替代方案

在雲端上進階負載平衡器平台中,提供比AWS 原生ELB 更豐富的企業級功能:

  • 進階HTTP 內容交換與持久化功能
  • 可自訂健康監控
  • 跨多雲DNS 與全域負載平衡(GSLB)
  • 按需自動擴展與即時流量分析
  • 更強大的安全策略與應用策略支持
  • 這些功能不僅滿足複雜的企業級需求,還能彌補ALB、NLB 在即時分析、跨雲端管理和自動化方面的不足。

更多探索

Tell me what you need