AWS负载平衡器安全组

我正在尝试使用ELB部署一些nodejs站点,并且在ELB和EC2实例的安全组中遇到了一些问题。

我想要做的是允许ELB接受端口80的请求,并将这些请求转发到EC2实例的端口3000,我不希望EC2实例可以从互联网直接访问,只能访问(在端口3000)通过负载均衡器。

所以在我的公共子网中的VPC中,我有:

  • 设置一个ELB,将80(HTTP)转发到3000(HTTP)
    • 安全组从0.0.0.0/0接受端口80上的入站stream量
  • 在端口3000上运行节点的EC2实例
    • 安全组,接受来自 ELB实例的安全组的端口3000入站stream量

这不起作用。 如果在EC2实例上,我允许从0.0.0.0/0开始使用3000端口。

但是,我可以使用实例的公有IP去实例, 而不通过负载均衡器。

从我理解这应该是可能的,或者我错过了什么?

谢谢,乔

除了你已经有了,你需要这些:

设置一个ELB,将80(HTTP)转发到3000(HTTP)安全组,接受来自端口80的入站stream量,从0.0.0.0/0

您还需要在端口3000上从ELB到运行EC2实例的私有子网的出站访问。

这不起作用。 如果在EC2实例上,我允许从0.0.0.0/0开始使用3000端口。

这使我相信你的EC2实例正在你的VPC的公共子网中运行。 它应该在VPC的私有子网中运行。

此外,请确保您的ELB正在VPC的公共子网中运行。

这听起来像是LB不在VPC或您的服务器所在的安全组不在VPC中。

在下面附上一些图片:

LB创建SG创建