Amazon ECS
AWS Fargate 用户指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

计划 Amazon ECS 任务

Amazon Elastic Container Service (Amazon ECS) 是一个共享状态的乐观并发系统,可为您的任务和容器提供灵活的计划功能。Amazon ECS 计划程序利用由 Amazon ECS API 提供的相同集群状态信息来制定适当的放置决策。

每个使用 Fargate 启动类型的任务都具有自己的隔离边界,不与其他任务共享底层内核、CPU 资源、内存资源或弹性网络接口。

Amazon ECS 提供的服务计划程序(用于长期运行的任务和应用程序)可以手动运行任务(用于批处理作业或单个运行任务),并通过 Amazon ECS 将任务放置在您的集群上。您可以指定任务放置策略和约束,以允许您在选择的配置中运行任务,例如在各个可用区域上展开任务。还可以集成自定义或第三方计划程序。

服务计划程序

服务计划程序非常适用于长时间运行的无状态服务和应用程序。服务计划程序可确保您指定的计划策略得以遵循并在任务失败时(例如,在底层基础设施因某个原因失败的情况下)重新计划任务。

There are two service scheduler strategies available:

  • REPLICA—The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see 副本.

  • DAEMON—The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. When using this strategy, there is no need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see 守护程序.

    注意

    Fargate tasks do not support the DAEMON scheduling strategy.

此外,服务计划程序可以选择性地确保针对 Elastic Load Balancing 负载均衡器注册任务。您可以更新由服务计划程序维护的服务,例如,部署新的任务定义或更改正在运行的所需任务数。默认情况下,服务计划程序可在多个可用区之间分布任务,但您可以使用任务放置策略和约束自定义任务放置决策。有关更多信息,请参阅 服务

手动运行任务

RunTask 操作非常适用于诸如执行工作然后停止的批处理作业这样的流程。例如,您可以拥有在工作进入队列时调用 RunTask 的流程。任务从队列中拉取工作、执行工作,然后退出。可以使用 RunTask 允许默认任务放置策略在集群中随机分配任务,最大程度地减小单一实例获得不成比例数量的任务的机会。您还可以使用 RunTask 自定义计划程序如何使用任务放置策略和约束放置任务。有关更多信息,请参阅 Amazon Elastic Container Service API Reference 中的正在运行的任务RunTask

以类似 cron 的计划运行任务

如果需要在集群中以设定的时间间隔运行任务,例如备份操作或日志扫描,则可以使用 Amazon ECS 控制台创建 CloudWatch Events 规则,以便在指定的时间在集群中运行一个或多个任务。您可以将计划事件规则设置为特定的时间间隔 (每 N 分钟、小时或天运行一次);而对于更复杂的计划,可以使用 cron 表达式。有关更多信息,请参阅排定的任务 (cron)