本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用適用於 Amazon 的 Application Load Balancer ECS
Application Load Balancer 會在應用程式層 (HTTP/HTTPS) 上做出路由決策,支援路徑型路由,並可將請求路由至叢集中每個容器執行個體上的一或多個連接埠。Application Load Balancer 支援動態主機連接埠映射。例如,如果您任務的容器定義指定NGINX容器連接埠的連接埠 80,以及主機連接埠的連接埠 0,則主機連接埠會從容器執行個體的暫時連接埠範圍 (例如最新的 Amazon ECS最佳化 上的 32768 到 61000) 動態選擇AMI。任務啟動時,NGINX容器會向 Application Load Balancer 註冊為執行個體 ID 和連接埠組合,而流量會分佈到與該容器對應的執行個體 ID 和連接埠。這個動態映射可讓您在同一個容器執行個體中的單一服務擁有多項任務。如需詳細資訊,請參閱 Application Load Balancer 使用者指南。
如需設定參數以加速部署的最佳實務的相關資訊,請參閱:
搭配 Amazon 使用 Application Load Balancer 時,請考慮下列事項ECS:
-
Amazon ECS需要服務連結IAM角色,該角色在建立和停止任務時,提供向負載平衡器註冊和取消註冊目標所需的許可。如需詳細資訊,請參閱使用 Amazon 的服務連結角色 ECS。
-
目標群組必須將 IP 地址類型設定為 IPv4。
-
對於任務使用
awsvpc
網路模式的服務,當您為服務建立目標群組時,必須選擇ip
做為目標類型,而非instance
。這是因為使用awsvpc
網路模式的任務與彈性網路介面相關聯,而不是與 Amazon EC2執行個體相關聯。 -
如果您的服務需要存取多個負載平衡連接埠,例如 HTTP/HTTPS 服務的連接埠 80 和連接埠 443,您可以設定兩個接聽程式。一個接聽程式負責HTTPS將請求轉送至 服務,另一個接聽程式負責將HTTP請求重新導向至適當的HTTPS連接埠。如需詳細資訊,請參閱 Application Load Balancer 使用者指南中的為您的 Application Load Balancer 建立接聽程式。
-
負載平衡器子網路組態必須包含您容器執行個體所在的所有可用區域。
-
建立服務之後,負載平衡器組態無法從 AWS Management Console變更。您可以使用 AWS Copilot AWS CloudFormation, AWS CLI 或修改
ECS
滾動部署控制器的SDK負載平衡器組態,而不是 AWS CodeDeploy 藍/綠或外部。當您新增、更新或移除負載平衡器組態時,Amazon 會使用更新的 Elastic Load Balancing 組態ECS啟動新的部署。這會導致任務向負載平衡器註冊和取消註冊。我們建議您在更新 Elastic Load Balancing 組態之前,先在測試環境中驗證。如需有關如何修改組態的資訊,請參閱 Amazon Elastic Container Service 參考 UpdateService 中的 。 API -
如果服務任務未通過負載平衡器運作狀態檢查條件,則任務會停止並重新啟動。此程序會持續到您的服務達到所需的執行任務數量為止。
-
如果您遇上啟用負載平衡器功能之服務的問題,請參閱對 Amazon 中的服務負載平衡器進行故障診斷 ECS。
-
您的任務和負載平衡器必須位於相同的 中VPC。
-
為每個服務使用唯一的目標群組。
針對多個服務使用相同的目標群組可能會導致服務部署期間發生問題。
如需有關如何建立 Application Load Balancer 的資訊,請參閱在 Application Load Balancer 中建立 Application Load Balancer