【问题标题】:MongoDB AWS Cloudformation template : Unable to connect to mongo db server from other instancesMongoDB AWS Cloudformation 模板:无法从其他实例连接到 mongo db 服务器
【发布时间】:2016-12-29 00:07:37
【问题描述】:

AWS 中有一个 mongo db 模板,它是:http://docs.aws.amazon.com/quickstart/latest/mongodb/welcome.html

使用该模板后,NAT 实例和主节点实例被创建。现在我已经有一个正在运行的实例,假设它是“MyOriginalInstance”,现在我想从 MyOriginalInstance 连接到 mongo db。

问题是mongodb主节点实例没有公网IP,怎么连接呢?

它有本地 IP 10.0.2.80

我在 VPC 安全组中检查了我的入站规则,它说允许所有,即 0.0.0.0/0 ,并且所有必要的端口都在那里。

当我 ssh 进入主节点实例时,我能够连接到 mongodb 服务器。我只能从我的 NAT 实例对主节点进行 ssh,而我什至无法从其他实例连接到它。我做了 ssh ec2-user@10.0.2.80 因为我已经将 ssh 密钥添加到已知主机。

然后我在 NAT 实例上安装了 mongodb 并从那里连接到 mongo 服务器,但我无法连接。我从 NAT 实例执行了 mongo 10.0.2.80 并且连接失败。

那么知道如何使用我的 NAT 实例和 MyOriginalInstance 连接到 mongo db 服务器吗?

我的 mongod.conf

net:
  port:

systemLog:
  destination: file
  logAppend: true
  path: /log/mongod.log

storage:
  dbPath: /data
  journal:
    enabled: true

processManagement:
  fork: true
  pidFilePath: /var/run/mongod/mongod.pid

【问题讨论】:

  • 您的 mongodb 服务器配置中的 bind_ip 设置是什么?
  • 我的mongod.conf中没有bind_ip,上面已经添加了内容。
  • 那么它默认绑定到127.0.0.1,这将只允许localhost连接。您需要在配置中添加bind_ip = 0.0.0.0
  • 仍然无法连接。我做了 bind_ip: 0.0.0.0 和 bindIp: 0.0.0.0,在网络下,没有任何效果。
  • 您在进行更改后重新启动了服务器?

标签: mongodb amazon-web-services


【解决方案1】:

根据您的描述,您的 Mongo 实例似乎位于私有子网中。所以你必须通过 NAT 实例使用 iptables 连接到 mongo 实例。

从第 4 步开始查看本指南。请记住,该指南适用于 SSH 到实例,您必须将其修改为 ssh 到 Mongo 实例。

https://cloudpages.wordpress.com/2013/08/05/ssh-to-an-instance-in-private-subnet/

【讨论】:

  • 仍然无法连接,我使用您发送给我的教程在 mongoDBInstance 上将默认端口 27017 从 NATInstance 配置为 27017,然后我从 MyOriginalInstance 中的命令行 mongo NATInstanceIP:27017 和 @987654323 执行此操作@ ,仍然无法连接,如果我将端口转发到 22,那么我可以通过此命令从 MyOriginalInstance 连接到 mongoDBInstance ssh -p <port> ec2-user@NATInstanceIP 但我想通过 mongo db shell 连接......这样我就可以访问 mongo分贝
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 2015-06-24
  • 2020-12-24
  • 1970-01-01
  • 2021-03-10
  • 2016-09-22
  • 2018-03-17
相关资源
最近更新 更多