高可用性和AWS VPN

我有一个关于通过AWS VPN实现高可用性的问题。

语境:

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

题:

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

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

有谁知道是否有方法在VPC路由表中引用ELB? 或者有任何其他的build议如何实现这一目标?

谢谢

终止隧道的机器已经是单点故障了,不是吗? 如果是这样的话,那么运行HAProxy就好像是要做的事情(而且我不只是这么说,因为就是这样,即使是这样)。

一方面,我可以计算由haproxy引起的生产中断,而不使用任何手指(或拇指)。 在版本1.6中的asynchronousDNS(到本文撰写时还在开发中)将允许您使用内部ELB作为haproxy的后端,允许您几乎设置并忘记并使用现有的ELB / EC2集成来实现您的实际容量缩放。

C3,C4,M3,R3和T2实例types也支持相对较新的实例恢复function,如果在不同的硬件上停止,重新创build和重新启动实例,但实例ID,弹性IP和EBS卷如果停止响应有利于实例健康检查。