为了保守资源(和成本),我想在同一个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
答案 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
希望有所帮助