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

我正在做一个NodeJS的Web应用程序。 我想使用Amazon的弹性beanstalk部署应用程序,我想使用MongoDB作为数据库。 现在我对解决scheme的理解是:

  1. 在Amazon EC2实例上设置一个MongoDB实例(我已经这样做了)
  2. 以编程方式在server.js中连接到此数据库以读取和写入数据库

这个解决scheme是否有意义? 如果是这样,我该如何以编程方式连接到EC2 MongoDB实例?

我find了官方的MongoDB包: https : //www.npmjs.com/package/mongodb

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

// Connection URL var url = 'mongodb://localhost:27017/myproject'; // Use connect method to connect to the Server MongoClient.connect(url, function(err, db) { assert.equal(null, err); console.log("Connected correctly to server"); db.close(); }); 

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

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

根据你的用例,你的Mongodb在EC2实例上是本地的。 所以,当你连接到Mongodb时,你将不得不使用一个pem密钥到EC2实例来连接到Mongodb。 如果要避免每次使用pem key,可以创build一个SSH用户,使用UN和密码SSHlogin实例。

这是实现它的有用指南:

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

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

不,您不需要.pem键来连接到MongoDB实例。

  • 确保您的Ec2实例具有公共域或IP。 这个IP可以在你的节点DBconfiguration中用来代替localhost。

  • mongo服务器应该在实例上运行。 检查蒙戈壳来确认。

  • 创buildVPC以更好地pipe理实例,并定义具有所需端口的安全组。
  • 在数据库configuration文件中使用安全证书。

我build议总是有一个私人的IP数据库实例和您的HTTP服务器正在运行的实例应该有公共IP与DNS提供商映射。 在DB服务器上打开最小端口主要是:27017 ,这使得它安全。 这两个实例都应该在VPC里面,因为私有IP只能在这里访问。