在 Amazon ECS 上排程您的容器 - Amazon Elastic Container Service

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

在 Amazon ECS 上排程您的容器

Amazon Elastic Container Service (Amazon ECS) 是一種共用狀態、樂觀的並行系統,可為容器化工作負載提供靈活的排程功能。Amazon ECS 排程器會利用與 Amazon ECS API 相同的叢集狀態資訊,進行適當的置放決策。

Amazon ECS 提供為長時間執行的任務和應用程式服務排程器。它也提供為批次任務或單一執行任務執行獨立任務或排程任務的能力。您可以指定最符合您的需求的任何置放策略及執行任務的限制條件。例如,您可以指定任務跨多個可用區域或在單一可用區域內執行。另外,您還可以選擇性地將任務與您自己的自訂或第三方排程器整合。

選項 使用情況 其他資訊
服務 服務排程器適用於長時間執行的無狀態服務和應用程式。服務排程器也會選擇性地確保任務是針對 Elastic Load Balancing 負載平衡器所註冊。您可以更新由服務排程器維護的服務。這其中可能包括部署新的任務定義或變更正在執行的所需任務數。根據預設,服務排程器會將任務分散至多個可用區域。不過,您可以使用任務置放策略和限制條件,來自訂任務置放決策。 Amazon ECS 服務
獨立任務 獨立任務適用於執行工作然後停止的批次任務等程序。例如,您可以在工作進入佇列時讓處理序呼叫 RunTask。任務會從佇列中提取工作、執行工作,然後結束。使用 RunTask,您可以允許預設任務置放策略在您的叢集上隨機分配任務。這可能最大限度降低單一執行個體取得不成比例之任務數的機率。 Amazon ECS 獨立任務
排程任務 當您在叢集中以設定的間隔執行任務時,排程任務很適合,您可以使用 EventBridge 排程器來建立排程。您可以為備份操作或日誌掃描執行任務。您建立的 EventBridge 排程器排程可以在指定時間執行叢集中的一個或多個任務。您的排程事件可以設定為特定的時間間隔 (每隔 N 分鐘、小時或天執行)。此外,對於更複雜的排程,您可以使用 cron 運算式。 使用 Amazon EventBridge 排程器來排程 Amazon ECS 任務

運算選項

使用 Amazon ECS,您可以指定任務或服務執行所在的基礎設施。您可以使用容量提供者策略或啟動類型。

對於 Fargate,容量提供者是 Fargate 和 Fargate Spot。對於 EC2,容量提供者是具有已註冊容器執行個體的 Auto Scaling 群組。

容量提供者策略會將您的任務分散到與叢集相關聯的容量提供者。

只有已經與叢集關聯並具有 ACTIVEUPDATING 狀態的容量提供者,才能在容量提供者策略中使用。您可以在建立叢集時將容量提供者關聯到叢集。

在容量提供者策略中,選用的基準值會指明指定容量提供者上至少會執行多少任務數量。容量提供者策略中只有一個容量提供者可以定義基礎。

權重值會決定使用指定容量提供者其已啟動任務總數的相對百分比。請考量下列範例。您的策略包含兩個容量提供者,且兩者的權重值都是 1。達到基準百分比時,任務會平均分配給兩個容量提供者。以此類推,假如您為 capacityProviderA 指定了權重值 1,為 capacityProviderB 指定了權重值 4。那麼,每有一個任務使用 capacityProviderA 執行,就會有四個任務使用 capacityProviderB 執行。

啟動類型會直接在 Fargate 或您手動註冊到叢集的 Amazon EC2 執行個體上啟動任務。