自定义 Elastic Beanstalk 实例

我们正在 Elastic Beanstalk 中部署一个 java Web 应用程序。默认情况下,Beanstalk 为 Redhat 实例提供 Tomcat7 和 openjdk。但是我想自定义实例,以便我可以使用Sunjdk。按照这里提到的步骤,我从EC2启动了一个新实例,并安装了sun jdk,tomcat7,并创建了该实例的自定义AMI,并在BeanStalk的编辑环境配置中的自定义AMI id字段中提供了其ID。但是我的环境运行状况状态更改为 RED,并且未部署应用程序。你能给我一个解决方案吗?


答案 1

我已经完全做到了你想做的事情,并且很高兴地报告它有效。在我的第一次尝试中,我遇到了同样的问题。请确保您:

  • 从您从 EC2 手动启动的 Amazon Beanstalk AMI 的运行实例创建自定义 AMI,而不是从通过 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“编辑配置”的“容器”配置区域中的值来解决的。


答案 2

推荐