无需停机即可更新 AWS EC2

Posted

技术标签:

【中文标题】无需停机即可更新 AWS EC2【英文标题】:AWS EC2 update without downtime 【发布时间】:2016-01-11 18:51:10 【问题描述】:

我是否可以在不停机的情况下在 EC2 中更新我的应用程序?或者像暂停但不重启之类的东西

【问题讨论】:

问题太宽泛了。您应该详细说明您的应用外观以及您尝试部署的方式 【参考方案1】:

AWS Elastic Beanstalk 可以用来实现这一点。

正如here 所述,这个想法是用您的应用程序的最新版本创建一个新环境,并在部署后交换当前生产环境和新部署的生产环境的 CNAME,从而实现零停机时间。

【讨论】:

【参考方案2】:

如果您只有一个 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://***.com/a/33085105/3427434 中的回答。那里的脚本和我在这里所说的一样。

【讨论】:

以上是关于无需停机即可更新 AWS EC2的主要内容,如果未能解决你的问题,请参考以下文章

无需停机即可配置谷歌云负载均衡器和托管 SSL

为啥AWS弹性beantalk滚动版本更新仍然有503s的2分钟停机时间?

sh 使用iptables规则进行IP转发以更新DNS而无需停机时间\o /

AWS - ECS - 如何在现有 ECS(带有 1 个 EC2)实例上重新部署更新的 Docker 映像?

将 PHP 版本 5.3 更新到 7.2 Amazon aws ec2

EC2的维护更新