负载均衡器无法获得良好的健康检查
Loadbalancer cannot get a good health check
我对 AWS 负载均衡器的工作方式感到困惑。我有一个非常简单的设置...
我有一个基于休息的 API 需要通过我的负载均衡器将其公开到互联网(端口 80)。我只希望负载均衡器暴露在互联网流量中。我为我的实例设置了一个安全组,该安全组限制仅出于测试目的直接访问我的 ipaddress。
负载均衡器在 http 上不受 ip 限制,它只打开了端口 80(在端口 3001 上监听了我的 api 服务)。问题是如果我对相关实例设置任何 ip 限制,负载平衡器将看不到我的实例。一旦我删除了对我的实例的这些限制,健康检查就会开始工作,我可以通过负载均衡器访问该服务。问题是我的实例现在有我不想要的对互联网开放的端口。
在使用 ip 限制时,我是否需要做一些额外的事情来允许负载均衡器访问我的实例?
最后一点,我的健康检查工作正常,直到我添加了实例级 ip 限制,所以我知道健康检查不是问题。我认为如果我将负载均衡器的 IP 添加到我的白名单中,它会起作用,但该 ip 是动态的并且不能用于此目的。
不要使用 IP 限制。
1) Select 您的 LB,select Security
选项卡并记下安全组 ID(类似于 sg-5555abb)。单击该 ID 进行编辑
2) 当您编辑您的负载均衡器安全组时,只添加一个允许规则:HTTP TCP 80 0.0.0.0/0
(and/or 443 如果您需要它,但您明白了)。
3) 接下来转到您实例的安全组。仅允许 Load Balancer 的安全组访问端口 3001:Custom TCP Rule TCP 3001 sg-5555abb (my-load-balancer)
上的实例。请注意,在 Source
字段中,您没有输入 IP address/mask,而是输入步骤 1)
中的安全组 ID
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules
我对 AWS 负载均衡器的工作方式感到困惑。我有一个非常简单的设置...
我有一个基于休息的 API 需要通过我的负载均衡器将其公开到互联网(端口 80)。我只希望负载均衡器暴露在互联网流量中。我为我的实例设置了一个安全组,该安全组限制仅出于测试目的直接访问我的 ipaddress。
负载均衡器在 http 上不受 ip 限制,它只打开了端口 80(在端口 3001 上监听了我的 api 服务)。问题是如果我对相关实例设置任何 ip 限制,负载平衡器将看不到我的实例。一旦我删除了对我的实例的这些限制,健康检查就会开始工作,我可以通过负载均衡器访问该服务。问题是我的实例现在有我不想要的对互联网开放的端口。
在使用 ip 限制时,我是否需要做一些额外的事情来允许负载均衡器访问我的实例?
最后一点,我的健康检查工作正常,直到我添加了实例级 ip 限制,所以我知道健康检查不是问题。我认为如果我将负载均衡器的 IP 添加到我的白名单中,它会起作用,但该 ip 是动态的并且不能用于此目的。
不要使用 IP 限制。
1) Select 您的 LB,select Security
选项卡并记下安全组 ID(类似于 sg-5555abb)。单击该 ID 进行编辑
2) 当您编辑您的负载均衡器安全组时,只添加一个允许规则:HTTP TCP 80 0.0.0.0/0
(and/or 443 如果您需要它,但您明白了)。
3) 接下来转到您实例的安全组。仅允许 Load Balancer 的安全组访问端口 3001:Custom TCP Rule TCP 3001 sg-5555abb (my-load-balancer)
上的实例。请注意,在 Source
字段中,您没有输入 IP address/mask,而是输入步骤 1)
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules