Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

计划 Amazon ECS 任务

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

Amazon ECS 提供服务计划程序 (适用于长时间运行的任务和应用程序)、手动运行任务的能力 (适用于批处理作业或单次运行任务)、通过 Amazon ECS 将任务放置在集群上、以及在您指定的容器实例上运行任务的能力,这样您就可以与自定义或第三方计划程序集成,或将任务手动放置在特定的容器实例上。

服务计划程序

服务计划程序非常适用于长时间运行的无状态服务和应用程序。服务计划程序可确保指定数量的任务将持续运行并在任务失败时(例如,在基础容器实例因某个原因失败的情况下)并重新计划任务。此外,服务计划程序可以选择性地确保针对 Elastic Load Balancing 负载均衡器注册任务。您可以更新由服务计划程序维护的服务,例如,部署新的任务定义或更改正在运行的所需任务数。默认情况下,服务计划程序可在多个可用区之间分布任务,但您可以使用任务放置策略和约束自定义任务放置决策。有关更多信息,请参阅 服务

手动运行任务

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

以类似 cron 的计划运行任务

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

自定义计划程序

Amazon ECS 允许您根据业务需要自行创建计划程序,或者利用第三方计划程序。Blox 是一个开源项目,将 Amazon ECS 上的应用程序容器化时可以进行更好地控制。它允许您构建计划程序并将第三方计划程序与 Amazon ECS 集成,同时利用 Amazon ECS 完全管理集群并控制集群规模。自定义计划程序使用 StartTask API 操作将任务置于群集中特定的容器实例上。有关更多信息,请参阅 Amazon EC2 Container Service API Reference 中的 StartTask

任务放置

RunTaskCreateService 操作允许您指定任务放置约束和任务放置策略,以自定义 Amazon ECS 放置任务的方式。有关更多信息,请参阅 Amazon ECS 任务放置