[英]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.