我在 vpc 公共子网中有 3 个 Web 服务器(ec2 实例),它们都有 EIP。
我有通常的 Internet 网关和路由,以确保这些实例能够调用外部服务,以及一个负载均衡器 (ELB) 在这些实例之间旋转传入流量。
主要问题是服务器上的应用程序将连接到许多外部服务/API,但其中一些服务需要 IP 白名单。我们现在要做的是为一个实例分配一个 EIP,转到所述服务的控制面板,添加新的 EIP 并继续运行,但是我们的帐户可用的 EIP 数量都达到了限制(是的,我知道它可以被撞,但仍然)以及在这些外部服务中有多少 IP 可列入白名单。
鉴于我们希望保持可自动扩展,我想询问有关如何通过单个 EIP 路由所有实例生成的流量而不丢失当前内部工作的想法。除非要使用 DNS,否则通往这些服务的固定的特殊路由并不是很灵活,主要是因为我们无法提前知道它们的所有 IP 池。
我已经阅读了有关 NAT 网关的内容,但我不确定架构的负载平衡部分是否会保持正常运行,Web 服务器是否能够响应请求等。
是的,您可以将 NAT 网关或NAT 实例与 ELB 结合使用……这是将内部启动的出站流量与外部服务列入白名单的最明智方法。
NAT 网关始终具有静态公共 IP 地址。
在创建 NAT 网关时,您必须 [...] 指定要与它关联的弹性 IP 地址。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html
此配置要求实例没有自己的公共 IP 地址,并且不在默认路由指向 Internet 网关的公共子网上。配置后,实例子网的默认路由需要指向 NAT 设备。
反过来,这意味着您的 ELB 不能与实例位于同一子网上,因为 ELB 子网必须将 Internet 网关作为其默认路由。
来自实例的响应流量被定向到 ELB 的内部 IP 地址,因此它不受实例子网默认路由的影响,因此此配置不会中断对 ELB 请求的回复流量。
尽管在某些人看来很奇怪,但标准配置是将 ELB 放置在与其后面的实例不同的子网上。与路由器可能成为瓶颈的传统网络不同,ELB 及其平衡实例位于彼此不同的子网上,因此没有负面的性能考虑。整个 VPC 网络是一个软件定义的虚拟网络,因此位于不同的子网上并不意味着流量将通过不必要的路由器,就像在物理以太网上一样。实例之间的所有流量都遵循类似的路径通过 VPC 基础设施。
另请参阅为什么我们需要 VPC 中的私有子网?在堆栈溢出上。
归档时间: |
|
查看次数: |
5546 次 |
最近记录: |