Amazon web services 连接到专用VPC的AWS Lambda无法启动/停止EC2实例

Amazon web services 连接到专用VPC的AWS Lambda无法启动/停止EC2实例,amazon-web-services,amazon-ec2,aws-lambda,amazon-vpc,Amazon Web Services,Amazon Ec2,Aws Lambda,Amazon Vpc,我已经创建了AWS Lambda来启动和停止托管在私有VPC中的EC2实例 我可以在“无VPC”中部署Lambda功能并执行操作而不会出现任何问题 但是,当我在私有VPC(我的EC2所在的位置)和2个不同的子网(其中一个子网EC2启动)中部署Lambda功能并进行必要的安全组更改时,我遇到了超时错误,无法再执行操作 问题:尽管不需要外部互联网,但是否有必要向Lambda添加NAT网关 如果是,请告诉我原因 如果没有,请让我知道我还需要检查什么才能使此过程正常工作。当向AWS进行API调用时,可以

我已经创建了AWS Lambda来启动和停止托管在私有VPC中的EC2实例

我可以在“无VPC”中部署Lambda功能并执行操作而不会出现任何问题

但是,当我在私有VPC(我的EC2所在的位置)和2个不同的子网(其中一个子网EC2启动)中部署Lambda功能并进行必要的安全组更改时,我遇到了超时错误,无法再执行操作

问题:尽管不需要外部互联网,但是否有必要向Lambda添加NAT网关

如果是,请告诉我原因


如果没有,请让我知道我还需要检查什么才能使此过程正常工作。

当向AWS进行API调用时,可以从Internet访问。因此,发出启动或停止AmazonEC2实例的命令需要访问Internet

如果AWS Lambda功能未配置为使用专有网络,则默认情况下,它可以访问互联网

如果AWS Lambda功能配置为使用VPC,且该Lambda功能需要访问互联网,则:

  • 将Lambda函数配置为使用专用子网
  • 在公用子网中启动NAT网关并更新专用子网路由表,以将NAT网关用于Internet绑定的流量
或者,您可以为EC2创建一个VPC端点。这允许发送给EC2服务的命令通过VPC端点,而无需通过互联网。这通常适用于没有Internet网关的VPC(例如没有公共访问的开发/测试VPC)


最后,考虑一下Lambda函数是否确实需要连接到VPC。如果需要访问专有网络和互联网,则需要使用上述方法之一。但是,如果它不需要访问VPC,则不要将其连接到VPC,它将连接到internet。

您实际上是如何启动和停止ec2实例的?感谢您的重播。但我注意到,我在专用子网中启动的ec2可以通过在NOVPC中启动的lamda停止。您能解释一下我的EC2是如何从Internet访问API调用/请求的吗?对AWS服务进行的API调用是如何在Internet上进行的(例如
EC2.us-west-2.amazonaws.com
)。不管实际EC2实例放在哪里,也不管它是否可访问,因为调用的是AWS,而不是实例本身。作为响应,AWS将提供/终止运行虚拟机的底层资源。这就是为什么任何启动/停止实例的命令都必须通过Internet发出的原因。谢谢。我已经得到了完整的答案。