amazon-web-services - 具有 Internet 访问权限的 AWS VPC 有时会因外部请求而超时
问题描述
我在 AWS 中创建了一个 VPC(由于 lambdas 内的 RDS 连接需求),它大部分时间都可以访问互联网,但有时我的外部请求超时(这些情况大多发生在 SES 上,因为它们是大多数外部请求)。我已经按照以下方式配置了我的 VPC(对不起,不是按照创建的顺序,只是从 AWS 中读取它们):
- 具有 172.30.0.0/16 CIDR 的 VPC
- 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
- 1 个具有 172.30.3.0/24 的公共子网到 1a 可用区,其中 0.0.0.0/0 路由针对我的 IGW
- 2 个路由表(私有和公共),私有路由表中有 3 个私有子网,公共路由表中有 3 个私有子网
- 将所有出站流量定向到 0.0.0.0/0 的 lambda 安全组
- Lambda 被配置为使用这些子网和给定的安全组。
我不明白为什么我的互联网请求有时会从 VPC 内部失败,这几乎就像 lambda 是在某个可用区域启动的,而那个特定的人无法访问 vpc 内部的互联网。
编辑:解决!我的 lambda 函数中列出了导致超时的公共子网
解决方案
连接到 VPC 的 AWS Lambda 函数应始终配置为使用私有子网。
如果这些 Lambda 函数也需要 Internet 访问,它们可以使用 NAT 网关或 NAT 实例来访问 Internet。这些 NAT 服务应配置为使用公共子网。
当 Lambda 函数连接到私有子网时,发往 Internet 的流量将从私有子网通过 NAT 网关/NAT 实例路由到 Internet。如果 Lambda 函数连接到公有子网,这将不起作用。(并且 Lambda 函数无法直接从 VPC 连接到 Internet。)
推荐阅读
- deployment - 如何部署 Finder Sync 扩展项目
- javascript - 如何通过url传递文件输入中收集的图像?
- dart - Flutter 错误:_ScaffoldLayout 自定义多子布局委托忘记布局以下子级
- python - Python - 从给出颜色列表中找到最接近颜色的颜色
- ruby-on-rails - 无法使用 Object.delete(params[:id] 删除记录
- java - BigO复杂度方程一般是如何计算的?
- powershell - 创建约会时使用 PowerShell 和 EWS 模拟原始会议组织者
- javascript - 如何在 javascript 中访问父对象的方法?
- bitbucket - [TeamCity]文件名、目录名或卷标语法不正确
- reactjs - 如何使用 Ant Design 表添加空白可编辑行?