[英]AWS, NodeJS - Connecting app to Mongodb on another EC2 instance
[英]Connecting to Mongodb Amazon EC2 instance programmatically in Nodejs
我正在制作NodeJS webapp。 我想使用亞馬遜的彈性beanstalk部署應用程序,我想使用MongoDB作為數據庫。 現在我對解決方案的理解是:
這個解決方案有意義嗎? 如果是這樣,我如何以編程方式連接到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確認。
我建議始終為數據庫實例提供私有IP,運行HTTP服務器的實例應該具有與DNS提供程序映射的公共IP。 在DB服務器上打開最小端口主要是:27017使其安全。 這兩個實例都應該在VPC內部,因為私有IP只能在這里訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.