如何在VPC外部访问mongodb实例

时间:2017-04-09 19:26:26

标签: mongodb amazon-web-services cloud amazon-cloudformation aws-opsworks

我遵循AWS快速入门指南来创建MongoDB群集。这创建了一个NAT实例(公共子网)以及一个PrimaryReplicaNode实例(仅限内部IP)。我可以通过SSH连接到NAT,而且我可以从NAT连接到主副本。我已经验证可以从命令行访问MongoDB,但是我必须通过"到达那里的两台服务器。

另一方面,我在Elastic Beanstalk上做了一个快速启动的node.js服务器。我还把它放在与NAT相同的VPC和安全组中。

所以我总共有3个实例。 1个运行节点的Elastic Beanstalk实例和作为MongoDB集群运行的2个EC2实例。

我的问题是......如何从Elastic Beanstalk应用程序连接到MongoDB?

我是否需要为Elastic Beanstalk提供与NAT相同的密钥,以便它可以访问内部主节点?或者我是否从Node.js连接到NAT的外部地址,然后隧道进入群集?究竟需要连接到什么才能使其达到目的?

非常感谢任何建议!

2 个答案:

答案 0 :(得分:1)

我建议使用CloudFormation模板来创建新VPC环境所需的一切。这是AWS提供的CloudFormation模板,用于正确创建VPC(公共/专用子网,nat网关配置,安全组等)。就我个人而言,这是极大的帮助。 https://docs.aws.amazon.com/codebuild/latest/userguide/cloudformation-vpc-template.html

从那里您将需要创建一个新的AWS EB集群。我建议您保存当前配置,以便可以更轻松地使用新环境。但是请确保使用新的VPC配置新的环境。您仍然需要对mongo ec2实例执行相同的操作(确保它们在新的VPC中),并创建另一个具有正确配置的安全组,以访问VPC中的aws eb实例。

仅使用一个手动安全组创建步骤(针对mongo实例),这将更加整洁,并且可以肯定为什么从网络角度确保所有设置都正确。

现在,您只需要告诉您的应用即可直接与mongodb对话即可(使用VPC内mongo主机的私有dns解析-注意:创建后在vpc内启用dns解析!)

希望这会有所帮助

答案 1 :(得分:0)

您需要检查分配给elasticbeanstalk服务器和mongoDB的安全组的配置,以确保在两个目录中均允许访问的规则