使用 AWS ELB 進行負載均衡

大家好!課程今天開始 “面向開發人員的 AWS”,同時,我們也舉辦了一場專門針對 ELB 審查的專題網路研討會。我們研究了負載平衡器的類型,並使用負載平衡器創建了幾個 EC2 執行個體。我們也研究了其他使用範例。

使用 AWS ELB 進行負載均衡

聽完網路研討會後, 你會:

  • 了解什麼是 AWS 負載平衡;
  • 了解彈性負載平衡器的類型及其組件;
  • 在實務上使用 AWS ELB。

為什麼你需要知道這一點:

  • 如果您打算參加 AWS 認證考試,這將很有用;
  • 這是一種在伺服器之間分配負載的簡單方法;
  • 這是將 Lambda 新增至您的服務(ALB)的簡單方法。

公開課進行 里沙特·特列古洛夫,一家行銷公司的系統工程師,負責開發和支援網站。

介紹

下圖展示了什麼是彈性負載平衡器,它是一個簡單的範例:

使用 AWS ELB 進行負載均衡

負載平衡器接受請求並將其分發到各個執行個體。我們有一個單獨的實例,我們有 Lambda 函數,我們有一個 AutoScaling 群組(一組伺服器)。

AWS ELB 類型

1. 讓我們看看主要類型:

經典負載平衡器。 AWS 的第一個負載平衡器可在 OSI 第 4 層和第 7 層上執行,支援 HTTP、HTTPS、TCP 和 SSL。它提供跨多個 Amazon EC2 執行個體的基本負載平衡,並在請求和連線層級執行。讓我們打開它(以灰色突出顯示):

使用 AWS ELB 進行負載均衡

該平衡器已過時,因此建議僅在某些情況下使用。例如,對於在 EC2‑Classic 網路上建置的應用程式。原則上,沒有人阻止我們創造它:

使用 AWS ELB 進行負載均衡

2.網路負載平衡器。 適合高負載,工作於OSI第4層(可用於EKS和ECS),支援TCP、UDP和TLS。

網路負載平衡器將流量路由到 Amazon VPC 中的目標,並且可以以超低延遲每秒處理數百萬個請求。此外,它還針對處理突發和變化負載的流量模式進行了最佳化。

3.應用程式負載平衡器。在第 7 級工作,具有 Lambda 支持,支援標頭和路徑級別規則,支援 HTTP 和 HTTPS。
提供進階請求路由,專注於交付基於現代架構(包括微服務和容器)建構的應用程式。根據請求的內容將流量路由到 Amazon VPC 中的目標。

對於許多用戶來說,應用程式負載平衡器是替代傳統負載平衡器的首選,因為 TCP 不像 HTTP 那麼常見。

我們也創建它,這樣我們就有兩個負載平衡器了:

使用 AWS ELB 進行負載均衡

負載平衡組件

常見的負載平衡組件 (所有平衡器通用):

  • 訪問日誌記錄策略

— 您的 ELB 存取日誌。要進行設置,您可以轉到描述並選擇“編輯屬性”按鈕:

使用 AWS ELB 進行負載均衡

然後我們指定S3Bucket——亞馬遜物件儲存:

使用 AWS ELB 進行負載均衡

  • 方案

- 內部或外部平衡器。重點在於你的LoadBalancer是否應該取得外部位址以便外部可以訪問,或者它可以是你的內部負載平衡器;

  • 安全組

— 控制對平衡器的存取。它本質上是一種高級防火牆。

使用 AWS ELB 進行負載均衡

使用 AWS ELB 進行負載均衡

  • 子網路

— 您的 VPC 內的子網路(以及對應的可用區域)。子網路在建立期間指定。 VPC 受區域限制,而子網路受可用區域限制。建立負載平衡器時,最好在至少兩個子網路中建立它(如果一個可用區域出現問題,則會有所幫助);

  • 聽眾

- 你的平衡器協議。如前所述,對於 Classic Load Balancer,這可以是 HTTP、HTTPS、TCP 和 SSL;對於 Network Load Balancer,這可以是 TCP、UDP 和 TLS;對於 Application Load Balancer,這可以是 HTTP 和 HTTPS。

經典負載平衡器範例:

使用 AWS ELB 進行負載均衡

但在應用程式負載平衡器中,我們看到了略微不同的介面,並且總體上,邏輯也不同:

使用 AWS ELB 進行負載均衡

負載平衡器 v2 組件(ALB 和 NLB)

現在讓我們仔細看看應用程式負載平衡器和網路負載平衡器版本 2。這些均衡器有自己的組件功能。例如,出現了目標群體-實例(和功能)這樣的概念。有了這個元件,我們現在可以指定要將流量引導到哪個目標群體。

使用 AWS ELB 進行負載均衡

使用 AWS ELB 進行負載均衡

簡單來說,在目標群組中我們指定流量將會到來的實例。如果在同一個 Classic Load Balancer 中您只是立即將強度連接到平衡器,那麼在 Application Load Balancer 中您首先:

  • 建立負載平衡器;
  • 創建目標群體;
  • 直接連接到所需的連接埠或負載平衡器規則到所需的目標群組;
  • 在目標群組中,您可以指派實例。

這樣的工作邏輯看起來可能比較複雜,但實際上比較方便。

下一個組件是 監聽器規則 (路由規則)。這僅適用於應用程式負載平衡器。如果在網路負載平衡器中你只是建立一個監聽器,並將流量傳送到特定的目標群組,那麼在應用程式負載平衡器中,一切都 更有趣、更舒適.

使用 AWS ELB 進行負載均衡

現在讓我們來談談下一個元件 - 彈性IP (NLB 的靜態位址)。雖然偵聽器規則僅影響應用程式負載平衡器,但彈性 IP 僅影響網路負載平衡器。

讓我們建立網路負載平衡器:

使用 AWS ELB 進行負載均衡

使用 AWS ELB 進行負載均衡

在創建過程中,我們會看到我們有機會選擇彈性 IP:

使用 AWS ELB 進行負載均衡

彈性 IP 提供一個單一的 IP 位址,該位址可以隨時間與不同的 EC2 執行個體相關聯。如果 EC2 執行個體具有彈性 IP 位址且該執行個體終止或停止,您可以立即將新的 EC2 執行個體與彈性 IP 位址關聯。這不會阻止您當前的應用程式運行,因為即使實際的 EC2 已發生變化,應用程式仍然會看到相同的 IP 位址。

這裡 另一個用例 關於為什麼需要彈性IP這個話題。看,我們看到了 3 個 IP 位址,但它們不會永遠留在這裡:

使用 AWS ELB 進行負載均衡

亞馬遜會隨著時間的推移更改它們,並且可以每 60 秒更改一次(但實際上,頻率當然更低)。這意味著 IP 位址可能會改變。對於網路負載平衡器,您只需綁定一個 IP 位址並在規則、策略等中指定它。

使用 AWS ELB 進行負載均衡

得出結論

ELB 提供跨多個目標(容器、Amazon EC2 執行個體、IP 位址和 Lambda 函數)的傳入流量的自動分配。 ELB 能夠在單一可用區域內以及跨多個可用區域分配具有不同負載的流量。使用者可以從三種類型的平衡器中進行選擇,提供高可用性、自動擴展和良好的保護。所有這些對於確保應用程式的彈性都很重要。

主要優點:

  • 高可用性。服務協定意味著負載平衡器的可用性為 99,99%。例如,多個可用區域確保流量僅由健康對象處理。事實上,可以透過將流量重新導向到不同可用區域中的可服務目標來平衡整個區域的負載;
  • 安全。 ELB 與 Amazon VPC 搭配使用,提供多種安全功能,包括整合式憑證管理、使用者驗證和 SSL/TLS 解密。總之,它提供了 TLS 設定的集中和靈活的管理;
  • 彈性。 ELB 可以處理網路流量的突然變化。並且與Auto Scaling的深度集成,可以在負載發生變化時為應用程式提供足夠的資源,而無需人工幹預;
  • 靈活性。您可以使用 IP 位址將請求路由到您的應用程式目標。這確保了虛擬化目標應用程式的靈活性,從而允許在單一執行個體上託管多個應用程式。由於應用程式可以共享單一網路連接埠並擁有單獨的安全群組,因此當我們擁有基於微服務的架構時,它可以簡化應用程式間的通訊;
  • 監控和審計。您可以使用 Amazon CloudWatch 功能即時監控應用程式。我們正在討論指標、日誌、請求追蹤。簡單來說,您將能夠相當準確地識別問題並找出效能瓶頸;
  • 混合負載平衡。使用相同的負載平衡器在本地資源和 AWS 之間進行負載平衡的能力使得將本機應用程式遷移或擴展到雲端變得容易。使用雲端還可以簡化故障處理。

如果您有興趣了解更多詳細信息,以下是來自亞馬遜官方網站的幾個更有用的連結:

  1. 彈性負載平衡.
  2. 彈性負載平衡功能。

來源: www.habr.com

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster