在Nodejs中以编程方式连接到Mongodb Amazon EC2实例

时间:2016-09-11 21:26:18

标签: node.js mongodb amazon-web-services amazon-ec2

我正在制作NodeJS webapp。我想使用亚马逊的弹性beanstalk部署应用程序,我想使用MongoDB作为数据库。现在我对解决方案的理解是:

  1. 在Amazon EC2实例上设置MongoDB实例(我已经这样做了)
  2. 以编程方式在server.js中连接到此数据库以读取和写入数据库
  3. 这个解决方案有意义吗?如果是这样,我如何以编程方式连接到EC2 MongoDB实例?

    我找到了节点的官方MongoDB包:https://www.npmjs.com/package/mongodb

    但文档仅提到连接到MongoDB的本地实例:

    Monster

    当前我能够ssh到我的EC2 MongoDB实例,但我不明白如何采取下一步并以编程方式连接到它。

    当我进入EC2 MongoDB实例时,我需要提供一个.pem密钥文件,当我以编程方式连接时,是否需要做类似的事情?

2 个答案:

答案 0 :(得分:1)

根据您的用例,您的Mongodb在EC2实例上是本地的。因此,当您连接到Mongodb时,您必须使用pem密钥连接到EC2实例才能连接到Mongodb。如果您希望每次都避免使用pem密钥,则可以创建一个SSH用户,该用户可以使用UN和密码SSH到实例。

这是实现它的有用指南:

https://coderwall.com/p/j5nk9w/access-ec2-linux-box-over-ssh-without-pem-file

或者另一种方法是使用SSH密钥连接。

答案 1 :(得分:0)

不,您不需要.pem密钥来连接MongoDB实例。

  • 确保您的Ec2实例具有公共域或IP。可以在节点数据库配置中使用此IP代替localhost。

  • mongo服务器应该在实例上运行。检查mongo shell以确认。

  • 创建VPC以更好地管理实例,并使用所需端口定义安全组。
  • 在数据库配置文件中使用安全凭据。

我建议始终为数据库实例提供私有IP,运行HTTP服务器的实例应具有与DNS提供程序映射的公共IP。在DB服务器上打开最小端口主要是:27017 ,这使其安全。这两个实例都应该在VPC内部,因为私有IP只能在这里访问。