我希望后端服务器(Node.js,托管在Google App Engine上,如果需要的话,可以使用灵活的环境)能够从数据库(MongoDB,通过Atlas,也托管在Google Cloud平台上)中获取和传递数据。与我的后端服务器相同的区域)。理想情况下,我想保留一个可以访问我的数据库的IP白名单,但是我不确定如何识别它们。
我的理解是Google将使用一系列IP。我也许可以通过不时查询Google(Google App Engine - list of IP addresses?)来访问它们。
我还从Google找到了一个很好的教程,介绍如何将App Engine连接到MongoDB Atlas,但他们方便地省略了如何将正确的IP(https://cloud.google.com/community/tutorials/mongodb-atlas-appengineflex-nodejs-app列入白名单)。
我还从Atlas中发现了一些有关在GCP内使用网络对等的说明(我符合资格吗?请参见链接:https://docs.atlas.mongodb.com/security-vpc-peering/),但是有很多限制,包括不允许使用其他IP?我很难理解他们的文档。
关键问题:是否有比上述第一个链接更简单的方法?还是我经常查询并手动更改它?
答案 0 :(得分:3)
如果您在 Atlas 上运行 M10-Cluster(或更高版本),VPC-Peering 是您的最佳选择。正如您所说,您很难阅读文档。我建议尝试this tutorial。他们正在解释要将哪些 CIDR 范围(您称为 IP)列入白名单。
这里要注意一件事,他们使用 GCP Kubernetes Engine。使用 App Engine 需要一些额外的努力,因为它是 GCP 的“无服务器”解决方案之一,这就是您不应该使用静态 IP 或类似内容的原因。您需要通过连接器将您的应用连接到 VPC 网络:
在 these instructions 之后在与您的 GAE 应用程序相同的区域中创建连接器。您可以使用 {projects &&
projects.map((project) => {
return (
<StoryWrapper key={project.title}>
<StoryThumbnail src={project.thumbnail.url} />
......
找出您的 GAE 应用程序的当前区域。现在只需为连接器指定范围 gcloud app describe
(10.8.0.0
会自动添加)。记住你给它起的名字。
你的 app.yaml 必须像这样指向那个连接器
/28
转到您的 Atlas 项目,导航到网络访问并将您在步骤 1 中为连接器设置的 CIDR 范围列入白名单
您可能还需要将步骤 1 中 VPC 网络的 CIDR 范围列入白名单。您可以通过导航到 VPC-Network -> Firewall
在 GCP 中执行此操作答案 1 :(得分:1)
我相信Google App引擎有不同的帐户。精确地找到要连接到MongoDB Atlas的GAE IP非常困难。
因此,确切地说,我建议您使用mongoDB Atlas的VPC对等功能。
答案 2 :(得分:0)
在App Engine中使用IP并非易事或不好。对于这种情况,我想说的是,在GCE上使用VM(可以配置外部和内部静态IP地址),并使用Proxy。
如果您认为这对您有帮助,可以在Reserving a static external IP address和Reserving a Static Internal IP Address 上找到更多信息。
有一个针对静态IP的功能请求正在打开,您可以在此处访问该静态IP,以供Google检查并实施:
除此之外,您可以访问文档Static IP Addresses and App Engine apps,以查找有关App Engine中已经可用的选项的更多信息。
请让我知道信息是否对您有所帮助。