如何从EB获取EC2实例以停止重新安装java 7?

时间:2018-02-27 04:19:37

标签: java amazon-web-services amazon-ec2 java-8 elastic-beanstalk

所以,基本上我有一个由Elastic Beanstalk创建的EC2实例,并且每周我都会通过SSH连接到它来卸载java 7并安装java 8.弹性beanstalk环境是为Node.js设置的,但是我有一个需要实例化的独立java程序。我尝试在rc.local中安装命令来安装java 8,但这根本不起作用。该文件现在返回其默认状态。在某些地方我可以将实例设置为默认为Java 8吗?有没有办法保持我通过SSH安装的安装?请帮助,我的网站因此而不断下降,我不确定该怎么办,谷歌也没什么帮助。

1 个答案:

答案 0 :(得分:2)

.ebextensions就是这样做的:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

.ebextensions在创建ec2实例的任何时候运行;所以脚本卸载java 7并安装java 8,你很高兴。

更多信息......

听起来你明白,EB一次又一次地自动销毁你的ec2实例并替换它。通常这是每周进行一次;看一下EB控制台 - >配置 - >托管更新。您可能会发现它说

Managed updates: enabled

Weekly update window: [some date/time here]

这是一件好事。 EB会自动为您安装重要的安全和其他更新。当它执行此操作时,它可能会替换您的ec2实例。这意味着:您手动安装java 8的ec2实例将被销毁,并创建一台全新的机器。这台全新的机器上安装了默认的java 7 ...现在你又需要手动SSH到这个新实例并安装8。

您需要的是一个脚本,它将在EB决定为您创建的所有新ec2实例上运行;每次手动SSH到ec2实例时,此脚本将遵循您正在执行的步骤。请注意,即使您关闭了托管更新,仍然可能(甚至可能)ec2实例被销毁。这是一个良好的基础设施设计的租户;如果ec2实例因任何原因出现问题,您的基础架构应自动在后台:

1。)启动新的ec2实例

2.)提供新的ec2实例

3。)将您的网站流量重新路由到新实例

4.。)停用旧的ec2实例

因此,在.ebextensions文件中,创建一个将卸载java 7并安装java 8的脚本,您将全部设置完毕。