對 Amazon 中的服務負載平衡器進行故障診斷 ECS - Amazon Elastic Container Service

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

對 Amazon 中的服務負載平衡器進行故障診斷 ECS

Amazon ECS服務可以向 Elastic Load Balancing 負載平衡器註冊任務。負載平衡器組態錯誤是常見的任務停止原因。如果您的停止任務是服務使用負載平衡器所啟動,請考慮以下可能的原因。

Amazon ECS服務連結角色不存在

Amazon ECS服務連結角色允許 Amazon ECS服務向 Elastic Load Balancing 負載平衡器註冊容器執行個體。必須在您的帳戶中建立服務連結角色。如需詳細資訊,請參閱使用 Amazon 的服務連結角色 ECS

容器執行個體安全群組

如果您的容器映射到您容器執行個體的連接埠 80,則您的容器執行個體安全群組必須允許連接埠 80 傳入流量,以讓負載平衡器的運作狀態檢查通過。

未針對所有可用區域設定 Elastic Load Balancing 負載平衡器

您的負載平衡器應該設定使用一個區域中的所有可用區域,或至少是您容器執行個體所在的所有可用區域。如果服務使用負載平衡器,並在位於負載平衡器未設定為使用的可用區域中的容器執行個體上啟動任務,則任務永遠不會通過運作狀態檢查。這會導致任務遭到刪除。

Elastic Load Balancing 負載平衡器運作狀態檢查設定錯誤

負載平衡器的運作狀態檢查參數可能太過侷限或指向不存在的資源。如果容器執行個體判定運作狀態不佳,則會從負載平衡器中移除。請務必確認為您的服務負載平衡器正確設定以下參數。

Ping 連接埠

負載平衡器運作狀態檢查的 Ping Port (Ping 連接埠) 值,是負載平衡器檢查判斷運作狀態是否良好之容器執行個體的連接埠。如果此連接埠設定錯誤,負載平衡器可能會從本身取消註冊您的容器執行個體。此連接埠應設定使用您處理運作狀態檢查之服務任務定義容器的 hostPort 值。

Ping 路徑

這是負載平衡器運作狀態檢查的一部分。這是您應用程式上的端點,可在應用程式運作狀態良好時傳回成功的狀態碼 (例如 200)。此值通常設為 index.html,但如果您的服務不回應該請求,則運作狀態檢查會失敗。如果您的容器沒有 index.html 檔案,您可以將此 設定為/以容器執行個體URL的 基底為目標。

回應逾時

這是您的容器必須傳回運作狀態檢查 ping 回應的時間。如果此值低於回應所需的時間,則運作狀態檢查會失敗。

運作狀態檢查間隔

這是運作狀態檢查 ping 之間的時間。運作狀態檢查的間隔愈短,您的容器執行個體就愈快到達 Unhealthy Threshold (狀態不良閾值)。

狀態不良閾值

這是您的運作狀態檢查失敗前,您的容器執行個體視為運作狀態不良的次數。如果您的運作狀態不佳閾值為 2,且運作狀態檢查間隔為 30 秒,則您的任務有 60 秒的時間回應運作狀態檢查 ping,之後才會假設運作狀態不佳。您可以提高運作狀態不良閾值或運作狀態檢查間隔,讓您的任務有更多的時間回應。

無法更新服務 servicename:任務定義中變更的負載平衡器容器名稱或連接埠

如果您的服務使用負載平衡器,您可以使用 AWS CLI 或 SDK 來修改負載平衡器組態。如需有關如何修改組態的資訊,請參閱 Amazon Elastic Container Service 參考 UpdateService 中的 。 API 如果您為服務更新任務定義,則在負載平衡器組態中指定的容器名稱和容器連接埠必須保留在任務定義中。

您已達到可同時執行的任務數量限制。

若為新帳戶,您的配額可能低於服務配額。您可以在 Service Quotas 主控台檢視您的帳戶的服務配額。若要請求提高配額,請參閱《Service Quotas 使用者指南》中的請求提高配額