AWS Load Balancer安全组

时间:2014-02-11 21:52:33

标签: node.js amazon-web-services amazon-ec2 amazon-elb amazon-vpc

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

我想做的是,允许ELB接受端口80请求并将它们转发到EC2实例上的端口3000,我不希望EC2实例可以直接从Internet访问,它们应该只是通过负载均衡器可以访问(在端口3000上)。

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

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

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

但是我可以使用实例的公共IP转到实例而不用通过负载均衡器。

根据我的理解,这应该是可能的,还是我错过了什么?

谢谢, 乔

2 个答案:

答案 0 :(得分:2)

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

  

设置一个将80(HTTP)转发到3000(HTTP)的ELB   从0.0.0.0/0

接受端口80上的入站流量的安全组

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

  

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

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

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

答案 1 :(得分:0)

听起来好像LB不在VPC中,或者服务器所在的安全组不在VPC中。

附上下面的一些图片:

LB Create SG Create