【问题标题】:AWS: Why is a public IP required for load-balancing to my private subnet EC2 instances?AWS:为什么对我的私有子网 EC2 实例进行负载均衡需要公共 IP?
【发布时间】:2020-12-23 14:20:29
【问题描述】:

我正在尝试让一个面向 Internet 的 ELB 对传入我的私有子网 EC2 实例的流量进行负载平衡。我的负载平衡目标组报告我的 EC2 实例运行状况不佳,即使它们通过了 EC2 页面上的所有检查。

我不明白的是:如果我将网络接口和公共 IP 附加到我的私有子网 EC2 实例,那么一切正常。归根结底,我的安全组仍然阻止外部直接访问我的实例,但我认为不需要公共 IP 地址,因为我了解负载均衡器可以使用内部 IP 地址。那么我在这里没有正确理解什么?非常感谢。

我的安全/网络设置如下:

  • 路由表:/16 VPC CIDR 到本地,0.0.0.0/0 到 Internet 网关,与所有子网隐式关联
  • NACL:(用于测试目的),允许所有到任何地方的入站和出站,与所有子网关联
  • 私有子网 EC2 实例的安全组仅允许来自负载均衡器 SG 的传入流量,并允许所有出站流量。
  • 负载均衡器的安全组允许来自任何地方的传入流量,并允许所有出站流量。

我能找到的最接近的线程是:How to load balance AWS private subnet EC2 instances,但我检查了所有项目都没有成功。

【问题讨论】:

  • 您能否通过 ssh 连接到 EC2 实例并验证您的应用程序是否正常工作?您需要使用公共子网中的堡垒主机作为跳转实例。

标签: amazon-web-services amazon-ec2 amazon-elb


【解决方案1】:

什么是私有子网?

Ans-Private Subnet is - the subnet which does not have route to Internet Gateway.

到互联网网关的路由是唯一决定它是公共子网还是私有子网的东西。

但是your subnet is having route to internet gateway,这意味着您的子网是公共子网,公共子网需要公共IP。

In your situation your subnet is not private subnet。并且面向 Internet 的 ELB 意味着您希望接受来自 Internet 的连接/请求。

要使其成为私有子网,请删除到 Internet 网关的路由。如果您需要通过 Internet 连接到您的实例,请使用 NAT 网关,如果您需要通过 SSH 连接您的实例,请使用 Bastion 实例

【讨论】:

    猜你喜欢
    • 2019-01-08
    • 2019-05-30
    • 1970-01-01
    • 2018-08-14
    • 2015-05-13
    • 2023-03-03
    • 2017-10-09
    相关资源
    最近更新 更多