【问题标题】:Failover proxy on Amazon aws?Amazon aws 上的故障转移代理?
【发布时间】:2012-02-28 11:30:33
【问题描述】:

这是一个相当笼统的问题。假设我有三个 ec2 盒子:两个应用盒子和一个将 nginx 作为反向代理托管的盒子,将请求委托给两个应用盒子(我的数据库托管在其他地方)。现在,两台应用程序机器可以相互吸收故障,但是第三台代表单点故障。如何配置我的设置,以便在反向代理出现故障时,该站点仍然可用?

我正在研究 keepalived 和 HAproxy。对我来说,这些东西并不明显,如果对初学者的耳朵有任何帮助,我们将不胜感激。

【问题讨论】:

  • 一个可能相关的问题是,我可以在一个弹性 IP 地址后面拥有多个 EC2 实例吗?这样,我可以将两台带有反向代理的机器放在那里,如果一台出现故障,另一台继续运行?

标签: proxy amazon-web-services failover


【解决方案1】:

我认为,如果您是 HA 和集群的初学者,您最好的解决方案是由 Amazon 维护的 Elastic Load Balancer (ELB)。它们会自动扩展并实现高可用性的平衡器集群。因此,使用 ELB 服务,您已经减轻了您评论的故障点。同样重要的是要记住,ELB 比 AWS 中的 2 个实例便宜。当然,它更容易启动和维护。

您看不到多个 ELB,因为它是一项服务,因此您不必关心可用性。

另一个重要的一点是 AWS 弹性 ip 没有分配给您的操作系统实例的 NIC 接口,因此在经典基础设施中使用虚拟 ip 很困难。

经过这个解释,如果你因为你的原因仍然希望 Nginx 作为 AWS 中的反向代理,我认为你可以实现一个由 Nginx 实例组成的层的自动缩放组。但是,如果您不是自动缩放技术方面的专家,那可能会非常棘手。

【讨论】:

    【解决方案2】:

    如果您的 nginx 只是代理 HTTP 请求,请查看 Amazon Elastic Load Balancer。您可以设置两个(或更多)应用程序框,留下一些备用的(以便始终保持两个或更多,如果需要),设置健康检查,在平衡器处终止 SSL,使用粘性会议等。

    不过,有很多人希望看到为 ELB 设置弹性 IP 地址的能力,以及其他有充分理由说明为什么不需要它的人。

    我的建议是您查看ELB documentation,因为它似乎完全符合您的需求。我还建议您阅读此interesting post,以便就该主题进行良好的讨论。

    【讨论】:

    • 还建议我看看 Nagios 和 Heartbeat。谢谢!
    • 是的。我的团队调查了 Nagios,这很棒。但用于监控,而不是用于故障转移。您可能应该结合冗余(通过向负载平衡器和/或集群添加多个节点)以及使用像 Nagios 这样的监控工具。
    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2015-01-15
    • 2017-07-10
    相关资源
    最近更新 更多