如何在新的EC2实例上使用CodeDeploy部署现有应用程序

时间:2014-12-27 18:04:49

标签: amazon-web-services amazon-ec2 aws-opsworks codeship aws-code-deploy

当新的应用版本用完时,我使用CodeShip将我的应用部署到AWS EC2实例。 CodeShip首先将我的应用程序打包成.zip并将其放入S3。 正在使用不同的文件名生成每个部署包。 当我使用CodeShip部署时,他们会在 CodeDeploy 中创建一个新版本,并将其部署到所有当前实例。

在一个方向上,每次部署新版本时,它都会部署到我已经完成的所有实例,但是如何将我的应用程序的最新版本从CodeDeploy部署到新生成的实例? 有没有办法使用aws-sdk(Ruby或cli)来实现这个目标?

我使用OpsWorks来维护我的实例,并使用自定义Chef cookbook来构建环境。

由于

2 个答案:

答案 0 :(得分:1)

由于您有一组希望运行相同应用程序的EC2实例,请考虑使用AutoScaling组(ASG)。然后,基于ASG(而不是EC2实例标记)创建部署组。下次在此ASG中启动任何新计算机时,Code Deploy将自动运行并部署上一个成功的部署程序包。我已经使用这种方法已经好几个月了,而且效果很好。

答案 1 :(得分:0)

从CodeDeploy http://aws.amazon.com/codedeploy/faqs/,如果您转到概念部分并查看问题“什么是部署组”,在答案中您将更多地了解部署组的工作原理。

CodeDeploy使用部署组中的标记在创建新部署时查找EC2实例。因此,对于新生的实例,基本上您只需要在该部署组中使用相同的标记标记它们,然后使用所需的修订启动新部署。 CodeDeploy将查找在部署组中使用标记标记的所有EC2实例。

但是你应该注意到这一点,如果你想手动启动一个新的EC2实例,你需要做几件事。您可以按照此处的步骤操作:http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-prepare-instances.html以启动与CodeDeploy一起使用的实例。

在标记并正确设置实例后,您可以使用最新版本启动新部署作为当前的方式。修订应由CodeDeploy自动部署到新实例。