什么是最好的方式替换实例没有停机?

时间:2014-10-04 09:36:31

标签: amazon-web-services elastic-beanstalk

我在部署新版应用程序时遇到问题:超时错误,应用程序未更新(但应用程序仍在运行)

我想知道服务器上的amazon工具是否正常工作。为了实现这一点,我需要启动新实例并终止旧实例(因此它将没有停机时间)

在没有停机的情况下更换实例的最佳方法是什么?

P.S。超时是最大值(30分钟,日志中的实例根本没有关于新部署的信息)

3 个答案:

答案 0 :(得分:7)

IMHO以零停机时间替换您的实例的最佳方式是使用URL交换;这是在两个就绪环境之间交换CNAME的简单操作。

Read more at AWS

部署零停机时间版本(简短版本)

  1. 复制Alpha环境配置。
  2. 根据Alpha配置创建Omega环境。
  3. 使用您的hosts文件确保Omega环境正常运行(通过ping您的Elastic Beanstalk提供的URL获取IP,即 omega.elasticbeanstalk.com )。
  4. 交换网址
  5. 测试Omega并确保Alpha监控报告零流量。
  6. 在EC2界面中终止您的Alpha实例,强制重建实例。
  7. 等待重建完成并换回URL的
  8. 终止Omega环境

答案 1 :(得分:1)

使用URL交换替换实例并不总是很简单。您可能具有需要复制到新环境的自定义环境配置集。此外,可能还需要更改安全组设置,以使新环境正常工作。

我建议暂时更改实例大小,而不是调整自动缩放设置。例如。从t2.micro移动> t2.small然后回来。这将在每次更改时交换所有实例。

是的,交换所需的10-20分钟会收取更多费用!但实际上它应该是微不足道的。

答案 2 :(得分:0)

所以最简单的方法就是增加2倍的实例数并减少,所以新的实例会保持不变而旧实例会被终止