我有 2 台服务器:一台是物理服务器,另一台是 AWS 上 VPC 中的私有 EC2 实例。我需要配置此 EC2 实例以允许物理服务器通过端口 27017(Mongo 的默认端口)连接到它。以下是我目前所做的:
- 将 Ec2 实例的域添加到物理服务器的解析器,以便进行 DNS 解析。
- 将物理服务器的公共 IP 添加至私有 Ec2 实例的 SG。
完成此操作后,物理服务器现在可以使用其内部 IP(Ec2 实例)解析主机,但我无法通过 telnet 连接到 27017 上的主机,因为它超时了。我假设我必须进行某种形式的路由。因此,以下是此私有实例的设置方式:
私有实例位于一个私有子网中,并附有 NAT 网关。它确实可以访问互联网,而且公共子网显然可以与其通信。
为了实现物理服务器和私有 EC2 实例之间的连接,我还需要考虑什么?我将尽可能详细地解释这一点:
VPC-----------------------
| |
IGW NATd Instance
| |
Pub Sub (3 pub subnets) Priv Subnet- (3 private subnets)
| |
Bastion host 3 Mongo Servers one on each subnet
答案1
听起来您在私有子网中有一个 EC2 服务器,通过 NAT 网关进行传出互联网访问。根据这些组件的设计,这不提供任何入站访问。也可能您在 VPC 中有一个公有子网,但您的问题含糊不清。
假设您已打开适当的防火墙/安全组,您的 EC2 实例是否可以 ping 物理服务器?我认为可以,因为它具有传出互联网访问权限。
为了解决这个问题,您需要将您的 EC2 实例放入具有附加互联网网关的公共子网中,或者在可公开寻址的公共子网中放入某种代理。
如果您可以澄清您的配置,最好同时扩展您的问题和图表,我可能会提供更多指导。