2014-10-04 77 views
2

我有部署新版本的应用程序的问题:超时错误,应用程序未更新(但应用程序仍在运行)什么是最好的方式取代没有停机时间的情况?

我有一个想法,检查服务器上的亚马逊工具是否正常工作。为了做到这一点,我需要启动新的实例并终止旧的(所以它将没有宕机)

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

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

回答

0

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

+0

尽管这种方法有效,但我有时间花了2个小时添加和删除实例,但仍然存在问题。 你很幸运。 – 2014-10-27 13:38:40

+0

当你只有2个实例时,其约有50%的机会将被亚马逊移除,你想要的东西:) – Eugene 2014-11-02 16:07:40

+4

EC2中的终止策略可以配置为使得“OldestInstance”首先被终止(在自动调整组内):http:// docs。 aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingBehavior.InstanceTermination.html – cfeduke 2015-12-28 14:58:51

6

恕我直言,用零宕机代替您的实例的最佳方式是使用URL交换;这是在两个准备好的环境之间交换CNAME的简单操作。

Read more at AWS

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

  1. 复制阿尔法环境配置。
  2. 基于Alpha配置创建Omega环境。
  3. 确保使用您的hosts文件,Omega环境正常运行(通过ping您的Elastic Beanstalk提供的URL来获得IP,例如omega.elasticbeanstalk.com)。
  4. 交换URL的
  5. 测试欧米茄并确保Alpha监测报告零流量。
  6. 在EC2界面中终止您的Alpha实例,强制重建实例。
  7. 等待重建完成并交换回URL的
  8. 终止欧米茄环境
+0

它是有道理的,我听说过它,感谢您的指示,乔治 – Eugene 2014-10-11 11:41:58

1

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

与其调整自动缩放设置,我建议暂时更改实例大小。例如。从t2.micro> t2.small移动然后返回。这将交换所有实例与每个更改。

是的,您需要在10-20分钟内收取更多费用!但它应该是微不足道的。

+0

它会首先添加这些小实例,然后停止微或关闭所有微,并同时开始小?(在这种情况下,我们将有停机时间) – Eugene 2016-06-22 13:29:47

+1

它会暂时加倍您的自动缩放最小大小值,并添加所有新服务器。然后当他们准备好时,它会关闭旧的。所以不会有停机。 :) – 2016-06-23 04:11:39

相关问题