我希望自动缩放组中的EC2实例能够连接到具有RabbitMQ服务器的经典负载均衡器。
以下是我的配置:
EC2s的安全小组:
my-private-sg
(sg-00xxxxxxxxxxxxxxx
)
经典负载均衡器安全组:
rabbitmq-elb-sg
(sg-11xxxxxxxxxxxxxxx
)
rabbitmq-elb-sg
安全组包含以下入站规则
在此配置下,RabbitMQ客户机在EC2s中无法连接到负载均衡器。
但是,在我将源设置为AnyWhere
之后,它可以连接到负载均衡器。
这一切为什么要发生?
这个文档说
Another security group. This allows instances associated with the specified security group to access instances associated with this security group.
负载均衡器后面的EC2s、负载均衡器和负载均衡器后面的EC2s位于同一个VPC中。
我使用经典的负载均衡器,因为我使用这个terraform脚本来构建RabbitMQ服务。
我刚刚在经典的负载均衡器中检查了日志,我看到了如下内容:
2019-10-16T03:45:09.124234Z rabbitmq-elb 54.178.178.85:45990 172.31.39.217:5672 0.000274 0.000008 0.000015 - - 516 604 "- - - " "-" - -
2019-10-16T03:45:10.340119Z rabbitmq-elb 54.178.178.85:46006 172.31.0.79:5672 0.001159 0.000008 0.000015 - - 516 604 "- - - " "-" - -
54.178.178.85
是我的EC2实例的公共IP。
172.31.39.217
和172.31.0.79
是负载均衡器背后RabbitMQ服务器的私有IP。
发布于 2019-10-17 07:28:11
我的经典负载均衡器是一个internet-facing
负载平衡器。在我将其更改为internal
之后,安全组rabbitmq-elb-sg (sg-11xxxxxxxxxxxxxxx)
就可以正常工作了。
我不再需要在AnyWhere
字段中编写Source
了。
EC2实例试图通过专用网络连接到负载均衡器。将EC2s的安全组(sg-00xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
然而,我仍然不知道为什么使用面向互联网的负载均衡器在我的情况下不起作用。
在AWS文件中,我在哪里可以找到对这一现象的解释?
https://stackoverflow.com/questions/58405094
复制相似问题