与ELB的VPC公共子网互联网接入

我试图build立一个需要访问互联网的Web服务器(nginx),同时也被连接到一个ELB,但我无法使这个解决scheme工作。

细节:

  • 3个公共子网
    • 一个
    • b
    • C
  • 3个私有子网
    • 一个
    • b
    • C
  • 1 ELB
    • 这有三个公共子网包含在其默认池中
  • 1个公有子网中的NAT实例

我发现通过将子网指向IGW将公共子网连接到ELB是很有用的。 这些设置不考虑互联网访问的需要。

当我将单个NIC的路由表从IGW更改为NAT实例时,我可以访问互联网,但是我失去了连接到ELB的能力,反之亦然,当我更新路由表来使用IGW时,我失去了连接到互联网。

我可以分配一个EIP并以这种方式访问​​它,但是希望尽可能避免通过公共地址将这个服务器暴露给Internet。

我在想的是我可以1)在需要访问互联网的Web服务器上添加第二个NIC,这样他们就可以通过一个NAT实例进行操作,并且在公有子网中有一条腿连接到负载平衡器或2 )我可以使用NAT实例作为networking的网关。

有人有类似的东西吗?

你在这里错过了一个观点。

它是一台拥有公共IP的机器,它进入公共子网,并使用IGW作为默认路由。

如果它没有公共IP,则它将进入私有子网并使用NAT实例作为其默认路由。

而已。 故事结局。

如果您的networking服务器没有公共地址,在ELB后面……那么ELB本身在公共子网中,但实例在私有子网中。

提供ELB的子网与configuration实例的子网无关。

这是违反直觉的,但是确实如此。

VPC不是局域网,所以跨子网的stream量不像局域网那样“通过路由器”,所以这种方法没有低效率。