我是否可以在没有停机的情况下在EC2中更新我的应用程序?或者像暂停但不重启
之类的东西答案 0 :(得分:2)
AWS Elastic Beanstalk可用于实现此目的。
如here所述,这个想法是使用最新版本的应用创建一个新环境,一旦部署,就交换当前生产环境的CNAME和新部署的CNAME,从而实现零 - 停机时间。
答案 1 :(得分:1)
如果您只有一个EC2实例且您的应用程序是Web应用程序,您可以将您的应用程序停靠并使用任何Web代理在停靠器容器之间切换,并且停机时间为零。
假设您的应用位于泊坞广告容器A:
Internet --> Nginx Proxy --> Container A
更新应用时,需要将其部署在新容器B上:
Internet --> Nginx Proxy --> Container A
Container B
重新配置您的代理以切换到容器B,在Nginx中,您可以service nginx reload
而不会杀死Nginx:
Internet --> Nginx Proxy Container A
`--> Container B
删除旧容器A:
Internet --> Nginx Proxy --> Container B
而且,您的停机时间部署为零。
在https://stackoverflow.com/a/33085105/3427434中查看我的答案。那里的剧本和我在这里讲的一样。