AWS 目前有多種 Load Balancing

  • Application Load Balancer
  • Network Load Balancer
  • Classic Load Balancer

對於 Classic Load Balancer ,除非還有 ec2 運行在 ec2-classic 網路的場景,要不然已經不建議使用了,建議使用 Application Load Balancer 、 Network Load Balancer 取代。


功能比較

功能ALBNLB
協議HTTP、HTTPS、gRPCTCP、UDP
靜態IP、彈性IPXV
重新導向VX
固定回應VX
HTTP 路由VX

目前看起來,如果發現應用程式需要靜態 IP,建議使用 Network Load Balancer ,他是唯一有提供的。至於在 Layer 7 應用層的功能,如重新導向固定回應、依照不同的 Rule ,基於路徑主機分配到不同的 target Group,則只能使用 Application Load Balancer。


Load Balancer 架構

Component

  • Listener:通常用來定義 forwards 請求的規則。

定義 Load Balancer 要監聽的 Protocol、port。

Listener 內定義 Routing rules,負責要怎麼對應到 target Group。


  • Health Check:

用來確認 ec2 還活著,這樣 Load Balancer 才知道可不可以送請求過去。


  • Target group: 統一管理註冊的 instance

Target group 會使用 Listener 指定的 rule ,將請求路由至一個或多個已註冊的 instance。

每個 Target group 內設定 Health Check ,會對 Target group 內的所有目標 instances 檢查運作狀態。


  • Auto Scaling Group

當完成 Launch template 設定後,就可以確定生出來的機器的型號,和裡面的一些軟體。再來設定擴展的 policy ,和設定擴展時使用的 AZ 與綁定的 ELB 與 Healthy check。

Auto Scaling Group 會被關連到 Target group,使得 Auto Scaling 時,可以在 target group 自動擴展和管理 instances。