我正在制作NodeJS webapp。我想使用亚马逊的弹性beanstalk部署应用程序,我想使用MongoDB作为数据库。现在我对解决方案的理解是:
这个解决方案有意义吗?如果是这样,我如何以编程方式连接到EC2 MongoDB实例?
我找到了节点的官方MongoDB包:https://www.npmjs.com/package/mongodb
但文档仅提到连接到MongoDB的本地实例:
Monster
当前我能够ssh到我的EC2 MongoDB实例,但我不明白如何采取下一步并以编程方式连接到它。
当我进入EC2 MongoDB实例时,我需要提供一个.pem密钥文件,当我以编程方式连接时,是否需要做类似的事情?
答案 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以确认。
我建议始终为数据库实例提供私有IP,运行HTTP服务器的实例应具有与DNS提供程序映射的公共IP。在DB服务器上打开最小端口主要是:27017 ,这使其安全。这两个实例都应该在VPC内部,因为私有IP只能在这里访问。