我想知道什么是用于调度、执行和监视我的批处理过程的最佳AWS服务:
-
带有crontab的EC2机器
:这里没有高可用性函数,所以我决定改用更多的PaaS方法。
-
然后,我用了
-
但现在,为了提高效率,我决定搬到一些
ECS服务
,并且采用了一种方法,我不需要让EC2实例在23/24的情况下无缘无故地唤醒。所以我试过法盖特。
-
我定义了我的任务(Fargate类型,而不是EC2类型),并对其进行了配置。
-
我创造了一个
集群
现在,深入法盖特,我想让我的任务每天执行一次。
-
当我使用
计划任务
ECS特点:容器准时启动,进程运行,容器停止。但是CloudWatch缺少一些指标:CPUReservation和CPUUtilization没有报告。此外,无法知道批处理是否退出,退出代码为0或1(所有执行都已停止,状态为“stopped”)。所以如果容器执行失败,我就不能发送CloudWatch警报。
-
我使用Fargate的“服务”特性,但它不能处理批处理过程,因为容器每次停止时都会启动。这是正常的,因为容器没有任何守护进程。没有办法安排服务。我希望我的容器只有在需要工作时才处于活动状态(每天一次,最多1小时)。但CloudWatch中正确地报告了缺失的指标。
下面是我的问题:什么是最合适的AWS托管服务来每天触发一次容器,让它运行来执行任务,并有报告工具来跟踪执行(CPU使用率、批处理持续时间),包括任务失败时的警报(SNS)?