首页 > 解决方案 > AWS ALB 路由

问题描述

我在 AWS 中配置了一个面向 Internet 的 ALB,带有两个侦听器(80 和 443),目标组位于私有网络(10.0.1.0/24)中。当 ALB 向 10.0.1.0 网络中的目标组发送 http/https 请求时,如何将请求发送回 ALB?ALB 有一个公共 IP,目标组没有到 Internet 的路由。我可以配置 NAT 网关并设置路由 0.0.0.0/0 以使用 NAT 网关。但是网络响应会一直传到互联网,然后再回到 ALB。非常不受欢迎。我也不能将这些实例放在面向公众的子网中。

有人可以帮助如何做到这一点吗?我想到了 VPC 端点,并用负载均衡器配置了一个(我使用 ELB,因为我找不到 ALB 端点服务)。现在,端点显示它在 10.0.1.0 子网中有一个 IP。但是,我不知道这将如何工作。有人可以建议要做什么。谢谢。

标签: amazon-web-services

解决方案


不确定您的问题到底是什么。但是给你一个简单的解释 AWS ELB 是如何工作的。

在 AWS Classic Load Balancer 和 Application Load Balancer 中,都涉及两个连接:

  1. 客户端(浏览器等)和 ELB 之间的连接
  2. ELB 和后端目标实例(网络服务器)之间的连接

创建面向 Internet 的 ELB 时,您可以选择两个子网。这些子网应该是具有到 Internet 网关的路由的公共子网。ELB 将在每个子网中启动至少一个 ELB 节点。Internet 上的客户端将能够通过 IGW 使用其公共 IP 连接到这些 ELB 节点。

一旦 ELB 收到来自客户端的请求,它会将请求转发到其后端目标。此通信使用 ELB 节点和目标实例的 PRIVATE IP。因此,即使实例位于私有子网中,ELB 仍然能够将请求转发给它们,因为连接是通过使用路由表中的“本地”路由的私有 IP 进行的。然后来自目标的响应通过私有 IP 到达 ELB,然后通过公共 IP 转发到客户端。

Client <--public IP--> ELB <--private IP--> Targets

客户端和 ELB 之间的连接通过公共 IP,ELB 和 Web 服务器之间的连接通过私有 IP,不需要路由到 IGW 或 NAT。

不必担心私有子网的 NAT 网关。只需确保您在创建 ELB 时选择的子网是公共的,并且具有到 Internet 网关的路由。


推荐阅读