本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
決定 Amazon ECS 的任務大小
在 Amazon ECS 上部署容器時,容器與任務的大小設定是最關鍵的決策之一。容器與任務大小對於擴展和容量規劃至關重要。
Amazon ECS 使用兩種容量資源指標:CPU 與記憶體。Amazon ECS 以完整 vCPU 的 1/1024 為單位計量 CPU (其中 1024 個單位等於 1 個完整 vCPU)。Amazon ECS 以 MB 為單位計量記憶體。
在任務定義中,您可以宣告資源保留量與限制。
宣告保留量時,您要宣告任務所需的資源數量下限。任務至少會收到請求的資源量。應用程式實際使用的 CPU 或記憶體,可能會超出設定的保留量。但這受您同時宣告的所有限制的約束。
使用超過保留數量稱為爆量。爆量表示應用程式使用的資源超過保留的資源量,但會保持在您宣告的限制內。Amazon ECS 會保證保留量。例如,若使用 Amazon EC2 執行個體提供容量,當無法滿足保留量需求時,Amazon ECS 不會將該任務置放於該執行個體上。
限制是容器或任務所能使用的 CPU 單位或記憶體的最大數量。如果容器嘗試使用的 CPU 單位超過此限制,Amazon ECS 會對其進行限流。如果容器嘗試使用的記憶體超過此限制,Amazon ECS 會停止容器。
精準選擇這些值可能具有挑戰性。最適合應用程式的值,在很大程度上取決於應用程式的資源需求。
對應用程式進行負載測試,是成功規劃資源需求的關鍵。負載測試有助進一步了解應用程式的需求。
無狀態應用程式
對於可水平擴展的無狀態應用程式 (如負載平衡器後端的應用程式),建議先判斷應用程式在處理請求時所耗用的記憶體量。
為此,您可以使用 ps 或 top 等傳統工具。您也可以使用 CloudWatch Container Insights 等監控解決方案。
在決定 CPU 保留量時,需考量如何擴展應用程式來滿足業務需求。
您可以使用較小的 CPU 保留量,例如 256 個 CPU 單位 (或 1/4 vCPU),以將成本降至最低的精細方式橫向擴充。但此方式可能無法快速應對需求的大幅激增。
您可以使用較大的 CPU 保留量來更快地進行縮減與橫向擴充。這可協助您更快地應對需求激增情況。但較大的 CPU 保留量會帶來更高的成本。
其他應用程式
對於無法水平擴展的應用程式 (例如單例工作線程或資料庫伺服器),可用容量與成本是最重要的考量因素。
根據負載測試的結果選擇記憶體與 CPU 的配置量,確保能應對流量並達成服務水準目標。Amazon ECS 可確保應用程式置放在具有足夠容量的主機上。