本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon ECS 使用 Network Load Balancer
Network Load Balancer 在傳輸層進行路由決策 (TCP/SSL)。它每秒可以處理數百萬個請求。在負載平衡器收到連線後,會使用流程雜湊路由演算法從目標群組選取預設規則的目標。負載平衡器會嘗試開啟接聽程式設定中指定之連接埠上所選目標的 TCP 連線。負載平衡器會轉送此請求,且不會修改標頭。Network Load Balancer 支援動態主機連接埠映射。例如,如果您的任務的容器定義指定 NGINX 容器連接埠使用連接埠 80,主機連接埠使用連接埠 0,則會從容器執行個體的暫時性連接埠範圍 (例如最新的 Amazon ECS 最佳化 AMI 為 32768 至 61000) 動態選擇主機連接埠。啟動此任務時,NGINX 容器會以執行個體 ID 和連接埠組合在 Network Load Balancer 註冊,而流量將分散到與該容器對應的執行個體 ID 和連接埠。這個動態映射可讓您在同一個容器執行個體中的單一服務擁有多項任務。如需詳細資訊,請參閱 Network Load Balancer 使用者指南。
如需有關設定參數以加速部署的最佳實務資訊,請參閱:
搭配 Amazon ECS 使用 Network Load Balancer 時,請考量下列事項:
-
Amazon ECS 需要服務連結 IAM 角色,該角色會在任務建立和停止時提供向您的負載平衡器註冊與取消註冊目標所需的許可。如需詳細資訊,請參閱使用 Amazon ECS 的服務連結角色。
-
一項服務最多只能連接五個目標群組。
-
對於純 IPv6 組態的服務,必須將 Network Load Balancer 的目標群組 IP 位址類型設定為
dualstack。 -
對於任務使用
awsvpc網路模式的服務,當您為服務建立目標群組時,必須選擇ip做為目標類型,而非instance。這是由於採用awsvpc網路模式的任務是與彈性網絡介面相關聯,而非與 Amazon EC2 執行個體相關聯。 -
負載平衡器子網路組態必須包含您容器執行個體所在的所有可用區域。
-
建立服務之後,負載平衡器組態無法從 AWS 管理主控台變更。您可以使用 AWS Copilot AWS CloudFormation AWS CLI 或 SDK,僅修改
ECS滾動部署控制器的負載平衡器組態,而不是 AWS CodeDeploy 藍/綠或外部。當您新增、更新或移除負載平衡器組態時,Amazon ECS 會使用更新後的 Elastic Load Balancing 組態啟動新的部署。這會導致任務向負載平衡器註冊和取消註冊。我們建議您在更新 ELB 組態之前,先在測試環境中驗證此設定。如需有關如何修改組態的資訊,請參閱 Amazon Elastic Container Service API 參考 中的 UpdateService。 -
如果服務任務未能通過負載平衡器運作狀態檢查條件,則會停止並重新啟動任務。此程序會持續到您的服務達到所需的執行任務數量為止。
-
當您使用以 IP 位址作為目標設定的且關閉了用戶端 IP 保留功能的 Gateway Load Balancer 時,請求會視為來自 Gateway Load Balancer 私有 IP 位址。也就是說,當您在目標安全群組中允許傳入請求與運作狀態檢查時,Gateway Load Balancer 後端的服務就會立即對外開放。
-
對於 Fargate 任務,必須使用平台版本
1.4.0(Linux) 或1.0.0(Windows)。 -
如果您遇上啟用負載平衡器功能之服務的問題,請參閱對 Amazon ECS 中的服務負載平衡器進行疑難排解。
-
使用
instance目標類型時,任務與負載平衡器必須位於同一 VPC 中。使用ip目標類型時,支援跨 VPC 連線。 -
Network Load Balancer 用戶端 IP 位址保留與 Fargate 目標相容。
-
針對每項服務使用唯一目標群組。
針對多項服務使用同一目標群組可能會在服務部署期間導致問題。
-
您必須指定與 Network Load Balancer 相關聯的目標群組。
如需有關如何建立 Network Load Balancer 的資訊,請參閱 Network Load Balancers 中的 Create a Network Load Balancer
重要
若服務的任務定義採用 Fargate 所需的 awsvpc 網路模式,則您必須選擇 ip 作為目標類型,而不是選擇 instance。因為採用 awsvpc 網路模式的任務是與彈性網路界面相關聯,而非與 Amazon EC2 執行個體相關聯。
如果執行個體類型如下:C1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3 和 T1,就不能以執行個體 ID 來登錄執行個體。您可以使用 IP 地址來登錄這些執行個體。