在 VPC 中访问私有资源

使用 AWS Lambda 构建无服务器应用

Claudio Canales

Senior DevOps Engineer

什么是 VPC?

  • VPC 是您在 AWS 中的私有网络。
  • 它提供地址空间、路由和防火墙控制。
  • 您决定资源如何连接。

VPC 组件概览

使用 AWS Lambda 构建无服务器应用

简单类比:封闭小区

  • 子网像社区。
  • 安全组是门禁规则。
  • NAT 是通向公网的共享出口。

封闭社区类比

使用 AWS Lambda 构建无服务器应用

为何在 VPC 中运行 Lambda?

  • 访问私有资源,如内部服务或数据库。
  • 安全组控制 Lambda 可连接的目标。

Lambda 在 VPC 中的私有访问

使用 AWS Lambda 构建无服务器应用

需要配置的内容

  • 选择子网
  • 选择安全组
  • Lambda 在您的 VPC 内获取 IP 以访问私有端点。

VPC 配置输入与影响

使用 AWS Lambda 构建无服务器应用

子网:函数运行的位置

  • 子网决定函数在网络中的放置位置。
  • 私有子网无直连公网的路由。
  • 选择能到达处理程序所需资源的子网。

子网选择影响

使用 AWS Lambda 构建无服务器应用

安全组:防火墙规则

  • 安全组是网络接口的防火墙规则。
  • 它们控制入站与出站流量。
  • 出站规则常决定 Lambda 是否能访问数据库。

安全组门卫类比

使用 AWS Lambda 构建无服务器应用

ENI 与冷启动

  • ENI = 弹性网络接口。
  • 调用处理程序前,Lambda 可能需要创建并附加 ENI。
  • 这些额外的网络设置会增加冷启动延迟。

ENI 冷启动流程

使用 AWS Lambda 构建无服务器应用

ENI 类比:插上网线

  • ENI = 您函数的网络连接。
  • 它在所选子网中创建。
  • 设置工作越多,冷启动可能越慢。

ENI 网线插入类比

使用 AWS Lambda 构建无服务器应用

出站互联网访问

  • 私有子网通常无法直连公网。
  • 无出站路由时,对公共 API 的调用会超时。
  • 常见做法:使用 NAT 网关。

NAT 网关出站流程

使用 AWS Lambda 构建无服务器应用

何时需要 NAT?

  • 访问公网端点时需要 NAT。
  • 仅访问 VPC 内私有资源时可不需 NAT。

是否需要 NAT 的决策图

使用 AWS Lambda 构建无服务器应用

网络配置错误的常见症状

  • 超时通常表示缺少路由或 NAT。
  • 连接被拒多为安全组规则问题。

网络症状清单

使用 AWS Lambda 构建无服务器应用

最佳实践

  • 仅为私有连通性而使用 VPC。
  • 保持配置最小化。
  • 监控冷启动延迟与连接错误。

VPC 最佳实践

使用 AWS Lambda 构建无服务器应用

要点回顾

  • VPC 为 Lambda 提供私有网络。
  • 您需配置子网和安全组。
  • ENI 会增加冷启动开销。
  • 私有子网出站上网需 NAT。

VPC 连通性权衡

使用 AWS Lambda 构建无服务器应用

Passons à la pratique !

使用 AWS Lambda 构建无服务器应用

Preparing Video For Download...