本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Lambda 函数、亚马逊 VPC 和无服务器架构生成静态出站 IP 地址
由托马斯·斯科特 (AWS) 创建
注意
AWS 专注于寻找提供更好客户体验的方法。为此,我们需要您的反馈。请抽出 5 分钟时间分享有关您使用 AWS 规范性指南的体验的见解。本次调查由外部公司主办,因此以下链接不指向我们的网站。
环境:生产 |
技术:容器和微服务;软件开发和测试 |
AWS 服务:AWS Lambda |
使用 Lambda 和亚马逊 VPC 生成静态出站 IP 地址的摘要
此模式描述了如何使用无服务器架构在亚马逊网络服务 (AWS) 云中生成静态出站 IP 地址。如果您的组织想使用安全文件传输协议 (SFTP) 将文件发送到单独的业务实体,则可以从这种方法中受益。这意味着企业实体必须有权访问允许文件通过其防火墙的 IP 地址。
该模式的方法可帮助您创建使用弹性 IP 地址作为出站 IP 地址的 AWS Lambda 函数。通过执行此模式中的步骤,您可以创建 Lambda 函数和虚拟私有云 (VPC),通过具有静态 IP 地址的互联网网关路由出站流量。要使用静态 IP 地址,请将 Lambda 函数连接到 VPC 及其子网。
使用 Lambda 和亚马逊 VPC 生成静态出站 IP 地址的先决条件和限制
先决条件
-
活跃的 AWS 账户。
-
创建和部署 Lambda 函数以及创建 VPC 及其子网的 AWS 身份和访问管理 (IAM) 权限。有关这方面的更多信息,请参阅 AWS Lambda 文档中的执行角色和用户权限。
-
如果您计划使用基础设施即代码 (IaC) 来实现这种模式的方法,则需要一个集成开发环境 (IDE),例如 AWS Cloud9。有关这方面的更多信息,请参阅什么是 AWS Cloud9? 在 AWS Cloud9 文档中。
使用 Lambda 和亚马逊 VPC 生成静态出站 IP 地址的架构
下图显示了此模式的无服务器架构。

该图显示了以下工作流程:
-
出站流量进
NAT gateway 1
入Public subnet 1
。 -
出站流量进
NAT gateway 2
入Public subnet 2
。 -
Lambda 函数可以在
Private subnet 1
或Private subnet 2
中运行。 -
Private subnet 1
并将流量Private subnet 2
路由到公有子网中的 NAT 网关。 -
NAT 网关将出站流量从公有子网发送到互联网网关。
-
出站数据从互联网网关传输到外部服务器。
技术堆栈
-
Lambda
-
Amazon Virtual Private Cloud (Amazon VPC)
自动化和规模
您可以通过在不同的可用区使用两个公有子网和两个私有子网来确保高可用性 (HA)。即使一个可用区变得不可用,该模式的解决方案仍然有效。
使用 Lambda 和亚马逊 VPC 生成静态出站 IP 地址的工具
-
AWS Lambda — AWS Lambda 是一种计算服务,无需预置或管理服务器即可支持运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩展,从每天几个请求扩展到每秒数千个请求。您只需为消耗的计算时间付费 – 代码未运行时不产生费用。
-
亚马逊 VPC — 亚马逊虚拟私有云 (Amazon VPC) 在 AWS 云中预留了一个逻辑隔离部分,您可以在其中在您定义的虚拟网络中启动 AWS 资源。这个虚拟网络与您在数据中心中运行的传统网络极其相似,并会为您提供使用亚马逊云科技可扩展基础设施的优势。
用于使用 Lambda 和亚马逊 VPC 生成静态出站 IP 地址的史诗
任务 | 描述 | 所需技能 |
---|---|---|
创建新的 VPC。 | 登录 AWS 管理控制台,打开 Amazon VPC 控制台,然后创建一个名为 有关创建 VPC 的更多信息,请参阅 Amazon VPC 文档中的亚马逊 VPC 入门。 |
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建第一个公有子网。 |
|
AWS 管理员 |
创建第二个公有子网。 |
|
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建第一个私有子网。 |
|
AWS 管理员 |
创建第二个私有子网。 |
|
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建第一个弹性 IP 地址。 |
注意:此弹性 IP 地址用于您的第一个 NAT 网关。 |
AWS 管理员 |
创建第二个弹性 IP 地址。 |
注意:此弹性 IP 地址用于您的第二个 NAT 网关。 |
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建互联网网关。 |
|
AWS 管理员 |
将互联网网关连接到 VPC。 | 选择刚刚创建的 Internet 网关,然后选择 Actions, Attach to VPC (操作,附加到 VPC)。 |
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建第一个 NAT 网关。 |
|
AWS 管理员 |
创建第二个 NAT 网关。 |
|
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
为 public-one 子网创建路由表。 |
|
AWS 管理员 |
为 public-two 子网创建路由表。 |
|
AWS 管理员 |
为私有子网创建路由表。 |
|
AWS 管理员 |
为私有二子网创建路由表。 |
|
AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
新建 Lambda 函数。 |
|
AWS 管理员 |
将 Lambda 函数添加到您的 VPC。 |
|
AWS 管理员 |
编写调用外部服务的代码。 |
|
AWS 管理员 |