Amazon ECS 任務規模的最佳實務 - Amazon Elastic Container Service

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

Amazon ECS 任務規模的最佳實務

您的容器和任務大小對於擴展和容量規劃都是必不可少的。在 Amazon ECS 中,CPU 和記憶體是用於容量的兩個資源指標。CPU 的測量單位為完整 vCPU 的 1/1024 個單位 (其中 1024 個單位等於 1 個整個 vCPU)。記憶體以 MB 為單位。在工作定義中,您可以設定資源保留區和限制。

設定保留區時,您正在設定工作所需的最小資源數量。您的任務至少會收到請求的資源數量。您的應用程式可能能夠使用比宣告的保留區更多的 CPU 或記憶體。但是,這受到您還聲明的任何限制的約束。使用超過預留金額的使用稱為成組分解。在 Amazon ECS 中,保證預訂。例如,如果您使用 Amazon EC2 執行個體提供容量,Amazon ECS 不會在無法完成保留的執行個體上放置任務。

限制是容器或工作可以使用的 CPU 單元或記憶體的最大數量。任何嘗試使用超過此限制的 CPU 都會導致節流。任何嘗試使用更多內存的嘗試都會導致您的容器被停止。

選擇這些值可能具有挑戰性。這是因為最適合您應用程式的值在很大程度上取決於應用程式的資源需求。負載測試您的應用程式是成功規劃資源需求的關鍵,以及更好地瞭解應用程式的需求。

無狀態應用程式

對於水平擴充的無狀態應用程式 (例如負載平衡器後方的應用程式),建議您先判斷應用程式在提供要求時所耗用的記憶體量。為此,您可以使用傳統工具,例如pstop,或監視解決方案,例如 CloudWatch 容器見解。

決定 CPU 保留時,請考慮如何擴展應用程式以符合您的業務需求。您可以使用較小的 CPU 保留區 (例如 256 個 CPU 單位 (或 1/4 vCPU),以精細的方式向外擴充,將成本降至最低。但是,它們可能無法快速擴展以滿足需求的顯著峰值。您可以使用較大的 CPU 保留來更快速地擴展和擴展,從而更快地匹配需求峰值。不過,較大的 CPU 保留成本較高。

其他應用

對於無法水平擴充的應用程式 (例如單一背景工作者或資料庫伺服器),可用的容量和成本代表您最重要的考量。您應該根據負載測試指出您需要為流量提供服務以符合服務等級目標的記憶體和 CPU 數量。Amazon ECS 可確保應用程式放置在容量足夠的主機上。