使用適用於 Amazon ECS 的 Application Load Balancer - Amazon Elastic Container Service

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

使用適用於 Amazon ECS 的 Application Load Balancer

Application Load Balancer 在應用程式層 (HTTP/HTTPS) 進行路由決策、支援以路徑為基礎的路由,並可將請求路由到您叢集中每個容器執行個體的一或多個連接埠。Application Load Balancer 支援動態主機連接埠映射。例如,如果您的任務的容器定義指定 NGINX 容器連接埠使用連接埠 80,主機連接埠使用連接埠 0,則會從容器執行個體的暫時性連接埠範圍 (例如最新的 Amazon ECS 最佳化 AMI 為 32768 至 61000) 動態選擇主機連接埠。當任務啟動時,NGINX 容器會向 Application Load Balancer 註冊為執行個體 ID 和連接埠組合,而流量會分佈到與該容器對應的執行個體 ID 和連接埠。這個動態映射可讓您在同一個容器執行個體中的單一服務擁有多項任務。如需詳細資訊,請參閱 Application Load Balancer 使用者指南

如需設定參數以加速部署的最佳實務相關資訊,請參閱:

搭配 Amazon ECS 使用 Application Load Balancer 時,請考慮下列事項:

  • Amazon ECS 需要服務連結 IAM 角色,該角色會在任務建立和停止時提供向您的負載平衡器註冊與取消註冊目標所需的許可。如需詳細資訊,請參閱使用 Amazon ECS 的服務連結角色

  • 目標群組必須將 IP 地址類型設定為 IPv4。

    雖然任務支援 IPv6,但不支援與 IPv6 Elastic Load Balancing 的服務整合。

  • 對於任務使用 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 或 SDK,僅修改ECS滾動部署控制器的負載平衡器組態,而不是 AWS CodeDeploy 藍/綠或外部。當您新增、更新或移除負載平衡器組態時,Amazon ECS 會使用更新後的 Elastic Load Balancing 組態啟動新的部署。這會導致任務向負載平衡器註冊和取消註冊。我們建議您在更新 Elastic Load Balancing 組態之前,先在測試環境中驗證。如需有關如何修改組態的資訊,請參閱 Amazon Elastic Container Service API 參考 中的 UpdateService

  • 如果服務任務未通過負載平衡器運作狀態檢查條件,則任務會停止並重新啟動。此程序會持續到您的服務達到所需的執行任務數量為止。

  • 如果您遇上啟用負載平衡器功能之服務的問題,請參閱對 Amazon ECS 中的服務負載平衡器進行故障診斷

  • 您的任務和負載平衡器必須位於相同的 VPC 中。

  • 為每個服務使用唯一的目標群組。

    針對多個服務使用相同的目標群組可能會導致服務部署期間發生問題。

如需如何建立 Application Load Balancer 的資訊,請參閱在 Application Load Balancer 中建立 Application Load Balancer