我们使用弹性豆茎在EC2外运行我们的主应用程序,我们在该VPC中也有一个RDS实例。这些实例具有公网IP,因此可以使用标准的internet网关访问internet。这没什么问题。
现在,我已经创建了一个lambda函数,将它与EC2实例所在的3个AZ对应的3个子网关联起来。一切都还不错。我的lambda可以很好地连接到这些资源。
我的问题是我需要我的lambda来访问互联网。通常,我会将它所在的子网路由到0.0.0.0/0,然后通过NAT网关将其路由出去。但是,由于私有网络子网中的EC2和RDS实例与公网in相关联,因此NAT网关会中断它们的互联网连接。在不破坏其他Ec2实例的IGW的情况下,我应该如何为我的lambda提供internet访问权限?
我想也许可以在3个AZ中创建3个新的子网,将其与我的lambda函数相关联,在每个AZ子网中创建一个NAT网关,为每个子网创建相应的路由。如果我这样做了,我的lambda是否仍然能够访问其他子网中的EC2\RDS实例?我有一个lambda sg和一个ec2 sg,并允许lambda sg访问ec2 sg。希望这是有意义的!
发布于 2019-10-14 17:34:09
由于Lambda函数无法附加公网IP地址,因此您必须在内网启动,并将Internet流量转发到NAT网关/实例,才能让您的函数访问internet。
看起来您只在VPC内创建了公网子网。正如您已经建议的,您需要创建私有子网来托管您的lambda函数。
专用子网RT
0.0.0.0/0 --> NAT网关
公网子网RT
0.0.0.0/0 --> IGW
https://stackoverflow.com/questions/58368437
复制相似问题