在EC2上部署AMI有相当多的资源。但对于基于PHP / Java的网站的增量代码更新是否有任何解决方案?
假设我有10个EC2实例都运行基于PHP / Java的网站,并且实例具有本地的docroot。我可能希望在一天之内完成大量的代码部署。
我不希望创建新的AMI副本,并在每次更新代码时将其扩展到新实例。
如何最好地做到这一点的任何线索将不胜感激。我们使用subversion作为我们的主要代码存储库,过去我们只是在一到两台服务器上完成了SVN update / co。
感谢。
答案 0 :(得分:4)
你应该查看Elastic Beanstalk。基本上,您只需打包WAR或其他代码文件,通过AWS的命令行/ Eclipse集成将其上传到存储桶,并自动执行部署。
答案 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。