NLB

NLB 是什麼?

NLB 全稱爲 Network Load Balancer,是在開放系統互連(OSI)模型的第四層運行。它每秒可以處理數百萬個請求。在負載均衡器收到連接請求後,它會從默認規則的目標組中選擇一個目標,嘗試在偵聽器配置中指定的端口上打開一個到該選定目標的 TCP 連接。

當您爲負載均衡器啓用可用區時,Network Load Balancing 會在該可用區中創建一個負載均衡器節點。默認情況下,每個負載均衡器節點僅在其可用區中的已註冊目標之間分配流量。如果您啓用了跨區域負載均衡,則每個負載均衡器節點會在所有啓用的可用區中的已註冊目標之間分配流量。

有關更多信息,請參閱:

https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#cross-zone-load-balancing

如果爲負載均衡器啓用多個可用區,並確保每個目標組在每個啓用的可用區中至少有一個目標,那麼這將提高應用程序的容錯能力。例如,如果一個或多個目標組在可用區中沒有運行狀況良好的目標,我們會從 DNS 中刪除相應子網的 IP 地址,但其他可用區中的負載均衡器節點仍可用於路由流量。如果一個客戶端不遵守生存時間(TTL)而將請求發送到已從 DNS 刪除的 IP 地址,則請求會失敗。

負載均衡器節點基於協議、源 IP 地址、源端口、目標 IP 地址、目標端口和 TCP 序列號,使用流式哈希算法選擇目標。來自客戶端的 TCP 連接具有不同的源端口和序列號,可以路由到不同的目標。每個單獨的 TCP 連接在連接的有效期內路由到單個目標。

Network Load Balancing 爲您啓用的每個可用區創建一個網絡接口。可用區內的每個負載均衡器節點使用該網絡接口來獲取一個靜態 IP 地址。在您創建面向 Internet 的負載均衡器時,可以選擇將一個彈性 IP 地址與每個子網關聯。

您可以配置一個目標組,以便通過實例 ID 或 IP 地址註冊目標。如果您使用實例 ID 指定目標,則客戶端的源 IP 地址將保留並提供給您的應用程序。如果您用 IP 地址指定目標,則源 IP 地址是負載均衡器節點的私有 IP 地址。

您可以根據需求變化在負載均衡器中添加和刪除目標,而不會中斷應用程序的整體請求流。Network Load Balancing 根據傳輸到應用程序的流量隨時間的變化對負載均衡器進行擴展。Network Load Balancing 能夠自動擴展來處理絕大部分工作負載。

 

NLB 的特色

  • 高度可擴展且低延遲

NLB 在微秒級別提供非常低的延遲,這對於像 Ad Tech 和 IoT 等對延遲敏感的行業客戶極爲重要。此外,它還可以按需擴展以負載平衡數百萬請求/秒。

  • 高可用性

NLB 提供高度可用的負載均衡器服務,這是大量客戶在過去使用 ELB 服務時期望獲得並且也一直能獲得的保證。

  • Route-53 的 DNS 故障轉移

如果您的應用程序沒有響應,Route 53 將從服務中刪除不可用的 NLB 端點,並將流量引導到另一個區域中的備用負載均衡器。同樣,如果沒有向負載均衡器註冊健康的 EC2 實例,或者給定區域中的負載均衡器節點不健康,則 Route-53 會將流量定向到其他可用區中的負載均衡器節點。NLB 可以和 Route 53 結合,無論是該區域的 NLB 下面沒有健康的主機,還是該區域的 NLB 發生故障,Route53 都會負責將流量導向其他的 AZ。(Route 53 目前僅由其他全球區域提供服務)

  • 同可用區內分發流量

客戶端的流量到達 NLB 在某個可用區提供的 IP 後,NLB 會向相同可用區內的後端實例分發流量,通過避免跨可用區的流量分發能夠獲得更好的延遲性能。注意:默認情況下 NLB 只會轉發給當前添加 AZ 的後端實例,如果需要跨 AZ 轉發,需要打開“ Cross-Zone Load Balancing ”的功能。

  • 保留客戶端源IP地址

當後端應用程序或服務收到流量時,NLB 會保留客戶端源 IP(無需任何自定義標頭)。然後,客戶可以使用它進行進一步處理。 NLB 會保持客戶端的源 IP,不會對通過的數據包做處理。

  • 固定IP支持

NLB 允許客戶爲負載均衡器分配每個可用區(子網)的彈性 IP,爲其提供固定的 IP 功能。如此設計使得 NLB 能夠被納入企業現有的防火牆安全策略中,並且能夠避免 DNS 緩存帶來的問題。

  • 內置運行狀況檢查

NLB 自動檢測失敗的後端實例,並僅路由到健康實例。

  • 與 AWS 服務集成

NLB 可輕鬆與其他 AWS 服務集成,如 Amazon Elastic Container Service(ECS),AWS CloudFormation 和 AWS Elastic BeanStalk。

  • 支持 TCP 長連接

NLB 支持 TCP 長連接,即使是在 NLB 的擴展期間或更新期間也不會斷開資源連接,從而能更好地支持包括 IoT、遊戲、消息應用等在內的業務場景。

  • 支持資源組

NLB 支持與 Application Load Balancer 相同的資源,其中包括 Listeners、Targets、TargetGroups 和規則。與 Application Load Balancer 不同,規則不會基於內容。NLB 和 ALB 一樣支持 Target Group 的配置方式。

  • 兼容所有現在 ELB 的 API

我們將使用與 Application Load Balancer 相同的底層 API。您可以通過調用 elbv2 create-load-balancer API,使用 AWS CLI 創建網絡負載均衡器。

從上一代負載均衡器服務(Classic Load Balancer)遷移到 NLB 的好處

 

既然 NLB 有這麼多優勢和特點,那麼您可以開始考慮從現有的 AWS 架構中的CLB 遷移到 NLB 了,因爲 NLB 具有如下好處:

• 可以處理急劇波動的工作負載,並可以擴展到每秒處理數百萬個請求。

• 支持將靜態 IP 地址用於負載均衡器,還可以針對爲負載均衡器啓用的每個子網分配一個彈性 IP 地址。

• 支持通過 IP 地址註冊目標,包括位於負載均衡器的 VPC 之外的目標。

• 支持將請求路由到單個 EC2 實例上的多個應用程序。可以使用多個端口向同一個目標組註冊每個實例或 IP 地址。

 支持容器化的應用程序。計劃任務時,Amazon Elastic Container Service(Amazon ECS)可以選擇一個未使用的端口,並可以使用此端口向目標組註冊該任務。這樣可以高效地使用您的羣集。

• 支持單獨監控每個服務的運行狀況,因爲運行狀況檢查是在目標組級別定義的,而且許多 Amazon CloudWatch 指標也是在目標組級別報告的。將目標組掛載到 Auto Scaling 組的功能使您能夠根據需求動態擴展每個服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章