本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PERF04-BP04 使用負載平衡將流量分散到多個資源
在多個資源或服務之間分配流量,以讓您的工作負載能夠利用雲端提供的彈性。您也可以使用負載平衡來卸載加密終止,以提升效能、可靠性,以及有效管理和路由流量。
常見的反模式:
-
您在選擇負載平衡器類型時未考慮工作負載需求。
-
您不利用負載平衡器功能來進行效能最佳化。
-
工作負載在不使用負載平衡器的情況下,直接公開到網際網路。
-
您可以透過現有的負載平衡器路由所有網際網路流量。
-
您可以使用一般TCP負載平衡,並讓每個運算節點處理SSL加密。
建立此最佳實務的優勢:負載平衡器會處理單一可用區域中或跨多個可用區域的應用程式流量不同的負載,並實現高可用性、自動擴展及更充分利用您的工作負載。
未建立此最佳實務時的曝險等級:高
實作指引
負載平衡器會做為您的工作負載的進入點,從那裡將您的流量分散到後端目標,例如運算執行個體或容器,以提高利用率。
選擇正確的負載平衡器類型是最佳化架構的第一步。首先列出您的工作負載特性,例如通訊協定 (例如 TCP、HTTP、 或 WebSockets)TLS、目標類型 (例如執行個體、容器或無伺服器)、應用程式需求 (例如長時間執行的連線、使用者身分驗證或黏性),以及置放 (例如區域、本機區域、Outpost 或區域隔離)。
AWS 提供多個模型,讓您的應用程式使用負載平衡。Application Load Balancer 最適合 HTTP和 HTTPS 流量的負載平衡,並提供進階請求路由,以交付現代應用程式架構為目標,包括微服務和容器。
Network Load Balancer 最適合需要極端效能的TCP流量負載平衡。它能夠每秒處理數百萬個請求,同時保持超低延遲性,並且還進行優化,可處理突發的和不穩定的流量模式。
Elastic Load Balancing
選擇正確的負載平衡器之後,您可以開始利用其功能來減少後端為流量提供服務所需投入的工作量。
例如,同時使用 Application Load Balancer (ALB) 和 Network Load Balancer (NLB),您可以執行 SSL/TLS 加密卸載,這是避免目標完成 CPU密集型TLS交握,以及改善憑證管理的機會。
當您在負載平衡器中設定SSL/TLS卸載時,它會負責加密來自用戶端的流量,同時將未加密的流量交付至後端,釋放後端資源並改善用戶端的回應時間。
Application Load Balancer 也可以提供 HTTP/2 流量,而不需要在目標上支援。這個簡單的決策可以改善您的應用程式回應時間,因為 HTTP/2 更有效率地使用TCP連線。
定義架構時,應該考慮您的工作負載延遲要求。例如,如果您有對延遲敏感的應用程式,您可能會決定使用 Network Load Balancer,以獲得極低的延遲。另外,您可能會決定讓工作負載更靠近您的客戶,也就是利用 AWS Local Zones
對延遲敏感的工作負載的另一個考慮是跨區域負載平衡。使用跨區域負載平衡,每個負載平衡器節點會將已註冊目標之間的流量分散到所有允許的可用區域中。
使用與您的負載平衡器整合的 Auto Scaling。效能效率系統的其中一個關鍵層面與適當調整後端資源大小有關。若要完成此操作,您可以利用後端目標資源的負載平衡器整合。使用與 Auto Scaling 群組整合的負載平衡器,目標會視需要從負載平衡器新增或移除,以因應傳入流量。負載平衡器也可以與 Amazon ECS 和 Amazon EKS 整合,用於容器化工作負載。
實作步驟
-
定義您的負載平衡需求,包括流量、可用性和應用程式可擴展性。
-
為您的應用程式選擇正確的負載平衡器類型。
-
針對 HTTP/HTTPS 工作負載使用 Application Load Balancer。
-
針對在 TCP或 上執行的非HTTP工作負載使用 Network Load BalancerUDP。
-
如果您想要利用兩個 產品的功能,請使用兩者的組合ALB ( 作為 的目標NLB
)。例如,如果您想要將 靜態 與來自 IPs的HTTP標頭型路由NLB搭配使用ALB,或者如果您想要將HTTP工作負載公開至 ,則可以這樣做AWS PrivateLink。 -
如需負載平衡器的完整比較,請參閱ELB產品比較
。
-
-
如果可能,請使用 SSL/TLS 卸載。
-
使用與 整合Application Load Balancer和網路Load Balancer來設定 HTTPS/TLS 接聽程式AWS Certificate Manager
。 -
請注意,某些工作負載可能因為合規原因而需要 end-to-end加密。在此情況下,必須允許在目標進行加密。
-
如需安全最佳實務,請參閱SEC傳輸中的 09-BP02 強制執行加密。
-
-
選取正確的路由演算法 (僅限 ALB)。
-
路由演算法可以造成您的後端目標的妥善使用程度和它們影響效能程度的差異。例如, ALB 提供兩種路由演算法的選項:
-
最低未解決請求:針對應用程式的請求因複雜性而異,或目標因處理功能而異的情況,用來讓負載更妥善地分散到您的後端目標。
-
循環配置:當請求和目標類似,或是如果您需要在目標之間平均分散請求時使用。
-
-
考慮跨區域或區域隔離。
-
針對延遲改善和區域失敗網域使用跨區域關閉 (區域隔離)。依預設,它會在 中關閉NLB,而在 中ALB,您可以關閉每個目標群組 。
-
使用跨區域開啟來增加可用性和彈性。根據預設, 的跨區域會開啟,ALB您可以在 中NLB為每個目標群組 開啟。
-
-
開啟HTTP工作負載的 HTTP keep-alives (僅限 ALB)。透過此功能,負載平衡器可以重複使用後端連線,直到保持連線逾時到期為止,藉此改善您的HTTP請求和回應時間,並減少後端目標的資源使用率。如需如何為 Apache 和 Nginx 執行此操作的詳細資訊,請參閱使用 Apache 或NGINX作為 後端伺服器的最佳設定為何ELB?
-
開啟負載平衡器的監控功能。
-
開啟 Application Load Balancer 和 Network Load Balancer 的存取記錄。
-
要考慮的主要欄位ALB為
request_processing_time
request_processing_time
、 和response_processing_time
。 -
要考慮的主要欄位NLB為
connection_time
和tls_handshake_time
。 -
為效能相關指標建立警示,例如
TargetResponseTime
針對 ALB。
-
資源
相關文件:
相關影片:
相關範例: