我有以下AWS设置:

现在,可以看到以下场景:服务1希望与运行在其他AZ中的另一个EC2实例上的Service2通信。作为服务2的URL,我使用带有端口的负载均衡器的DNS名称:internal-load-balancer:8082/path。这是必要的,因为我使用滚动部署,因此微服务在每次部署之后在两个EC2实例之间移动。
现在,如果我执行host internal-load-balancer,我会得到两个IP地址,一个用于运行在子网1中的负载均衡器,另一个运行在子网2中:
如果我现在在服务1上执行以下curl命令:
curl 10.0.0.11:8082/我得到网关超时curl 10.0.32.11:8082/按预期工作,我得到200英镑curl 10.0.32.10:8082/也能工作那么,如果我在同一个子网中使用负载均衡器,而不是在另一个子网中使用负载均衡器,为什么还要这样做呢?如果我直接联系其他AZ中的EC2实例,它也能工作。问题是DNS记录解析到两个IP地址,而微服务只是随机地使用其中一个地址,所以我的请求中有一半是在另一半时间内完成的。
我在这里做错了什么?谢谢您的支持:)
发布于 2019-08-10 16:16:17
看来我找到了解决这个问题的方法,here。基本上,我所做的是解决这个问题,我把应用程序负载均衡器转移到公共子网,该子网连接了一个internet网关,现在两个负载均衡器工作都没有任何问题…我不知道为什么它只这样工作,但我很高兴我找到了解决这个问题的办法:)
有谁能向我解释一下为什么ALB需要在一个公共子网中?
https://stackoverflow.com/questions/57441550
复制相似问题