決定 Amazon ECS 的任務大小 - Amazon Elastic Container Service

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

決定 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 會停止容器。

精準選擇這些值可能具有挑戰性。最適合應用程式的值,在很大程度上取決於應用程式的資源需求。

對應用程式進行負載測試,是成功規劃資源需求的關鍵。負載測試有助進一步了解應用程式的需求。

無狀態應用程式

對於可水平擴展的無狀態應用程式 (如負載平衡器後端的應用程式),建議先判斷應用程式在處理請求時所耗用的記憶體量。

為此,您可以使用 pstop 等傳統工具。您也可以使用 CloudWatch Container Insights 等監控解決方案。

在決定 CPU 保留量時,需考量如何擴展應用程式來滿足業務需求。

您可以使用較小的 CPU 保留量,例如 256 個 CPU 單位 (或 1/4 vCPU),以將成本降至最低的精細方式橫向擴充。但此方式可能無法快速應對需求的大幅激增。

您可以使用較大的 CPU 保留量來更快地進行縮減與橫向擴充。這可協助您更快地應對需求激增情況。但較大的 CPU 保留量會帶來更高的成本。

其他應用程式

對於無法水平擴展的應用程式 (例如單例工作線程或資料庫伺服器),可用容量與成本是最重要的考量因素。

根據負載測試的結果選擇記憶體與 CPU 的配置量,確保能應對流量並達成服務水準目標。Amazon ECS 可確保應用程式置放在具有足夠容量的主機上。