應用程式、網路與閘道負載平衡之間有何差異?


應用程式、網路與閘道負載平衡之間有何差異?

Application Load Balancer (ALB)、Network Load Balancer (NLB) 和 Gateway Load Balancer (GLB) 是雲端上使用的三種負載平衡器類型。負載平衡是一種將網路流量平均分配到支援應用程式的資源集區中的過程。現代應用程式可同時處理數百萬使用者。這些高流量需要許多具有重複資料的資源伺服器。如果要重新導向應用程式流量,ALB 會檢查請求內容,例如 HTTP 標頭或 SSL 工作階段 ID。NLB 會檢查 IP 地址和其他網路資訊,以最佳方式重新引導流量。GLB 可作為透明網路閘道(所有流量的單一進出點),並在根據需求擴展虛擬設備的同時分配流量。

閱讀有關負載平衡內容

運作方式:ALB 與NLB 與GLB

ALB、NLB 和 GLB 都提供不同的功能。因此,這三者工作方式略有不同,並包括不同的元件。 

Application Load Balancer 如何運作

ALB 將傳入流量分配到如 EC2 執行個體的多個目標。例如,電子商務應用程式具有產品目錄、購物車和結帳功能。ALB 會將瀏覽產品的請求傳送至包含映像和視訊,但不需要維護開放連線的伺服器。相比之下,其將購物車請求傳送到可以維持許多客戶端連線並長時間保存購物車資料的伺服器。

ALB 具有檢查來自客戶端連線要求的接聽程式元件。您可以定義接聽程式的規則,以決定負載平衡器如何將請求路由到已註冊目標。目標群組將已註冊目標排序為群組。您可以定義規則,將常見流量路由至整個群組。例如,您可以為一般請求建立目標群組,並為應用程式的微型服務請求建立其他目標群組。

下圖顯示 ALB 的運作方式。

Network Load Balancer 的運作方式

NLB 會根據網路條件分配流量。例如,如果您有數個具有重複資料的資料庫伺服器,NLB 則會根據預定的伺服器 IP 地址或可用的伺服器來路由流量。

NLB 會監控其註冊目標的健康狀況,並僅將流量路由到健康的目標。負載平衡器收到連線請求後,會根據預設規則從目標群組中選取目標。其會試著開啟 TCP 連線,連到接聽程式組態中指定的連接埠上選取的目標 。在連線的使用週期內,每個個別 TCP 連線都會路由到單一目標。同樣地,您也可以在整個生命週期中維持將 UDP 流程路由到單一目標。 

Gateway Load Balancer 的運作方式

使用 GLB,您可以部署、管理和擴展虛擬設備,例如入侵偵測和預防、防火牆和深度封包檢測系統。其為所有設備流量建立單一進出點,並根據需求擴展虛擬設備。您也可以在各虛擬私有雲端 (VPC) 邊界間用其交換流量。 

在 GLB 中,您可以使用路由表建立規則。根據您設定的規則,其會將流量轉送至不同的目標群組。GLB 接收 IP 封包並將流量轉送到特定目標群組。

主要差異:ALB 與NLB 與GLB

ALB、NLB 和 GLB 在不同的網路通訊層級上運作。應用程式負載平衡器在 OSI 第 7 層上運作,進行應用程式層級的流量操作和路由。NLB 在第 4 層上運作,根據連接埠和 IP 地址進行網路層級的流量管理。GLB 可在第 3 層和第 7 層間跨層運作,在網路層級上提供平衡和路由服務以及閘道功能。

閱讀有關 OSI 模型內容

以下是 ALB、NLB 和 GLB 之間的其他主要差異。

目標類型

目標類型是這些負載平衡器路由流量的端點。ALB 可與 IP 地址、執行個體和 AWS Lambda 目標類型配合使用。NLB 可與數個 IP 和執行個體配合使用,也可以將流量路由到 ALB,滿足更複雜的請求。GLB 可與數個 IP 和執行個體目標類型一起使用。

閱讀有關雲端運算中的執行個體內容

代理行為

負載平衡器接收客戶端請求時所採取的動作取決於以下任一者:

  • 如果負載平衡器作為代理,然後再終止客戶端的連線
  • 如果在不結束流程的情況下,轉送請求

終止流程可讓負載平衡器執行其他流量管理功能,例如 SSL 終止、工作階段持久性和以內容為基礎的路由。 

ALB 會終止客戶端連線,然後建立新連線作為代理。NLB 也會終止客戶端連線,並代表客戶端建立新連線。但是,GLB 不會作為代理或終止連線,其會直接轉送流量。

通訊協定

這些負載平衡器支援不同的通訊協定來處理特定類型的流量並執行進階功能。針對網頁式流量,ALB 支援 HTTP、HTTPS 和 gRPC 等通訊協定。NLB 支援 TCP、UDP 和 TLS 通訊協定,這些通訊協定涵蓋網路層級的流量分配。最後,GLB 涵蓋以 IP 為基礎的路由,處理任何以 IP 為基礎的通訊協定。 

演算法

這些負載平衡器使用不同類型的演算法,將流量平均分配到其目標。ALB 的預設會使用輪循演算法,逐一路由流量。但是,NLB 使用流量雜湊演算法,才能以預定的方式將流量路由到特定目標。GLB 透過查詢路由表來決定路由流量的目標位置。 

使用時機:ALB 與NLB 與GLB

在您需要靈活的應用程式層級流量管理和路由時,ALB 是個不錯的選擇。其最適合用於微型服務、容器化環境和 Web 應用程式。其功能 (例如 SSL 終止、工作階段持久性和以內容為基礎的路由) 能夠在複雜的路由情況下提供協助。 

NLB 最適合高效能、低延遲和可擴展的網路層級平衡。應用程式在傳輸層上分配流量會使用 NLB,特別是考量到其可靠性。遊戲系統、媒體串流服務和主要物聯網系統都使用 NLB。 

在網路閘道層級平衡時,GLB 為最理想的選擇。例如,如果要管理雲端和內部部署環境之間或跨不同區域間的流量,GLB 會很有效。由於其結合了 OSI 第 3 和第 4 層平衡,因此可以在不同區域和網絡之間路由流量。由於其支援以 IP 為基礎的路由,可以在虛擬閘道間分配流量,因此會有高度的可擴展性和可用性。

差異摘要:ALB 與NLB 與GLB

 

Application Load Balancer (ALB)

Network Load Balancer (NLB)

Gateway Load Balancer (GLB)

OSI 層

適用於第 7 層 (應用程式層)。

適用於第 4 層 (傳輸層)。

適用於網路層、第 3 層和第 7 層。

目標類型

適用於 IP、執行個體和 lambda 目標類型。

適用於 IP、執行個體和 ALB 目標類型。

適用於 IP 和執行個體目標類型。

代理行為

結束連線。

結束連線。

不會終止流程。

通訊協定

支援 HTTP、HTTPS 和 gRPC 通訊協定。

支援 TCP、UDP 和 TLS 通訊協定。

支援以 IP 為基礎的路由。 

演算法

輪循。

流量雜湊。

路由表查詢。

AWS 如何協助滿足負載平衡需求?

Elastic Load Balancing (ELB) 是一項完全受管的負載平衡服務。可自動將傳入的應用程式流量分配到 Amazon Web Services (AWS) 和內部部署資源的多個目標和虛擬設備。此外,該服務也支援跨 AWS 區域的跨區域負載平衡。可根據要求,使用 ELB 來設置 ALB、NLB 或 GLB。 

ALB 屬於 ELB 的一種元件。ELB 還支援 NLB、GLB 和 Classic Load Balancer。這些負載平衡器是用戶接觸點,並有助於通過安全管理來改善應用程式的可擴展性。可以選擇一或多個負載平衡器,並在雲端環境設定 ELB 時進行配置。

立即建立帳戶,開始在 AWS 上使用負載平衡。

使用 AWS 的後續步驟