amazon-web-services - 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。但是,我不知道这将如何工作。有人可以建议要做什么。谢谢。
解决方案
不确定您的问题到底是什么。但是给你一个简单的解释 AWS ELB 是如何工作的。
在 AWS Classic Load Balancer 和 Application Load Balancer 中,都涉及两个连接:
- 客户端(浏览器等)和 ELB 之间的连接
- 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 网关的路由。
推荐阅读
- javascript - 在圆圈内居中文本和淡入淡出切换不起作用
- scala - Scala 的 VSTS 代码覆盖率
- r - 当我尝试在特殊网格上绘制点时,为什么 ggmap plot 说只有缺失值?
- javafx - 记录 TestFX 的 UI 元素
- mysql - Mysql查询计算列中的常见数字
- java - android TV 通过索引以编程方式选择 BrowseSupportFragment/RowsSupportFragment 的项目
- wordpress - Wordpress 圣人引导程序不起作用
- typo3 - 在 TYPO3 的查询中获取不需要的 where 子句
- python - 如何比较包含整数的列表 A 和列表 B 并打印缺失的整数?
- c# - 使用 NoAuth 的 Web 请求