本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon 上排程您的容器 ECS
Amazon Elastic Container Service (Amazon ECS) 是一種共享狀態、樂觀的並行系統,可為容器化工作負載提供彈性的排程功能。Amazon ECS排程器會使用與 Amazon 相同的叢集狀態資訊ECSAPI,以做出適當的置放決策。
Amazon 為長時間執行的任務和應用程式ECS提供服務排程器。它還提供為批次任務或單一執行任務執行獨立任務或排程任務的功能。您可以指定最符合您的需求的任何置放策略及執行任務的限制條件。例如,您可以指定任務跨多個可用區域或在單一可用區域內執行。另外,您還可以選擇性地將任務與您自己的自訂或第三方排程器整合。
選項 | 使用情況 | 其他資訊 |
---|---|---|
服務 | 服務排程器適用於長時間執行的無狀態服務和應用程式。服務排程器也會選擇性地確保任務是針對 Elastic Load Balancing 負載平衡器所註冊。您可以更新由服務排程器維護的服務。這其中可能包括部署新的任務定義或變更正在執行的所需任務數。根據預設,服務排程器會將任務分散至多個可用區域。不過,您可以使用任務置放策略和限制條件,來自訂任務置放決策。 | Amazon ECS服務 |
獨立任務 | 獨立任務適合執行工作然後停止的批次任務等程序。例如,您可以在工作進入佇列時讓處理序呼叫 RunTask 。任務會從佇列中提取工作、執行工作,然後結束。使用 RunTask ,您可以允許預設任務置放策略在您的叢集上隨機分配任務。這可能最大限度降低單一執行個體取得不成比例之任務數的機率。 |
Amazon ECS獨立任務 |
排程任務 | 當您在叢集中以設定的間隔執行任務時,排程的任務是合適的,您可以使用 EventBridge 排程器來建立排程。您可以為備份操作或日誌掃描執行任務。您建立的 EventBridge 排程器排程可以在指定時間在叢集中執行一或多個任務。您的排程事件可以設定為特定間隔 (每 N 分鐘、小時或天)。此外,對於更複雜的排程,您可以使用 cron 運算式。 |
使用 Amazon EventBridge Scheduler 排程 Amazon ECS任務 |
運算選項
透過 Amazon ECS,您可以指定任務或服務執行的基礎設施。您可以使用容量提供者策略或啟動類型。
對於 Fargate,容量提供者是 Fargate 和 Fargate Spot。對於 EC2,容量提供者是具有已註冊容器執行個體的 Auto Scaling 群組。
容量提供者策略會將您的任務分散至與叢集相關聯的容量提供者。
只有已經與叢集關聯並具有 ACTIVE
或 UPDATING
狀態的容量提供者,才能在容量提供者策略中使用。您可以在建立叢集時將容量提供者關聯到叢集。
在容量提供者策略中,選用的基準值會指明指定容量提供者上至少會執行多少任務數量。容量提供者策略中只有一個容量提供者可以定義基礎。
權重值會決定使用指定容量提供者其已啟動任務總數的相對百分比。請考量下列範例。您的策略包含兩個容量提供者,且兩者的權重值都是 1
。達到基準百分比時,任務會平均分配給兩個容量提供者。使用相同的邏輯,假設您1
為 capacityProviderA 指定 權重,為 capacityProviderB 4
指定 權重。然後,對於使用 capacityProviderA 執行的每個任務,有四個任務使用 capacityProviderB 。
啟動類型會直接在 Fargate 或您手動註冊到叢集的 Amazon EC2執行個體上啟動任務。