同一个Beanstalk实例上的几个应用程序(即war文件)

时间:2011-03-10 06:06:23

标签: amazon-ec2 elastic-beanstalk

为了保守资源(和成本),我想在同一个EC2 beanstalk实例上放置一个以上的war文件(代表不同的应用程序)。

我希望使用warA将appl映射到myapp.elasticbeanstalk.com/applA,使用warB将appl B映射到myapp.elasticbeanstalk.com/applB

但是,控制台允许您为任何实例上传单个且唯一的战争。

1)所以,据我所知,当前界面无法实现。我是对的吗?

2)虽然可以通过“非标准”方式实现这一点:通过接口上传warA并通过ssh,ftp等将warB复制/更新到/ tomcat6 / webapps?

3)对于(2),我担心的是每次BT健康检查员决定终止实例(例如连续失败的检查)并重新启动一个新B时,B将丢失。然后我必须将warB作为applA使用的自定义AMI的一部分,并在每次更新warB时创建此AMI的新版本

请帮帮我

问候

didier

4 个答案:

答案 0 :(得分:3)

你是对的!你不能(还)在豆茎中发生多次战争。

亚马逊论坛答案就在这里 https://forums.aws.amazon.com/thread.jspa?messageID=219284

答案 1 :(得分:3)

虽然有一种解决方法,但不使用Beanstalk,而是使用简单的EC2:

https://forums.aws.amazon.com/thread.jspa?messageID=229121

http://blog.jetztgrad.net/2011/02/how-to-customize-an-amazon-elastic-beanstalk-instance/

无耻插件:虽然不是相关目录,但我已经为Maven 2制作了一个插件来自动化Beanstalk部署和Elastic MapReduce。查看http://beanstalker.ingenieux.com.br/

答案 2 :(得分:1)

这是一个老问题,但我花了一些时间才找到更新的答案,所以我想我会分享我的发现。

Elastic Beanstalk现在支持多个WAR部署(已经有一段时间了)。

只需创建一个新的zip文件,其中包含每个WAR文件。如果您希望其中一个在根上下文名称中可用,那么ROOT.war就像您手动部署到Tomcat一样。

您的zip文件结构应如下所示:

  

MyApplication.zip

     

├──.ebextensions

     

├──foo.war

     

├──bar.war

     

└──ROOT.war

详细信息请参见Elastic Beanstalk documentation

.ebextensions文件夹是可选的,可以包含自定义部署到您的环境的资源的配置文件。有关使用配置文件的信息,请参阅Elastic Beanstalk Environment Configuration

答案 3 :(得分:0)

另一个hack允许你通过安装java并使用node.js启动脚本来启动任意jar:

http://docs.ingenieux.com.br/project/beanstalker/using-arbitrary-platforms.html

希望有所帮助