高可用性和 AWS VPN

高可用性和 AWS VPN

我对通过 AWS VPN 实现高可用性存在疑问。

语境:

我需要在我的 AWS VPC 和一家大公司之间建立站点到站点 VPN 连接。此 VPN 链接需要支持到我的 AWS VPC 中应用程序的入站 http 连接。由于各种原因,我要连接的大公司不会为我分配一个不冲突的私有 (RFC1918) 子网供我使用。相反,他们要求我使用 NAT 通过 VPN 在我选择的公共 IP(我将保留的 IP)上公开我的服务。我相信我已经成功地通过遵循以下方法设置了正确的路由规则组合(有待测试)指南(无需单独的代理),但是我只能将传入连接定向到单个 IP。

问题:

我想知道是否有办法将连接直接连接到高可用性负载均衡器?这样可以实现更好的可扩展性和高可用性。我考虑过的事情:

  • 使用 AWS外部的弹性负载平衡器(ELB):
    • 这些 IP 地址不可靠,范围也不够窄。我无法在右侧路由规则中添加这样的范围,因为这样的范围可能会与 AWS 上托管的任何其他服务发生冲突。
  • 使用 AWS内部的弹性负载平衡器(ELB):
    • 它们具有公共 DNS 记录和可预测的范围,但是它们位于私有 IP 范围内,因此不能被客户端系统使用,因为它们只允许创建到非 RFC1918 公共 IP 的静态路由。
  • 实现我自己的负载均衡器,例如 HAproxy:
    • 这将解决可扩展性问题,但仍会在系统中留下单点故障(HA 节点本身)。
    • 此外,这是我必须维护的另一台机器。

有人知道是否有办法在 VPC 路由表中引用 ELB 吗?或者有其他关于如何实现此目的的建议吗?

谢谢

答案1

终止隧道的机器已经是单点故障了,不是吗?如果是这样,那么就在那里运行 HAProxy 似乎是应该做的(我这么说并不是因为我就是这么做的,尽管事实确实如此)。

我不用手指(或拇指)就能用一只手数出由 haproxy 引起的生产中断。1.6 版中的异步 DNS(截至撰写本文时仍在开发中)可让您使用内部 ELB 作为 haproxy 的后端,让您几乎可以设置并忘记它,并使用现有的 ELB/EC2 集成进行实际容量扩展。

C3、C4、M3、R3 和 T2 实例类型还支持相对较新的实例恢复功能,如果您的实例不再对实例运行状况检查做出积极响应,则会在不同的硬件上停止、重新创建并重新启动您的实例,但具有相同的实例 ID、弹性 IP 和 EBS 卷。

相关内容