我正在使用AWS免费套餐,如果我理解正确的话,它将为我提供一个免费的EC2微型实例和一个免费的Elastic Load Balancer。
我知道,通常ELB是在使用多个EC2实例时使用的。 我真的不想运行多个实例,如果我可以帮助它的话,90%的时间我的单个EC2实例似乎处理的stream量,但偶尔它得不到响应,需要重新启动。 它似乎没有自动做到这一点。
我读了ELB将重新启动它称为“不健康”(不响应多个ping尝试)的microinstances。 所以我有一个想法是创build一个单一的ELB,分配我的单一EC2,并在其中创build一个简单的“自动重启,如果它卡住”的情况。
我已经设置了它,并没有阻止或吠叫我,但我想知道我是否理解这个权利。 我对服务器pipe理相当陌生,只是进入微观实例和ELB等概念,尽pipe(像所有的傻瓜),我想我理解它的基本知识。
这是一个好主意吗? 有没有更简单的方法来完成这个? 我试图Google和search其他人做同样的事情,没有find任何人,但我不能告诉是否这是因为它不会工作,或者因为没有人是愚蠢的尝试使用单个EC2微型实例所有的交通。 我深信这是一个坏主意,因为我没有看到其他人在谈论这个问题,虽然我对某些事情相当聪明,但是我对这些事情没有太多的自信。
谢谢你的帮助!
Amazon的Elastic Load Balancer(ELB)将请求分发给已分配给它的健康实例。 它不会重新启动或修改这些实例(或其编号)。 它通过健康检查确定“健康”的实例 – 通常轮询给定的位置。
你所要求的是“保持1个健康的实例” – 这是一个自动缩放任务。 自动缩放将允许您定义一组实例(通常包括要启动的AMI,实例types,启动实例的一个或多个可用区域以及要维护的实例的数量(最小/最大))作为与之相适应的政策。 自动调节策略返回一个ARN(Amazon资源名称 – 对资源的引用)。
一旦你设置了自动扩展组,你需要做的就是在实例变得不健康的时候触发你的扩展策略。 如果仔细观察您使用ELB设置的健康检查,您会注意到您可以设置闹钟 – 而且该闹钟实际上是Cloudwatch闹钟。
您可以设置您自己的Cloudwatch警报,或者通过ELB的运行状况检查进行设置 – 只需指定--alarm-actions以在满足不健康节点条件时触发自动缩放ARN。
在这种设置中,ELB在技术上并不需要 – 自动缩放将自行完成。 ELB为你做的是提供一个DNS地址,你可以通过访问你的实例(以及在后端不可用时出现某种错误信息)。 (在自动缩放的情况下,当启动弹性IP(可以脚本化)时,需要将弹性IP与新实例重新关联)。
最后,为了澄清一下:CloudFlare不是一个AWS服务 – 它是一个CDN(在缓解DDoS攻击方面有一定的知名度)。 Amazon的等效服务是CloudFront – 您不需要其中任何一个来重新启动实例。 您需要的是CloudWatch – Amazon的监控服务)。 免费套餐包括Cloudwatch和一些警报。