AWS Elastic Beanstalk-如何在启动新码头工人之前停止上一个码头工人

时间:2020-03-28 01:33:54

标签: amazon-web-services docker amazon-elastic-beanstalk

我有一组使用基于Docker的Web服务器和工作服务器的AWS Elastic beantalk。我们设置的方式是docker内部的java进程在启动时分配70%的box内存。

现在,第一个部署可以正常工作,但是当我尝试使用就地滚动更新来更新应用程序版本时,Elastic beanstalk尝试在停止现有容器之前,先用java进程启动另一个docker容器。由于Java服务器无法分配所需的内存,因此部署失败。在部署期间启动新实例之前,有什么方法可以设置AWS来杀死旧的docker实例?

我什至尝试了附加批处理的滚动,但是该批处理仅适用于第一批,而随后的批处理则失败。

1 个答案:

答案 0 :(得分:1)

不可变的更新可能是您的理想之选,它基本上可以在每次部署时完全重新创建EC2实例

  1. 打开Elastic Beanstalk控制台。
  2. 导航到您环境的管理页面。
  3. 选择配置。
  4. 在“滚动更新和部署”配置类别中, 选择“修改”。
  5. 选择不可变的部署策略
  6. 应用

您可以查看有关其工作原理的更多信息here