3

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

假设我有 10 个 EC2 实例,它们都在运行基于 PHP/Java 的网站,并且该实例具有本地的 docroot。我可能想在一天中对其进行大量代码部署。

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

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

谢谢。

4

7 回答 7

4

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

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

于 2013-03-18T01:33:04.680 回答
3

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

它还内置了监控、负载均衡器、自动缩放。只需几个 Web 表单条目即可控制所有这些。

于 2013-03-18T06:45:28.487 回答
0

Capistrano 是一次将代码部署到多个服务器的绝佳工具。Chef 和 Puppet 是使用数据库、网络服务器等设置这些服务器的绝佳工具。

于 2013-03-18T09:56:09.710 回答
0

您是否考虑过使用旨在为您管理此类事情的工具,Puppet 在该领域备受推崇。

看看这里:

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

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

于 2013-03-18T01:45:17.590 回答
0

去 Capistrano 吧。它是在多台服务器上部署代码的好方法。

于 2013-03-18T12:43:21.917 回答
0

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

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

于 2015-11-27T19:53:46.377 回答
-1

您可以使用 Capsitrano 或 TravisCI。

于 2013-03-18T10:01:36.300 回答