负载均衡器无法获得良好的健康检查

时间:2016-07-25 18:22:14

标签: amazon-web-services load-balancing aws-security-group

我对AWS负载均衡器的工作方式感到困惑。我有一个非常简单的设置...

我有一个基于休息的API,需要通过我的负载均衡器暴露给互联网(端口80)。我只希望负载均衡器暴露在互联网流量中。我为我的实例设置了安全组,限制直接访问我的ipaddress以进行测试。

负载均衡器在http上没有ip限制,它只是打开了端口80(在端口3001上有我的api服务的监听器)。问题是,如果我对相关实例设置了任何ip限制,则负载均衡器无法查看我的实例。一旦我删除了对我的实例的限制,健康检查就会开始工作,我可以通过负载均衡器访问服务。问题是我的实例现在有一些我不想要的互联网端口。

在使用ip限制时,我是否需要做一些额外的事情来允许负载均衡器访问我的实例?

最后一点,我的健康检查工作正常,直到我添加实例级别的ip限制,所以我知道健康检查不是问题。我想如果我将负载均衡器的IP添加到我的白名单中,它会起作用,但是ip是动态的,并且不能用于此目的。

1 个答案:

答案 0 :(得分:3)

不要使用IP限制。

1)选择您的LB,选择Security选项卡并记下安全组ID(类似于sg-5555abb)。点击该ID进行编辑

2)编辑Load Balancer安全组时,只需添加一个允许规则:HTTP TCP 80 0.0.0.0/0(和/或443,如果需要,但您明白了。)

3)接下来转到您的实例的安全组。仅允许Load Balancer的安全组访问端口3001上的实例:Custom TCP Rule TCP 3001 sg-5555abb (my-load-balancer)。请注意,在Source字段中,您不输入IP地址/掩码,而是输入步骤1中的安全组ID)

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules