平衡 Layer 的負載 - AWS OpsWorks

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

平衡 Layer 的負載

重要

AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問,請透過 AWS re:Post 或透過 AWS Premium Support 聯絡 AWS 支援 團隊。

AWS OpsWorks Stacks 提供兩種負載平衡選項:Elastic Load BalancingHAProxy,通常用於平衡應用程式伺服器層執行個體的負載。本主題說明其各自的優點和限制,幫助您在 layer 新增負載平衡時決定要選擇的選項。在某些情況下,最好的方法是兩個都使用。

SSL 終止

內建 HAProxy layer 不會處理SSL終止;您必須在SSL伺服器上終止。此方法的優點是會加密流量,直到它到達伺服器。不過,伺服器必須處理解密,這會增加伺服器的負載。此外,您必須將SSL憑證放在應用程式伺服器上,讓使用者更容易存取。

使用 Elastic Load Balancing,您可以在負載平衡器SSL終止 。這可減少應用程式伺服器上的負載,但負載平衡器與伺服器之間的流量不會加密。Elastic Load Balancing 也可讓您SSL在伺服器上終止 ,但設定有點複雜。

擴展

如果傳入流量超過HAProxy負載平衡器的容量,您必須手動增加其容量。

Elastic Load Balancing 會自動擴展以處理傳入流量。若要確保 Elastic Load Balancing 負載平衡器在第一次上線時有足夠的容量來處理預期的負載,您可以預先暖機

負載平衡器故障

如果託管您HAProxy伺服器的執行個體失敗,可能會讓整個網站離線,直到您重新啟動執行個體為止。

Elastic Load Balancing 比 更可抵抗故障HAProxy。例如,它會在每個已註冊EC2執行個體的可用區域中佈建負載平衡節點。如果某個區域的服務中斷,其他節點會繼續處理傳入的流量。如需詳細資訊,請參閱 Elastic Load Balancing 概念

閒置逾時

如果伺服器閒置超過指定的閒置逾時值,兩種負載平衡器都會終止連線。

  • HAProxy – 閒置逾時值沒有上限。

  • Elastic Load Balancing – 預設閒置逾時值為 60 秒,最長 3600 秒 (60 分鐘)。

Elastic Load Balancing 閒置時間限制足以用於大多數用途。HAProxy 如果您需要更長的閒置逾時,建議您使用 。例如:

  • 用於推送通知的長時間執行HTTP連線。

  • 您用來執行可能需要超過 60 分鐘任務的管理界面。

URL以 為基礎的映射

您可能想要讓負載平衡器根據請求的 ,將傳入請求轉送到特定伺服器URL。例如,假設您有 10 個一組的應用程式伺服器支援線上商務應用程式。八個伺服器處理型錄,兩個處理付款。您想要根據HTTP請求 ,將所有付款相關請求導向至付款伺服器URL。在這種情況下,您可以將URLs包含「付款」或「簽出」的所有 導向至其中一個付款伺服器。

透過 HAProxy,您可以使用 URL型映射,將URLs包含指定字串的 導向至特定伺服器。若要搭配 AWS OpsWorks Stacks 使用 URL型映射,您必須覆寫haproxy內建技術指南中的haproxy-default.erb範本來建立自訂HAProxy組態檔案。如需詳細資訊,請參閱HAProxy組態手冊使用自訂範本 。您無法針對HTTPS請求使用 URL型映射。HTTPS 請求已加密,因此 HAProxy 無法檢查請求 URL。

Elastic Load Balancing 對URL映射的支援有限。如需詳細資訊,請參閱 Elastic Load Balancing 的接聽程式組態

建議:我們建議您使用 Elastic Load Balancing 進行負載平衡,除非您有只能由 處理的需求HAProxy。在這種情況下,最佳方法是使用 Elastic Load Balancing 作為前端負載平衡器,將傳入流量分散到一組HAProxy伺服器,以結合兩者。若要執行此作業:

  • 在每個堆疊的可用區域中設定HAProxy執行個體,將請求分發到區域的應用程式伺服器。

  • 將HAProxy執行個體指派給 Elastic Load Balancing 負載平衡器,然後將傳入的請求分佈到HAProxy負載平衡器。

此方法可讓您使用 HAProxy的 URL型映射,將不同類型的請求分發到適當的應用程式伺服器。不過,如果其中一個HAProxy伺服器離線,則網站會繼續運作,因為 Elastic Load Balancing 負載平衡器會自動將傳入流量分散到運作狀態良好的HAProxy伺服器。請注意,您必須使用 Elastic Load Balancing 做為前端負載平衡器;HAProxy伺服器無法將請求分發給其他HAProxy伺服器。