簡體   English   中英

在Nodejs中以編程方式連接到Mongodb Amazon EC2實例

[英]Connecting to Mongodb Amazon EC2 instance programmatically in Nodejs

我正在制作NodeJS webapp。 我想使用亞馬遜的彈性beanstalk部署應用程序,我想使用MongoDB作為數據庫。 現在我對解決方案的理解是:

  1. 在Amazon EC2實例上設置MongoDB實例(我已經這樣做了)
  2. 以編程方式在server.js中連接到此數據庫以讀取和寫入數據庫

這個解決方案有意義嗎? 如果是這樣,我如何以編程方式連接到EC2 MongoDB實例?

我找到了節點的官方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密鑰,則可以創建一個SSH用戶,該用戶可以使用UN和密碼SSH到實例。

這是實現它的有用指南:

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

或者另一種方法是使用SSH密鑰進行連接。

不,您不需要.pem鍵來連接MongoDB實例。

  • 確保您的Ec2實例具有公共域或IP。 可以在節點數據庫配置中使用此IP代替localhost。

  • mongo服務器應該在實例上運行。 檢查mongo shell確認。

  • 創建VPC以更好地管理實例,並使用所需端口定義安全組。
  • 在數據庫配置文件中使用安全憑據。

我建議始終為數據庫實例提供私有IP,運行HTTP服務器的實例應該具有與DNS提供程序映射的公共IP。 在DB服務器上打開最小端口主要是:27017使其安全。 這兩個實例都應該在VPC內部,因為私有IP只能在這里訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM