我们希望使用 Amazon Elastic Load Balancing,但是我们的应用程序需要一组固定的 IP 地址,因为我们的客户需要知道特定请求的可能目的地的有限列表。
阅读一些答案后,听起来使用弹性网络接口 (ENI) 和虚拟私有云 (VPC) 是可能的 - 有人能确认我理解得对吗?也就是说,使用 ENI 和 VPC 的组合,我们将得到一个相对较短的可能 IP 地址列表,ELB 会将这些 IP 地址返回给请求浏览或其他代码?
是否还可以将 ELB 放入 VPC 中,以便所有请求都到达 VPC 网关(单个 IP 地址)但得到负载平衡,包括跨可用区域,在 VPC 内部?
答案1
AWS 通过其 Edge 网络将流量定向到其 ELB,因此请求到达的 IP 地址将取决于请求来源的 IP 地址。从这个角度来看,您无法可靠地精确指出客户端请求将发送到哪个 IP 地址。
您可以部署位于 VPC 内的内部 ELB。这些 ELB 将在子网内具有固定的 RFC 1918 IP 地址(私有 IP 地址),并且仅在您的 VPC 内可用。
我不确定您所说的“VPC 网关”是什么意思。
VPC 具有互联网网关(到公共互联网的路由)和客户网关(通过 VPN 到第三方数据中心的路由)。
如果您通过客户网关访问 VPC 中的 ELB,则可以可靠地预测 ELB 的 IP 地址范围(特别是如果您将 ELB 连接到具有极少量 IP 地址的子网)。但是,要实现这一点,您的客户必须建立到您的 VPC 的 VPN,这涉及在客户站点上对 VPN 终端设备进行配置工作。
答案2
你可以下载 AWS 使用的 IP 地址范围的完整列表,并让您的客户将所有内容列入白名单。当列表更新时,他们需要更新白名单。或者只是告诉他们将 0.0.0.0/0 列入白名单。