gpt4 book ai didi

docker - 使用Docker启动EC2,运行脚本并关闭

转载 作者:行者123 更新时间:2023-12-02 20:11:46 25 4
gpt4 key购买 nike

嗨,Stackoverflow社区,我对将Docker与AWS EC2结合使用有疑问。我对EC2感到满意,但对Docker来说是一个新手。我使用Python 3.6编写代码,并希望自动执行以下过程:

1:使用Docker启动EC2实例(存储在ECR中的Docker镜像)

2:运行一次性过程并以CSV格式返回结果(我们称其为“T”)

3:将“T”存储在AWS S3中

4:关闭EC2

使用EC2实例的原因是因为该过程的计算量很大,并且对于我的本地计算机不可行。 Docker的原因是确保团队和CI设施之间的开发环境相同(当前使用circle.ci)。我知道与AWS的交互通常可以使用Boto3完成。

我一直在阅读有关AWS自己的ECS的信息,我觉得它更适合于使用Docker部署Web应用程序,而不是运行一次性流程。但是,当我搜索EC2 + Docker时,只有ECS出现了。我也已经在AWS中完成了本教程,但并没有太大帮助。

我还考虑过使用shell脚本运行EC2(即下载docker,拉镜像,构建容器等),但感觉有点hacky?因此,我的问题是:

1:ECS确实是他的方案中最合适的解决方案吗? (或者换句话说,ECS是为此类操作设计的?)

2:是否有一些使用ECS设置和运行一次性流程的示例? (我发现设置确实令人困惑,尤其是所使用的术语)

3:还有哪些其他选择(如果有)?

非常感谢你的帮助!

最佳答案

不了解您的流程;我想为您提出2种选择。

  • 使用Lambda

  • 在您的过程需要计算密集型的情况下,这可能不是一个可行的选择。但是,如果可以分发的话,Lambda很棒。您可以找到有关资源限制 here的更多信息。通过这种方法,您只需编写Python 3.6代码来执行任务,然后将“T”写入S3。
  • 使用数据管道

  • 使用 Data Pipeline,您可以构建自定义AMI(EC2)并将其用作镜像。然后,您可以指定运行此过程所需的EC2 resource的大小。听起来您的过程将非常简单。您需要定义:
  • EC2资源
  • 指定AMI,角色,安全组,实例类型等。
  • ShellActivity
  • 根据需要引导EC2实例
  • 抓取您的S3,GitHub等代码表
  • 执行您的代码(包括在将“T”写入S3的代码中)

  • 您还可以安排管道以一定的间隔/时间表运行,或直接从 boto3调用它。

    关于docker - 使用Docker启动EC2,运行脚本并关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46298801/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com