Amazon redshift 将Lambda连接到不同可用性区域中的红移
我们的红移集群位于A区 当我们的Lambda函数使用区域a子网时,它可以连接到Redshift 当Lambda函数使用区域a以外的子网时,它会超时 不需要解决此问题,即我们允许在端口5439上从0.0.0.0/0进行红移连接Amazon redshift 将Lambda连接到不同可用性区域中的红移,amazon-redshift,aws-lambda,amazon-vpc,Amazon Redshift,Aws Lambda,Amazon Vpc,我们的红移集群位于A区 当我们的Lambda函数使用区域a子网时,它可以连接到Redshift 当Lambda函数使用区域a以外的子网时,它会超时 不需要解决此问题,即我们允许在端口5439上从0.0.0.0/0进行红移连接 我们的Lambda函数和红移集群位于同一VPC中 Lambda功能有4个专用子网(每个区域一个) Redshift每个区域也有4个专用子网 Lambda函数有自己的安全组(SG) 红移星团也有自己的SG 红移SG允许来自Lambda SG和Admin SG的端口5439
- 我们的Lambda函数和红移集群位于同一VPC中李>
- Lambda功能有4个专用子网(每个区域一个)
- Redshift每个区域也有4个专用子网
- Lambda函数有自己的安全组(SG)
- 红移星团也有自己的SG
- 红移SG允许来自Lambda SG和Admin SG的端口5439
已启用增强的VPC路由
包括所有4个红移子网(每个区域一个)群集子网组
- 在红移SG上从0.0.0.0/0允许端口5439时没有问题
- 当我们禁用0.0.0.0/0规则时,拒绝的流量日志从区域A到区域A可以正常工作,但不能从其他区域到区域A
- 所有Lambda子网都使用区域a中存在的NAT
- 所有红移子网都使用中存在的IGW
- 所有网络ACL当前允许所有(默认)
- 使用NAT网关检查lambda的专用子网(子网abc)
- 转到VPC控制台>子网>子网abc>路由表
- 在路由表routes中,您可以找到使用的NAT网关(NAT abcdefg)
- 转到VPC控制台>NAT网关>NAT abcdefg。获取此NAT网关使用的弹性ip。(xx.yy.zz.pqr)
- 在redshift的安全组中为此弹性ip添加入站规则(端口=5439 CIDR xx.yy.zz.pqr/32)
- 我也陷入了类似的境地。将NAT网关的弹性ip添加到Redshift的安全组5439端口的入站规则中,为我修复了它
步骤:
不过,在执行此操作之前,应在与redshift相同的VPC中配置lambda,并按照OP的建议使用适当的专用子网(配置为使用NAT网关) 能否请你澄清一下目前的情况,哪些是预期的效果,哪些不是预期的效果?例如,当Lambda和Redshift都在同一个AZ中时,它是否有效?你能澄清你所说的“但当我们禁用…时不能从其他区域”是什么意思吗?您说“从0.0.0.0/0允许端口5439时没有问题”——这是否意味着在这种情况下一切都很好,但您不希望如此广泛地开放红移?此外,您是否有阻止任何子网上流量的网络ACL?更新了帖子。网络ACL是默认的(全部允许)。红移开放到0.0.0.0/0是一种我们无法使用的变通方法。Lambda A区至红移A区有效。问题是除区域A之外的区域中的函数无法连接到红移区域A。Lambda函数是如何引用Amazon红移的?大概是通过一个DNS名称——但该DNS名称是解析为内部IP地址还是公共IP地址?您可以通过从VPC内的EC2实例执行
nslookup
来测试这一点,以查看返回的IP地址。另外,您是否尝试激活VPC流量日志来分析Lambda和Redshift之间的流量?您是否能够解决此问题?我被完全相同的问题困住了。谢谢你的建议。谢谢