Java 自定义弹性Beanstalk实例

Java 自定义弹性Beanstalk实例,java,amazon-ec2,amazon-web-services,amazon-elastic-beanstalk,Java,Amazon Ec2,Amazon Web Services,Amazon Elastic Beanstalk,我们正在Elastic Beanstalk中部署一个java web应用程序。默认情况下,Beanstalk使用Tomcat7和openjdk提供Redhat实例。但是我想定制实例,以便使用Sunjdk。 按照前面提到的步骤,我从EC2启动了一个新实例&安装了sunjdk和tomcat7,并创建了该实例的自定义AMI,并在BeanStalk中编辑环境配置的自定义AMI ID字段中提供了它的ID。但是我的环境健康状态正在更改为红色,并且应用程序未部署。您能为我提供一个解决方案吗。我已经完成了您想要

我们正在Elastic Beanstalk中部署一个java web应用程序。默认情况下,Beanstalk使用Tomcat7和openjdk提供Redhat实例。但是我想定制实例,以便使用Sunjdk。
按照前面提到的步骤,我从EC2启动了一个新实例&安装了sunjdk和tomcat7,并创建了该实例的自定义AMI,并在BeanStalk中编辑环境配置的自定义AMI ID字段中提供了它的ID。但是我的环境健康状态正在更改为红色,并且应用程序未部署。您能为我提供一个解决方案吗。

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

  • 从从EC2手动启动的Amazon beanstalk AMI的运行实例创建自定义AMI,而不是通过beanstalk启动应用程序启动的实例。这一点非常重要,因为闪烁beanstalk启动的EC2实例将不起作用
  • 按照这些说明安装Sun的Java,以确保所有环境和符号链接都是正确的
  • 耐心点,因为某种原因,我发现Tomcat比默认的OpenJDK配置需要更长的时间来启动

如果仍然无法获取,请确保在/opt/tomcat7/logs/catalina.out中检查日志-我遇到了一个神秘的VerifyException,该异常通过将新的.jar上载到环境中得到解决,而且我几乎立即用完了permgen空间,这是通过增加beanstalk“编辑配置”的“容器”配置区域中的值来解决的。

我想他们在这里输入的是第一点:我一直在启动beanstalk实例,自定义它,然后保存AMI,这不起作用!是的,这是关键。增加了一些粗体字来突出显示。你能详细说明一下第一点吗?如何从ec2手动启动beanstalk实例?谢谢@Gevorg进入EC2区域,然后从beanstalk AMI启动一个实例(进入“community AMIs”区域,搜索beanstalk,然后根据所需环境找到所需的beanstalk)