AWS推出了一種稱為NLB(Network Load Balancer)的新服務,NLB迎合了高性能應用的需求,擴展了ELB(Elastic Load Balancer)服務。NLB是TCP第四層的組件,設計用于處理突發流量和每秒百萬次請求。
ELB大約是在2009年推出的,用于EC2虛擬機的負載均衡。最初的負載均衡提供了HTTP/S及TCP路由、SSL卸載(SSL Offloading)、對VPC(Virtual Private Cloud)的支持以及與EC2 Security Group的集成。去年,Amazon在ELB產品家族中添加了ALB(Application Load Balancer)服務。ALB是一種第七層的負載均衡器,實現了基于路徑和主機的HTTP路由、對WebSockets的支持并且是對容器友好的。雖然經典的ELB服務和ALB都能根據需求做透明的擴展,但眾所周知的是兩者都存在著“預熱延遲”(Warm-up Delay)問題。此外,兩者都不提供靜態IP地址。新推出的NLB解決了這兩個問題。
NLB從設計上就適用于“極端性能”情況,架構中考慮了“突發性不穩定流量模式和……極低的延遲”。它提供了靜態IP地址,可以被“硬編碼到DNS記錄、用戶定制的防火墻規則等之中”。NLB為用戶提供了與ALB兼容的API、源IP地址保持、長連接、健康檢查及日志等功能。但是由于NLB是一種第四層的負載均衡器,它并不提供HTTP可感知功能,例如基于路徑或主機的路由、SSL卸載或是粘性會話(Sticky Session)。盡管關注NLB的用戶在Nacker News上表示出可接受的積極態度,但是他們對于缺失與Security Groups的集成和TLS Termination功能依然感到憂慮。
AWS力圖澄清各負載均衡器服務的適用場景,并將“經典”的ELB清晰地定義為一種次要選項。
Network Load Balancer(NLB)的理想應用場景是TCP流量的負載均衡,NLB具備在維持超低延遲的條件下每秒處理上百萬次請求的能力。NLB被優化用于在每個Availability Zone使用一個單一靜態IP地址的情況下,處理突發的和不穩定的流量模式。
Application Load Balancer(ALB)的理想應用場景是HTTP和HTTPS流量的高級負載均衡,ALB提供支持現代應用架構的高級請求路由,其中包括微服務和基于容器的應用。
Classic Load Balancer(CLB)的理想應用場景是那些構建在EC2-Classic網絡內的應用。
對于公開云服務提供商而言,負載均衡是一個“入場籌碼”。Google Cloud為其客戶提供了公開的或內部的負載均衡。聲稱具備無需“預熱”(Warm-up)的突發處理功能,所交付的功能包括支持靜態IP、HTTP/S或TCP路由、SSL卸載、用戶關聯性(User Affinity)和跨多區域路由。Microsoft也給出了用于Azure云的全面負載均衡解決方案。其中,Azure Load Balancer服務為同一Azure數據中心中的各應用實例提供了第四層路由,Application Gateway是一種可擔當反向代理的第七層路由,Traffic Manager對所有終端實現了由DNS驅動的路由。
與ALB一樣,NLB也采用“LCU”(Load Balancer Capacity Units)計費方式。單個LCU每小時的費用是0.006美元,根據用戶在創建的連接數、活躍的連接數和帶寬等維度上的最大使用情況計費。NLB在所有的商用AWS區域上可用(除了中國地區),并已經集成到AWS Cloud Formation、Amazon Elastic Container Service和EC2 Auto Scaling中。
查看英文原文: AWS Adds Scale-Friendly Network Load Balancer to its Arsenal