AWS Lambda无法访问同区域S3存储桶,寻求低成本解决方案
解决方案:使用S3网关型VPC端点(无额外成本)
你的问题核心是VPC内的Lambda没有公网访问权限,导致无法连接S3。你提到的两种方案里,S3的VPC端点分两种类型,其中网关型端点(Gateway Endpoint)是完全免费的,这才是最适合你的无冗余成本方案:
为什么网关型端点是最优解
S3网关型端点是AWS专为S3(和DynamoDB)提供的专属VPC端点,核心优势:
- 无额外费用:仅需支付S3本身的存储、请求费用,端点本身不产生额外成本
- 内网传输:流量完全在VPC与同区域S3之间通过AWS内网传输,不走公网,延迟更低
- 零维护:无需部署、管理额外组件(比如NAT网关)
配置步骤
- 登录AWS控制台,进入「VPC」服务
- 左侧导航栏选择「端点」,点击「创建端点」
- 端点类型选择「网关」,在服务列表中找到对应区域的S3服务(格式为
com.amazonaws.<你的区域>.s3) - 选择Lambda所在的VPC,以及Lambda所在子网关联的路由表
- 路由表会自动添加规则:目标为S3的前缀列表(
pl-xxxxxx),下一跳指向创建的网关端点 - 确认Lambda的IAM角色已具备访问目标S3桶的权限(比如
s3:GetObject等动作)
为什么不选NAT网关
NAT网关需要按小时计费+出站流量计费,长期运行成本较高;而网关型端点完全免费,同时避免了公网传输的潜在安全风险。
内容的提问来源于stack exchange,提问作者bieboebap
相关产品推荐
相关产品推荐

