

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

# 決定 Amazon ECS 的任務大小
<a name="capacity-tasksize-best-practice"></a>

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

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

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

## 無狀態應用程式
<a name="capacity-tasksize-stateless"></a>

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

為此，您可以使用 `ps` 或 `top` 等傳統工具。您也可以使用 CloudWatch Container Insights 等監控解決方案。

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

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

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

## 其他應用程式
<a name="capacity-tasksize-other"></a>

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

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