在 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 Scheduler 创建计划。您可以为备份操作或日志扫描运行任务。您创建的 EventBridge Scheduler 计划可以在指定时间在集群中运行一个或多个任务。您的调度事件可以设置为特定的时间间隔(每 N 分钟、小时或天运行一次)。否则,对于更复杂的调度,您可以使用 cron 表达式。 使用 Amazon EventBridge 调度器计划 Amazon ECS 任务

计算选项

通过 Amazon ECS,您可以指定运行任务或服务的基础设施。您可以使用容量提供程序策略或启动类型。

对于 Fargate,容量提供程序是 Fargate 和 Fargate Spot。对于 EC2,容量提供程序是具有已注册容器实例的自动扩缩组。

容量提供程序策略将您的任务分配给与您的集群关联的容量提供程序。

只有已与集群关联且状态为 ACTIVEUPDATING 的容量提供程序才能在容量提供程序策略中使用。在创建集群时,您可以将容量提供程序与集群相关联。

在容量提供程序策略中,可选基准值指明在指定的容量提供程序上至少运行多少个任务。在一个容量提供程序策略中,只能有一个容量提供程序策略定义了基准。

权重值指明使用指定容量提供程序的已启动任务总数的相对百分比。考虑以下示例。您的策略包含两个容量提供程序,并且两者的权重均为 1。当满足基准百分比时,任务会在两个容量提供程序之间均匀分配。按照相同的逻辑,假定您指定 capacityProviderA 的权重为 1,并指定 capacityProviderB 的权重为 4,那么,对于使用 capacityProviderA 运行的每个任务,都会有四个任务使用 capacityProviderB

启动类型会直接在 Fargate 或您手动注册到集群的 Amazon EC2 实例上启动您的任务。