【发布时间】:2016-01-11 18:51:10
【问题描述】:
我是否可以在不停机的情况下在 EC2 中更新我的应用程序?或者像暂停但不重启之类的东西
【问题讨论】:
-
问题太宽泛了。您应该详细说明您的应用外观以及您尝试部署的方式
标签: amazon-web-services amazon-ec2
我是否可以在不停机的情况下在 EC2 中更新我的应用程序?或者像暂停但不重启之类的东西
【问题讨论】:
标签: amazon-web-services amazon-ec2
AWS Elastic Beanstalk 可以用来实现这一点。
正如here 所述,这个想法是用您的应用程序的最新版本创建一个新环境,并在部署后交换当前生产环境和新部署的生产环境的 CNAME,从而实现零停机时间。
【讨论】:
如果您只有一个 EC2 实例并且您的应用程序是 Web 应用程序,您可以将您的应用程序 dockerize 并使用任何 Web 代理在 docker 容器之间进行切换,并且停机时间为零。
假设您的应用位于 docker 容器 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 中的回答。那里的脚本和我在这里所说的一样。
【讨论】: