首页 > 解决方案 > 具有 Internet 访问权限的 AWS VPC 有时会因外部请求而超时

问题描述

我在 AWS 中创建了一个 VPC(由于 lambdas 内的 RDS 连接需求),它大部分时间都可以访问互联网,但有时我的外部请求超时(这些情况大多发生在 SES 上,因为它们是大多数外部请求)。我已经按照以下方式配置了我的 VPC(对不起,不是按照创建的顺序,只是从 AWS 中读取它们):

  1. 具有 172.30.0.0/16 CIDR 的 VPC
  2. 3 个具有 172.30.0.0/24、172.30.1.0/24、172.30.2.0/24 的私有子网和每个(1a、1b、1c)的不同可用区,其中 0.0.0.0/0 路由针对我的 NAT
  3. 1 个具有 172.30.3.0/24 的公共子网到 1a 可用区,其中 0.0.0.0/0 路由针对我的 IGW
  4. 2 个路由表(私有和公共),私有路由表中有 3 个私有子网,公共路由表中有 3 个私有子网
  5. 将所有出站流量定向到 0.0.0.0/0 的 lambda 安全组
  6. Lambda 被配置为使用这些子网和给定的安全组。

我不明白为什么我的互联网请求有时会从 VPC 内部失败,这几乎就像 lambda 是在某个可用区域启动的,而那个特定的人无法访问 vpc 内部的互联网。

编辑:解决!我的 lambda 函数中列出了导致超时的公共子网

标签: amazon-web-servicesaws-lambdaamazon-vpc

解决方案


连接到 VPC 的 AWS Lambda 函数应始终配置为使用私有子网

如果这些 Lambda 函数也需要 Internet 访问,它们可以使用 NAT 网关或 NAT 实例来访问 Internet。这些 NAT 服务应配置为使用公共子网

当 Lambda 函数连接到私有子网时,发往 Internet 的流量将从私有子网通过 NAT 网关/NAT 实例路由到 Internet。如果 Lambda 函数连接到公有子网,这将不起作用。(并且 Lambda 函数无法直接从 VPC 连接到 Internet。)


推荐阅读