什么';在几个ec2实例上运行相同的github python代码的最佳实践是什么?
我在github上使用venv进行python repo,并希望在10+ec2实例上运行相同的代码(每个实例将有一个cronjob,它只在相同的时间表上运行相同的代码) 关于如何最好地实现这一点的任何建议+继续确保所有实例都获得github上的最新版本分支?我想尝试并自动化我需要执行的任何配置,这样我就不会这样做:什么';在几个ec2实例上运行相同的github python代码的最佳实践是什么?,python,amazon-web-services,docker,amazon-ec2,python-venv,Python,Amazon Web Services,Docker,Amazon Ec2,Python Venv,我在github上使用venv进行python repo,并希望在10+ec2实例上运行相同的代码(每个实例将有一个cronjob,它只在相同的时间表上运行相同的代码) 关于如何最好地实现这一点的任何建议+继续确保所有实例都获得github上的最新版本分支?我想尝试并自动化我需要执行的任何配置,这样我就不会这样做: 创建一个ec2实例,设置我需要的所有配置,比如下载最新的python版本,等等。然后git clone,使用venv设置我需要的所有python包。验证代码在此实例上是否有效 对剩
- 创建一个脚本,运行ssh到所有ec2实例中,并将git克隆/更新到正确的分支
- 使用Docker确保所有ec2实例都已正确设置,以便python代码正常工作(这是Docker的正确用例吗?)。上面的脚本将运行必要的Docker命令
- 使用venv和读取requirements.txt文件类似,因此所有ec2实例都有正确的python包和版本
根据您的应用程序和要求(是否100%需要EC2?),我可以推荐以下内容:
您多久更改一次ec2实例的数量?代码多久运行一次?代码多久更改一次?啊,很好的一点,这个用例是在10多台机器上运行的刮板,所以来自用户的外部流量不会是一个因素。它将尽可能多地运行,尽管实际上每天可能运行10-20个小时。EC2实例的数量现在很少会改变,可以认为它是固定的。不需要进行自动缩放,因为决定何时添加/删除实例以完成更多/更少的刮片将需要手动调用。另外,没有问题的是,启动和运行新实例最多需要几个小时。代码每周会更改2-3次。您多久更改一次ec2实例的数量?代码多久运行一次?代码多久更改一次?啊,很好的一点,这个用例是在10多台机器上运行的刮板,所以来自用户的外部流量不会是一个因素。它将尽可能多地运行,尽管实际上每天可能运行10-20个小时。EC2实例的数量现在很少会改变,可以认为它是固定的。不需要进行自动缩放,因为决定何时添加/删除实例以完成更多/更少的刮片将需要手动调用。另外,没有问题的是,启动和运行新实例最多需要几个小时。代码将每周更改2-3次。