我们正在 Elastic Beanstalk 中部署一个 Java Web 应用程序。Beanstalk 默认为 Redhat 实例提供 Tomcat7 和 openjdk。但我想自定义实例以便我可以使用 Sunjdk。按照此处提到的步骤,我从 EC2 启动了一个新实例并安装了 sun jdk、tomcat7 并创建了该实例的自定义 AMI,并在 BeanStalk 中的编辑环境配置中的自定义 AMI id 字段中提供了它的 ID。但是我的环境健康状态正在更改为 RED,并且应用程序未部署。你能建议我解决这个问题吗?
问问题
4932 次
1 回答
12
我已经完成了您想做的事情,并且很高兴地报告它有效。在我的第一次尝试中,我遇到了同样的问题。确保您:
- 从您从 EC2 手动启动的 Amazon beanstalk AMI 的运行实例创建您的自定义 AMI ,而不是从通过 beanstalk 启动您的应用程序启动的实例。这非常重要,因为刷入 beanstalk 启动的 EC2 实例将不起作用!!
- 按照这些说明安装 Sun 的 Java,以确保所有环境和符号链接都是正确的。 https://forums.aws.amazon.com/message.jspa?messageID=251168#251168
- 请耐心等待,因为我发现由于某种原因,Tomcat 的启动时间比默认的 OpenJDK 配置要长。
如果您仍然无法获得它,请确保检查 /opt/tomcat7/logs/catalina.out 中的日志 - 我遇到了一个神秘的 VerifyException,该异常已通过将新的 .jar 上传到环境来解决,我也用完了permgen 空间几乎立即消失,这是通过增加 beanstalk 'edit configuration' 的 'Container' 配置区域中的值来解决的。
于 2011-11-11T22:59:48.987 回答