Amazon ec2 Haproxy负载平衡器,EC2,编写我自己的可用性脚本
我一直在研究高可用性解决方案,如heartbeat,并在haproxy负载平衡器出现故障时保持故障切换。我意识到,尽管我们希望获得高可用性,但在这个时候,这并不是一个真正的要求,因为在任何时候都需要运行两个负载平衡器实例,以便实现即时故障切换(特别是在我们的设置中将有一个lb是冗余的情况下) 我的替代解决方案是,如果当前负载平衡器停止工作,则从AMI启动一个新的负载平衡器EC2实例,并将其与我们的域名指向的弹性ip相关联。这将确保停机时间仅限于启动新实例和关联弹性ip所需的时间,考虑到我们目前的情况,弹性ip似乎是一个合理的高可用性经济高效的解决方案,特别是因为我们可以轻松地在多av区域内实现这一点。我希望通过以下步骤实现这一点:Amazon ec2 Haproxy负载平衡器,EC2,编写我自己的可用性脚本,amazon-ec2,ping,haproxy,Amazon Ec2,Ping,Haproxy,我一直在研究高可用性解决方案,如heartbeat,并在haproxy负载平衡器出现故障时保持故障切换。我意识到,尽管我们希望获得高可用性,但在这个时候,这并不是一个真正的要求,因为在任何时候都需要运行两个负载平衡器实例,以便实现即时故障切换(特别是在我们的设置中将有一个lb是冗余的情况下) 我的替代解决方案是,如果当前负载平衡器停止工作,则从AMI启动一个新的负载平衡器EC2实例,并将其与我们的域名指向的弹性ip相关联。这将确保停机时间仅限于启动新实例和关联弹性ip所需的时间,考虑到我们目前的
此外,如果有人预见到这种方法存在任何问题,请随时发表意见我完全了解您的来历,我的公司也处于同样的地位。我们关心的是拥有一个高可用的容错系统,但是对于我们获得的流量来说,开销成本根本不可行
最近,我们改变了我们的基础设施,使用ELB和HAProxy的组合。我发现ELB提供了最好的可用性,但它使用DNS负载平衡的事实并不适合我的应用程序。因此,我们的设置是在2节点HAProxy集群前面的ELB。使用我为AWS创建的这个工具,我可以轻松地将自动缩放组添加到HAProxy服务器 我知道这有点陈旧,但您建议的解决方案过于复杂,有一种简单得多的方法,可以实现您想要实现的目标
只需将您的HAProxy机器和您的自定义AMI放在一个自动缩放组中,最小和最大为1个实例。这样,当您的实例失败时,ASG将立即将其恢复,包括EIP和所有。无需外部监控,即使对宕机的实例没有更快的响应,也是如此。事实上,我已经让ELB运行并对其进行了大量负载测试,现在我正在进行haproxy设置。这一切都与性能有关,ELB似乎无法像我希望的那样处理突发事件,CNAME分辨率增加了延迟。也就是说,ELB消除了容错和自动缩放的所有管理开销,我仍然需要整理haproxy的所有自动缩放脚本。如果ELB无法处理您需要的突发事件,请AWS支持增加ELB实例的默认大小。他们会将您的ELB移动到可以处理您的负载的实例。这是测试时的一个常见问题,我从未在实际用户场景中遇到过这种情况。CNAME的分辨率应该非常低。希望这能有所帮助。基于HAProxy的LB与Amazon ELB的对比是因为HAProxy是云不可知论者。如果你使用ELB,如果你想把你的基础设施转移到另一个云提供商,你有很多工作要做。。。然而,如果你基于HAProxy创建自己的LB,你可以自由地将整个系统转移到你选择的任何云上。。。或者更好的是,只是其中的一部分,关键是您没有被锁定在单个提供程序中。@DGM您可以使用实例用户数据在引导时调用ec2 cli并重新连接它,或者编写