EC2上的代码部署

时间:2013-03-18 01:29:55

标签: amazon-web-services amazon-s3 amazon-ec2 amazon-cloudfront continuous-deployment

在EC2上部署AMI有相当多的资源。但对于基于PHP / Java的网站的增量代码更新是否有任何解决方案?

假设我有10个EC2实例都运行基于PHP / Java的网站,并且实例具有本地的docroot。我可能希望在一天之内完成大量的代码部署。

我不希望创建新的AMI副本,并在每次更新代码时将其扩展到新实例。

如何最好地做到这一点的任何线索将不胜感激。我们使用subversion作为我们的主要代码存储库,过去我们只是在一到两台服务器上完成了SVN update / co。

感谢。

7 个答案:

答案 0 :(得分:4)

你应该查看Elastic Beanstalk。基本上,您只需打包WAR或其他代码文件,通过AWS的命令行/ Eclipse集成将其上传到存储桶,并自动执行部署。

http://aws.amazon.com/elasticbeanstalk/

答案 1 :(得分:3)

Elastic Beanstalk正是为您而设计的。我们使用Elastic Beanstalk java / tomcat风格,但它也支持php,ruby,python环境。它有一个Web控制台,允许您部署代码(甚至保留它的历史记录),它还有git工具从命令行部署代码。

它还具有监控,负载均衡器,内置的自动扩展功能。只有少数Web表单条目可以控制所有这些。

答案 2 :(得分:0)

您是否考虑过使用专门为您管理此类事情的工具,Puppet在这方面备受推崇。

看看这里:

https://puppetlabs.com/puppet/what-is-puppet/

(不,我不是Puppet Labs员工:))

答案 3 :(得分:0)

Capistrano是一个很好的工具,可以同时将代码部署到多个服务器上。 Chef和Puppet是使用数据库,Web服务器等设置这些服务器的绝佳工具。

答案 4 :(得分:0)

去Capistrano。这是在多个服务器上部署代码的好方法。

答案 5 :(得分:0)

如前所述,如果您只是想要一个网络服务器并且不想担心细节,Elastic Beanstalk是一个不错的选择。

另外,请查看AWS CodeDeploy。您可以更好地控制实例的生命周期,并且您将看到与您现在拥有的非常类似的东西(您设置的一组EC2实例)。您甚至可以使用Auto Scaling在实例启动时自动部署。

答案 6 :(得分:-1)

您可以使用Capistrano或Travis CI。