Don*_*ill 26 load-balancing heartbeat haproxy amazon-ec2 amazon-web-services
我们需要一些比 ELB 提供的更高级的功能(主要是 L7 检查),但是如何使用 EC2 使用诸如 haproxy 之类的东西来处理诸如心跳和高可用性之类的事情并不明显。我们很有可能在集群中需要 3 个或更多 haproxy 节点,因此两个节点之间的简单心跳是行不通的。
似乎在 haproxy 节点前面有一个心跳层是可行的方法,可能使用 IPVS,但是随着 EC2 集群的变化处理配置更改(通过有意的更改,如扩展,或无意的,如丢失EC2 节点)似乎很重要。
优选地,该解决方案将跨越至少两个可用区。
回答问题:不,会话没有粘性。是的,我们需要 SSL,但理论上这可以完全由另一个设置处理 - 我们能够将 SSL 流量定向到与非 SSL 流量不同的位置。
Jes*_*r M 14
好吧,我自己从未构建过流量达到 SmugMug 级别的 AWS 负载平衡解决方案,但只要考虑理论和 AWS 的服务,我就会想到几个想法。
最初的问题缺少一些往往会影响负载平衡设计的东西:
我是从如何保持负载均衡层本身高可用的角度来回答的。保持应用服务器 HA 只是通过内置于 L7 负载平衡器中的健康检查完成。
好的,一些应该可行的想法:
1)“AWS方式”:
优点/想法: L7 负载均衡器可以是相当简单的 EC2 AMI,全部从同一个 AMI 克隆并使用相同的配置。因此,Amazon 的工具可以处理所有 HA 需求: ELB 监控 L7 负载均衡器。如果 L7 LB 死亡或变得无响应,ELB 和 Cloudwatch 会一起自动生成一个新实例并将其引入 ELB 池。
2)“带监控方式的DNS循环:”
好处/想法:如果用户代理变得无响应,则合规的用户代理应自动切换到另一个 IP 地址。因此,在出现故障的情况下,只有 1/3 的用户应该受到影响,而且其中大多数用户应该不会注意到任何事情,因为他们的 UA 会默默地故障转移到另一个 IP。并且您的外部监控盒会注意到 EIP 没有响应,并在几分钟内纠正这种情况。
3) DNS RR 到成对的 HA 服务器:
基本上,这是唐自己关于一对服务器之间简单心跳的建议,但针对多个 IP 地址进行了简化。
优势/想法:在 AWS 的完全虚拟化环境中,实际上并不容易推理 L4 服务和故障转移模式。通过简化为仅保留 1 个 IP 地址的一对相同服务器,推理和测试变得更简单。
结论:同样,我实际上还没有在生产中尝试过任何这些。就我的直觉而言,选项一采用 L4 模式的 ELB,以及作为 L7 LB 的自我管理的 EC2 实例似乎最符合 AWS 平台的精神,也是亚马逊最有可能在以后投资和扩展的地方。这可能是我的第一选择。
| 归档时间: |
|
| 查看次数: |
11582 次 |
| 最近记录: |