簡體   English   中英

從另一台服務器連接到aws服務器上的MongoDB

[英]Connect to MongoDB on aws Server From Another Server

我正在從我的localhost創建一個javascript meteor應用程序,但我希望我的數據庫存儲在一個單獨的aws服務器上。

我是MongoDB和aws的新手。 我想知道如何從我的本地主機連接到我的數據庫?

這就像啟動Meteor應用程序一樣簡單, MONGO_URL env變量設置為指向AWS機器上運行的Mongo實例。
假設您已在遠程計算機上打開端口27017:

MONGO_URL=mongodb://addresshere.compute-1.amazonaws.com:27017/yourdbname meteor

除了將應用程序配置為連接到遠程MongoDB之外,如其他答案中所述,還必須確保可以從網絡訪問服務器。

在AWS上訪問網絡資源的方法有很多種:

  • 更改EC2實例的安全組配置 - 這可用作防火牆 - 並允許訪問端口27017.如果您只需要從計算機訪問它,則可以選擇允許從當前IP進行訪問。

  • 使用ssh隧道連接到實例並在本地隧道連接該端口,例如ssh aws-host -L 27017:localhost:27017或者,如果要通過不同的實例連接ssh aws-host -L 2017:target.mongo.host.amazonaws.com:27017 關於這個主題有一個很好的演示 - SSH / SSH的黑魔法可以做到嗎?

  • 在AWS上使用VPN並通過VPN連接到AWS網絡(使AWS網絡內的資源在本地可用)。

您可以使用mongoose連接它。

var mongoose = require('mongoose');

mongoose.connect('mongodb://serverIpaddress/databasename', function (err) {
    if (err) {
       return "no"
    } else {
        console.log('connection successful');

    }
});

根據此鏈接,您可能需要檢查1)操作系統防火牆; 2)正確的服務綁定到私有IP地址(如果沒有,將您的IP添加到IP地址白名單; 3)您的Mongoose版本(如果使用)。 使用'npm list mongoose'查找版本,並將其更新到最新版本。

您可以使用Mongodb Atlas (一種可在Amazon Web Services(AWS)上提供的MongoDB即服務產品)來托管您的數據庫(它有一個免費的層),並使用MongoDB Compass輕松管理您的數據。

為了能夠通過Internet連接外部mongodb。 應滿足以下條件:

  • mongodb應該有可路由的公共IP
  • mongodb security-group應該您的公共IP 列入白名單

如果mongodb沒有公共IP(VPC內的專用網絡),您的localhost仍然可以使用以下方法之一訪問它:

  • VPN到專用網絡
  • 您的辦公室/家庭與AWS VPC之間的站點到站點
  • 將EIP附加到mongodb實例eni (如果eni具有通過Internet網關路由的公共子網)
  • 創建一個帶有公共IP的eni ,將它附加到mongodb實例

在任何情況下 - 開始編寫代碼之前 :嘗試使用telnetnetcat或一些工作的 mongodb客戶端連接到mongodb。

暫無
暫無

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

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