AWS 中的彈性負載平衡

已發表: 2022-08-10

Elastic Load Balancing 是 AWS 中應用程序的核心。 在這篇文章中了解有關 ELB、其類型和功能的所有信息。

如今,大多數組織都需要管理和提高其應用程序的可擴展性、可用性和容錯性。 AWS 為此提供了出色的解決方案,即 Elastic Load Balancing 服務。 該服務由一個負載均衡器組成,它可以跨許多計算資源(如虛擬服務器)分配工作負載。

負載均衡

負載平衡服務允許我們配置健康檢查來監控計算資源的健康狀況。 它還允許我們將加密和解密工作卸載到您的負載均衡器,以便計算資源可以專注於它們的主要工作。

彈性負載平衡 (ELB):概述

ELB 是一項服務,可在多個 EC2 實例之間自動分配傳入流量。 這通過提供負載平衡能力來分配應用程序流量,有助於在您的應用程序中實現更高的容錯級別。

彈性負載平衡
資料來源:AWS

此外,Elastic Load Balancing 可以檢測不健康的 EC2 實例,一旦發現 EC2 實例不健康,ELB 就會停止向它發送流量,直到它再次恢復健康。 客戶可以在單個或多個可用區內輕鬆啟用 Elastic Load Balancing,以獲得更一致的應用程序性能。

彈性負載平衡功能

安全

您可以在 Amazon Virtual Private Cloud (VPC) 中管理和創建與 Elastic Load Balancing 關聯的安全組,為 Application Load Balancer 和 Classic Load Balancer 提供額外的網絡和安全選項。

高可用性

彈性負載均衡器具有高可用性。 您可以將傳入應用程序的流量分配到單個可用區或多個可用區中的 EC2 實例。

高吞吐量

彈性負載均衡器旨在處理增長的流量,並且可以每秒加載和平衡數百萬個請求。 它還可以處理突然的流量高峰。

健康檢查

使用 Elastic Load Balancing,您可以檢查 EC2 實例的運行狀況,而不會冒險將流量發送到運行狀況不佳的實例。

操作監控和記錄

Amazon CloudWatch 報告應用程序和 Classic Load Balancer 指標,例如錯誤計數、錯誤類型、請求延遲、請求計數等。

刪除保護

您可以在彈性負載均衡器上啟用刪除保護,以防止它被意外刪除。

Youtube 視頻

彈性負載均衡器的組件

聽眾

您必須為負載均衡器配置一個或多個偵聽器。 這是一個檢查連接請求的過程。 它設置了一個協議和一個用於前端連接(客戶端到負載均衡器)的連接端口和一個用於後端連接(負載均衡器到後端實例)的協議。

支持的彈性負載均衡協議包括:

  • HTTPS(安全 HTTP)
  • TCP
  • SSL(安全 TCP)

負載均衡器

負載均衡器充當服務器前的“交通警察”,將客戶端請求分發到所有能夠處理這些請求的服務器上,從而最大限度地提高速度和容量利用率,並確保沒有服務器過度工作,從而導致性能下降。

負載均衡器將流量路由到活動服務器,以防一台服務器脫機。 負載均衡器在添加到服務器組時向新服務器發起請求。

目標群體

使用每個目標組將請求路由到一個或多個註冊目標。 在創建每個偵聽器規則時定義目標組和條件。 當滿足規則條件時,流量被路由到適當的目標組。

對於各種類型的請求,您可以創建單獨的目標組。 例如,為應用程序的微服務請求和通用請求創建不同的目標組。

負載均衡器的類型

應用程序負載均衡器

Application Load Balancer 使開發人員能夠設置傳入的最終用戶流量並將其引導到在 AWS 公共雲上運行的應用程序。

負載平衡在具有眾多 Web 應用程序的雲環境中至關重要。 負載均衡器通過在多個服務器之間劃分網絡流量和信息流來確保沒有單個服務器過載。 這可以提升用戶體驗、提高應用程序響應能力和可用性,並且可以防禦分佈式拒絕服務 (DDoS) 攻擊。

Youtube 視頻

近年來,對 Web 應用程序的訪問顯著增長。 但是,意外的流量增加可能會減慢在線服務並降低可用性。 Application Load Balancer 在公共雲中有效地分配網絡負載以提高穩定性和可用性。

如果有問題的應用程序到達第 7 層,Application Load Balancer 只會將流量引導到雲資源內的健康目標。WebSocket 是 Application Load Balancer 支持的另一種協議,用於增加與底層服務器的連接。

在容器或 AWS EC2 實例上運行的網站和移動應用程序從應用程序負載均衡器的使用中獲益最多。 在微服務架構中,Application Load Balancer 可以用作 EC2 實例或實現特定服務的 Docker 容器前面的內部負載均衡器。 此外,它可以在 RESTful API 應用程序之前使用。

許多 AWS 服務與應用程序負載均衡器兼容,包括:

  • AWS 自動擴展
  • 亞馬遜彈性容器服務
  • AWS CloudFormation
  • AWS 代碼部署
  • AWS 證書管理器

經典負載均衡器

來自傳入應用程序的流量使用經典負載均衡器跨多個 EC2 實例拆分到各個可用區。 經典的負載均衡器充當客戶端的唯一聯繫點。 這使您的應用程序更易於訪問。 在不影響應用程序的一般請求流的情況下,您可以根據需求的變化從經典負載均衡器中添加/刪除實例。

偵聽器使用您設置的協議和端口來監控客戶端連接請求。 然後偵聽器使用配置的協議和端口將請求傳輸到一個或多個註冊實例。 您可以通過添加一個或多個偵聽器來修改負載均衡器。

為確保負載均衡器僅將請求路由到健康的實例,您可以配置健康檢查,用於密切關注已註冊實例的狀況。

默認情況下,經典負載均衡器會在您為負載均衡器啟用的可用區之間平均分配流量。 在負載均衡器上啟用跨區域負載均衡,以在所有激活的可用區中的所有註冊實例之間分配流量。

負載均衡

經典負載均衡器的類型:

  • 面向 Internet 的傳統負載均衡器:由於其可公開解析的 DNS 域,面向 Internet 的負載均衡器可以將來自客戶端的請求路由到通過 Internet 向負載均衡器註冊的 EC2 實例。 您的負載均衡器在構建時會獲得一個公共 DNS 名稱,客戶端可以使用該名稱發出請求。 DNS 服務器將負載均衡器的 DNS 名稱轉換為負載均衡器節點的公共 IP 地址。 私有 IP 地址將每個負載平衡節點連接到後端實例。
  • 內部經典負載均衡器:內部負載均衡器的節點只有個人 IP 地址。 內部負載均衡器的 DNS 名稱可以公開解析為節點的 IP 地址。 因此,請求只能由內部負載均衡器從有權訪問負載均衡器 VPC 的客戶端路由。

網絡負載均衡器

網絡負載均衡器工作在 OSI 模型的第四層。 它每秒可以處理數百萬個請求。

負載均衡器在收到連接請求後,從目標組中選擇一個目標作為默認規則。 它嘗試在偵聽器設置中指示的端口上建立到選定目標的 TCP 連接。

Youtube 視頻

為了提高應用程序的容錯能力,您可以啟用多個可用區,這是 AWS 中為網絡負載均衡器提供的一項付費服務。 如果一個可用區出現故障,您的應用程序將不會停止工作。

對於 TCP 流量,使用基於協議、源端口、源 IP 地址、目標端口、目標 IP 地址和 TCP 序列號的流哈希算法選擇目標。

客戶端的 TCP 連接具有不同的序列號和源端口,因此這些連接被路由到其他目標。 在連接期間,每個唯一的 TCP 連接都被路由到單個目標。

網關負載均衡器

您的第三方虛擬設備可以在 Gateway Load Balancer 的幫助下輕鬆部署、擴展和管理。 它提供了一個網關,用於在眾多虛擬設備之間拆分流量,並根據需求擴大或縮小它們。 這消除了網絡中潛在的故障點並提高了可用性。

Youtube 視頻

可以通過 AWS Marketplace 直接找到、測試和購買來自獨立製造商的虛擬設備。 無論您是想繼續與現有供應商合作還是嘗試新事物,這種集成體驗都可以加快部署過程,讓您可以更快地從虛擬設備中受益。

網關負載均衡器的好處:

  • 更快地部署第三方虛擬設備。
  • 在管理成本的同時擴展您的虛擬設備。
  • 提高虛擬設備的可用性

最後的話

彈性負載均衡器是在 AWS 上構建的許多基礎設施的關鍵部分。 我們從 ELB 獲得的功能使管理您的基礎架構更加容易。 Elastic Load Balancing 是一種久經考驗的方法,可將應用程序和 Web 流量請求分散到多個目標或實例上。

您可以使用 Elastic Load Balancer 自動擴展各種工作負載。 我們涵蓋了 AWS 提供的所有類型的負載均衡器,您可以根據應用程序的需求使用它們。