繁体   English   中英

将AWS Lamba上的Python / Zappa项目连接到Mongodb Atlas

[英]Connecting a Python/Zappa Project on AWS Lamba to Mongodb Atlas

使用Mongodb Atlas在AWS上设置Zappa项目是否有任何遗漏? 我开始关注此页面上的指南,并从那以后扩展到各种其他资源: https//docs.atlas.mongodb.com/security-vpc-peering/

我有一个VPC与我的Atlas集群对等。 双方都说连接是活跃的。

我有一个路由表有2条路线:

Destination: <My VPC CIDR>       Target: local
Destination: <My Atlas CIDR>     Target: <My Atlas Peering ID>

路由表的VPG将Propogate设置为True,但没有任何路由被传播。

有4个子网与该路由表相关联。

所有4个子网和VPC都连接到Lambda上的Zappa功能。

连接到Function的是一个非常自由的执行角色和安全组。

安全组和VPC CIDR都在Atlas的IP白名单页面上处于活动状态。

还有一个与所有4个子网相关联的网络ACL,具有非常自由的入站和出站规则。

Atlas Cluster和AWS Region是相同的。

我尝试将所有IPS列入白名单,但这不起作用

API网关没有VPC链接,没有NLB存在(严格来说是EC2吗?计划是在Lambda上部署,因为我在早期开发时我还没有要选择的证书。)

问题最终是因为我的Atlas Tier不支持Peering Connections。

以下是另外两个解决方案,这两个解决方案都通过互联网而不是AWS内部发送流量。


1:

将所有IP列入白名单(添加0.0.0.0/0)在MongoDB Atlas中。


2:

在您的VPC仪表板上:

将Internet网关连接到您的VPC。

创建一个新的EIP。

创建公共子网和私有子网。 (我的意思是在名称中包含'public'和'private'。当我们稍后将路由表关联起来时,我们实际上将它们设为公共和私有)。

创建NAT网关并将其连接到EIP和公共子网。

创建专用路由表,将所有流量路由到NAT网关(将现有路由从VPC CIDR保留到本地)。

创建公共路由表,将所有流量路由到Internet网关(将现有路由从VPC CIDR保留到本地)。

将您的公共子网与公共路由表以及您的私有子网关联到专用路由表。

创建网络ACL并根据需要与任何子网关联。

在您的Lamda功能仪表板上:

关联您的VPC。

关联您的私人子网。

如果需要,关联任何安全组。

在MongoDB Atlas仪表板上:

在MongoDB Atlas中将您的EIP列入白名单。


注意:亚马逊向您收取NAT网关的费用。 如果您在免费级别,这是唯一的非自由部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM