【问题标题】:how to access mongodb instance outside a VPC如何在 VPC 外访问 mongodb 实例
【发布时间】:2017-09-04 18:35:56
【问题描述】:

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

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

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

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

我是否需要为 Elastic Beanstalk 提供与 NAT 相同的密钥,以便它可以访问内部主节点?还是我从 Node.js 连接到 NAT 的外部地址,然后通过隧道进入集群?究竟需要将什么与什么联系起来才能使其发挥作用?

任何建议将不胜感激!

【问题讨论】:

  • 你找到解决办法了吗?
  • 您能否提供您的架构图、vpc 配置,包括子网之间的路由规则。您的 VPC 似乎有问题。

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


【解决方案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 解析!)

希望对你有帮助

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 2019-12-17
      • 2019-12-25
      • 2016-01-10
      • 2014-12-12
      • 2021-09-19
      • 2021-11-23
      相关资源
      最近更新 更多