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

时间:2019-06-12 19:22:56

标签: python amazon-web-services aws-lambda mongodb-atlas zappa

使用Mongodb Atlas在AWS上设置Zappa项目时,我是否缺少任何陷阱?从https://docs.atlas.mongodb.com/security-vpc-peering/

开始,我开始遵循此页面上的指南,并已扩展到其他各种资源。

我有一个与我的Atlas群集对等的VPC。双方都说该连接处于活动状态。

我有一个包含2条路线的路线表:

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

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

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

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

与职能部门相关的还有一个非常宽松的执行角色和安全组。

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

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

Atlas群集和AWS区域相同。

我尝试将所有IPS列入白名单,但是那没用

API网关没有VPC链接,不存在任何NLB(严格来说,这是EC2吗?该计划是在Lambda上部署的,并且由于我是早期开发人员,所以我没有可供选择的证书。 )

1 个答案:

答案 0 :(得分:0)

最终的陷阱是我的Atlas Tier不支持对等连接。

这是另外两个解决方案,两者都通过Internet而不是通过AWS发送流量。


1:

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


2:

在您的VPC仪表板上:

将Internet网关连接到VPC。

创建一个新的EIP。

创建一个公共子网和一个私有子网。 (这意味着我要在名称中包含“ public”和“ private”。稍后我们将关联路由表时,实际上会将它们设为public和private)。

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

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

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

将您的公用子网与公用路由表相关联,并将您的专用子网与专用路由表相关联。

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

在Lamda功能仪表板上:

关联您的VPC。

关联您的专用子网。

根据需要关联任何安全组。

在您的MongoDB Atlas仪表板上:

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


注意:Amazon向NAT网关收费。如果您是免费会员,那么这是唯一的非免费部分。