amazon-web-services - 安排 Docker 映像在 AWS ECS 上定期运行?
问题描述
如何安排 docker 映像使用 ECS 定期(每小时)运行,而不必使用持续运行的 EC2 实例 + cron?我有一个包含第三方二进制文件和 python 项目的 docker 映像。
后一种方法长期不可行,因为实例 24/7 运行成本很高,而脚本调用仅持续约 3 分钟,仅用于一天中的一小部分时间。
解决方案
对于 AWS ECS 集群,建议至少有 1 台 24x7 运行的 EC2 服务器。您是否查看过 AWS Fargate 是否可以运行您的 docker 容器?还有 AWS Batch?如果 Fargate 和 AWS Batch 不可行,那么根据您的要求,我建议在没有 ECS 的情况下使用类似的方法。
使用预构建的 docker 和所需的软件和库构建 EC2 AMI。
让 AWS Instance Scheduler 每小时启动一个 EC2 服务器,并作为用户数据的一部分,使用您提到的图像启动一个 docker 容器。 https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/
如果你知道你的任务执行时间可能是 5 分钟。8 或 10 分钟后,然后使用调度程序关闭服务器。
上述方法将盲目地启动 EC2 并停止它,而不知道您的 python 工作是否成功完成。我们仍然可以通过 Lambda 和 CloudFormation 模板组合进行上述改进。让我知道你的想法 :)
推荐阅读
- javascript - Prev/Next 循环遍历 li 类处于活动状态的列表
- python - 使用 pytube 和 tkinter 在画布中显示 youtube 视频的缩略图
- purescript - 为什么将 try 与 affjax 的 XHRError 结合使用会导致错误类型不匹配?
- swift - Placenote Swift - 加载同一张地图后位置错误
- android - 单个 ImageButton 上的多个可绘制对象
- python - 展开多列
- kubernetes - Kops 和 Terraform k8s 集群重新创建
- android - 检查用户是否首次通过 Android 中的 Firebase 手机身份验证进行身份验证
- java - 警告:指定的 SHA1 算法和 SHA1withRSA 算法将在以后的更新中禁用
- c# - Unity - 在面对目标时添加了额外的偏移量,Rotate() 与 transform.rotation 之间可能存在差异?