0

我正在做一个 mongoexport,然后是 5000 万条记录集合的 BigQuery 加载 我的所有云功能和应用程序引擎实例都通过 VPC 对等连接设置很好地连接到 Mongo Atlas 通过无服务器 VPC 访问我们在 GCP 中托管的 Atlas

但是,我无法让 Compute Engine 实例通过我们的 VPC 进行连接。当我添加 Compute Engine 实例外部 IP 时,它可以正常连接。当我删除它并添加 Compute Engine 实例的内部 IP 时,我得到超时,但它确实显示:

2021-01-10T18:09:44.531+0000    could not connect to server: server selection error: server selection timeout, curr
ent topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: ***.mongodb.net:27017, Type: Unkn
own, State: Connected, Average RTT: 0, Last error: connection() : dial tcp *.*.*.*:27017: i/o timeout }, { Ad
dr: ***.mongodb.net:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connec
tion() : dial tcp *.*.*.*:27017: i/o timeout }, { Addr: ***.mongodb.net:27017, Type: Unkn
own, State: Connected, Average RTT: 0, Last error: connection() : dial tcp *.*.*.*:27017: i/o timeout }, ] }

所以我最好的猜测是我没有输入正确的 IP 范围或正确的特定 IP 以允许计算引擎实例在内部连接,这似乎是 Mongo Atlas 防火墙阻塞。

通过 VPC 在计算引擎和 mongo atlas 之间建立连接的正确步骤是什么,以便没有入口/出口并且连接是直接的。

4

3 回答 3

0

我建议您使用 GCP 上的智能工具来丢弃任何防火墙问题,请记住该工具模拟数据包而不是真实数据包。在 GCP 级别放弃防火墙规则后,请确保内部防火墙允许流量。

于 2021-01-11T01:48:26.110 回答
0

您的问题如下:您正在尝试访问此 DNS 以连接您的 MongoDB atlas cluster ***.mongodb.net。此 DNS 是公共的,您的 VM 需要访问 Internet 才能解析此 DNS。而且因为你没有公共IP,所以你不能上网。

解决方案是使用Cloud NAT让您的 VM 访问 Internet。

于 2021-01-11T08:11:04.887 回答
0

我猜这个问题的原因也是防火墙设置。

请按照以下 2 个步骤操作。

步骤 1. 检查 VPC 对等状态

在此处输入图像描述

当“状态”处于活动状态时,您可以使用 VPC 对等互连的内部访问。

检查它是否处于活动状态。

步骤 2. 检查防火墙规则

如果您没有触及防火墙规则的任何内容,请添加一个规则,允许双方的 CIDR 范围。

于 2021-01-11T00:24:44.267 回答