什麼是 Network Load Balancer? - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

什麼是 Network Load Balancer?

Elastic Load Balancing 會自動將傳入流量分配到一或多個可用區域中的多個目標,例如 EC2 執行個體、容器和 IP 地址。其會監控已註冊目標的運作狀態,並且僅將流量路由至運作狀態良好的目標。當傳入流量隨著時間發生變化,Elastic Load Balancing 會擴展您的負載平衡器。他可以自動擴展以因應絕大多數的工作負載。

Elastic Load Balancing 支援下列負載平衡器:Application Load Balancer、Network Load Balancer、Gateway Load Balancer 和 Classic Load Balancer。您可以選取最符合您需要的負載平衡器類型。本指南探討 Network Load Balancer。如需其他負載平衡器的詳細資訊,請參閱《Application Load Balancer 使用者指南》、《Gateway Load Balancer 使用者指南》與《Classic Load Balancer 使用者指南》。

Network Load Balancer 元件

負載平衡器做為用戶端的單一聯絡點。負載平衡器會將傳入流量分散到多個目標,例如 Amazon EC2 執行個體。這會提高您應用程式的可用性。您要為負載平衡器添加一個或多個接聽程式。

接聽程式會使用您所設定的通訊協定和連接埠,檢查來自用戶端的連線請求,並將請求轉送至目標群組。

目標群組會利用通訊協定以及您指定的連接埠號碼,將請求路由至一或多個已登錄目標,例如 EC2 執行個體。Network Load Balancer 目標群組支援的通訊協定是 TCP、UDP、TCP_UDP 與 TLS。您可以向多個目標群組註冊任一目標。您可以針對每個目標群組設定運作狀態檢查。凡已註冊至負載平衡器的接聽程式規則中指定之目標群組的所有目標,系統將對其執行運作狀態檢查。

如需詳細資訊,請參閱下列 文件:

Network Load Balancer 概觀

Network Load Balancer 是在開放系統互連 (OSI) 模型的第四層運作。每秒可以處理數百萬個請求。負載平衡器接收到連線請求後,將依預設規則從目標群組中選取一個目標。負載平衡器會嘗試開啟接聽程式設定中指定之連接埠上所選目標的 TCP 連線。

當您為負載平衡器啟用可用區域時,Elastic Load Balancing 會在該可用區域內建立負載平衡器節點。預設情況下,每個負載平衡器節點只會將流量分布到其可用區域中的登錄目標。若您啟用跨區域負載平衡功能,每個負載平衡器節點會將流量分布至所有可用區域內已登錄的目標。如需詳細資訊,請參閱 可用區域

如您為負載平衡器啟用多個可用區域,並確保每個目標群組在各個已啟用的可用區域內皆至少有一個目標,便能提高應用程式的容錯能力。例如,若一個或多個目標群組在某個可用區域內沒有運作狀態良好的目標,我們將從 DNS 移除相應子網路的 IP 地址,但其他可用區域內的負載平衡器節點仍然可供用於路由流量。如果用戶端未遵守 time-to-live (TTL),並在將要求從 DNS 移除後傳送至 IP 位址,則要求會失敗。

若是 TCP 流量,負載平衡器將根據通訊協定、來源 IP 地址、來源連接埠、目的地 IP 地址、目的地連接埠和 TCP 序號,使用流程雜湊演算法選取目標。來自用戶端的 TCP 連線具有不同的來源連接埠和序號,可以路由至不同的目標。每一單獨的 TCP 連線在該連線的有效期內都將路由至單個目標。

若是 UDP 流量,負載平衡器將根據通訊協定、來源 IP 地址、來源連接埠、目的地 IP 地址和目的地連接埠,使用流程雜湊演算法選取目標。UDP 流程有相同的來源和目的地,所以能夠在其生命期間一致地路由到單一目標。不同 UDP 流程有不同的來源 IP 地址和連接埠,因此可以將他們路由到不同的目標。

Elastic Load Balancing 會為您啟用的每個可用區域建立網路介面。可用區域中的每個負載平衡器節點皆使用此網路界面來取得靜態 IP 地址。當您建立面向網際網路的負載平衡器時,您可以選擇連結每個子網路的一組彈性 IP 地址。

在建立目標群組時,您會指定其目標類型,這會決定您登錄目標的方式。例如,您可以登錄執行個體 ID、IP 地址或 Application Load Balancer。目標類型也會影響是否保留用戶端 IP 地址。如需詳細資訊,請參閱 用戶端 IP 保留

您可隨需求變更,為負載平衡器新增及移除目標,而不會中斷應用程式整體的請求流程。當應用程式的流量隨著時間發生變化,Elastic Load Balancing 會擴展您的負載平衡器。Elastic Load Balancing 能夠自動擴展以因應絕大多數的工作負載。

您可以設定運作狀態檢查,用於監控已註冊目標的運作狀態,使負載平衡器只能傳送請求至運作狀態良好的目標。

如需詳細資訊,請參閱 Elastic Load Balancing 使用者指南中的 Elastic Load Balancing的運作方式

從 Classic Load Balancer 遷移的好處

使用 Network Load Balancer (而非 Classic Load Balancer) 具有下列優點:

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

  • 支援將靜態 IP 地址用於負載平衡器。您還能為負載平衡器啟用的每個子網路指派一個彈性 IP 地址。

  • 支援透過 IP 地址註冊目標,包括位於負載平衡器的 VPC 外部的目標。

  • 支援將請求路由至單一 EC2 執行個體上的多個應用程式。您可使用多個連接埠向同一目標群組註冊各執行個體或 IP 地址。

  • 支援容器化的應用程式。Amazon Elastic Container Service (Amazon ECS) 可在排程任務時選取未使用的連接埠,並使用此連接埠向目標群組註冊該任務。這使您得以有效利用您的叢集。

  • Support 獨立監控每個服務的運作狀態,因為運作狀態檢查是在目標群組層級定義的,並在目標群組層級報告許多 Amazon CloudWatch 指標。將目標群組連接到 Auto Scaling 群組令您能夠隨需動態擴展各項服務。

如需各種負載平衡器類型支援的功能詳細資訊,請參閱 Elastic Load Balancing 產品比較

如何開始

若要建立 Network Load Balancer,請嘗試下列其中一個教學課程:

如需常見負載平衡器組態的示範,請參閱 Elastic Load Balancing 示範

定價

如需詳細資訊,請參閱《Network Load Balancer 定價》。