避免ec2停机并重定向到静态页面的最佳实践

时间:2016-04-20 07:45:02

标签: amazon-web-services amazon-ec2

我们正在使用弹性豆茎

环境细节
环境类型:负载平衡,自动缩放
数字实例:1 - 10
基于平均CPU利用率的比例
在>时添加实例84个
当<时删除实例20

实例类型:m1.small
根卷类型:通用(SSD)
可用区域:任何
环境变量:PARAM3,PARAM2,PARAM1,PARAM5,PARAM4,AWS_SECRET_KEY,AWS_ACCESS_KEY_ID
日志发布:On 启用32位应用程序:错误
目标运行时:4.0

应用程序部署批量大小:100%
滚动更新已禁用

应用程序运行状况检查URL:/
负载平衡
端口:端口80上的HTTP 港口:80
安全端口:端口443上的HTTPS 安全港口:443
运行状况:端口80上的请求/通过HTTP 禁用跨区域负载平衡
连接耗尽已禁用

可用区:us-west-2a

我们确实有另一个Ec2 - Linux - 托管数据库:

实例类型
的m1.small
可用区域
美西-2A
背景
2015-10-12
Windows实例报告不健康且无法访问/响应亚马逊服务 新实例花费时间12-15分钟进行初始化 状态检查,网络检查,亚马逊的应用程序加载,它没有通过,一个检查通过,然后再次设置为0

清除状态检查后,我们的应用程序已部署,在部署后的几分钟内,网站就已启动并运行。

状态检查失败的原因未知。我找不到有关延迟的任何信息。通过S3无法获得上一个不健康的实例的日志。

我没有执行任何手动步骤来加快部署过程,因为在Windows实例未通过状态检查之前,无法执行任何操作。如果我重置,则需要同样的时间来初始化并执行状态检查。

我在停电期间没有执行任何手动重置,我正在收集日志,密切关注正在发生的事情,检查实例是否可以通过互联网访问。没有采取任何措施,并且在加载新实例并完成两个状态检查后问题自动得到解决。

现在,我们不知道问题的原因。随附的是该问题的屏幕截图。问题:

1)Load Balancer没有任何功能可以在停电期间将流量重定向到外部甚至备用内部网站(链接:https://forums.aws.amazon.com/thread.jspa?threadID=72363)。有没有办法在Amazon实例关闭且不健康的情况下自动将Load Balancer重定向到静态页面或任何其他主机?

2)在我们的实例未运行且如何快速恢复的情况下该怎么办,使用当前配置,获取新实例需要12-15分钟,另外需要4-6分钟才能自动获取应用程序展开。

3)为什么状态检查失败,网络,流量或CPU没有峰值。只有Windows实例无法访问且Linux可以访问

4)亚马逊终止非健康实例并添加一个新实例。我想在正常流量/ CPU使用期间只保持1个Windows实例运行。在实例被EC2扩展规则自动终止之前,是否有任何功能/方法来获取日志?

图片1:

Image-1

图片2:

Image-2

图3:

Image-3

图片4:

Image-4

图片5:

Image-5

1 个答案:

答案 0 :(得分:2)

  

1)Load Balancer没有任何功能可以在停机期间将流量重定向到外部甚至备用内部网站。(链接:https://forums.aws.amazon.com/thread.jspa?threadID=72363)是否有办法自动将Load Balancer重定向到静态页面或任何其他主机,如果亚马逊实例已关闭且不健康?

     

2)在我们的实例未运行且如何快速恢复的情况下该怎么做,使用当前配置,获取新实例需要12-15分钟,另外需要4-6分钟才能自动获取我们的应用程序展开。

始终运行两个实例,并在route53中设置DNS以指向其中一个实例。另一个是你的“热备”

如果出现错误情况,请将route53更改为切换服务器。

请参阅此博客文章,了解如何使用AWS Lambda https://aws.amazon.com/blogs/compute/building-a-dynamic-dns-for-route-53-using-cloudwatch-events-and-lambda/

实现此目的