6

我的 VPC 中有公共子网和 Pvt 子网。我有一些服务在 Pvt 子网的 EC2 上运行,需要由外部/移动资源访问。我该怎么做 - VPCLink 和 NLB 是这样做的方式,还是任何其他方式,在公共子网 (??) 中创建一些访问点。Lambda 似乎是答案(现在几乎适用于 AWS 中的所有内容)——甚至不确定该访问如何对 Pvt 子网中的资源起作用。

同样的 Pvt 子网也可以访问外部资源(AWS 之外)——我如何使用 API 网关来做到这一点?

不太了解 API-Gateway(和 Lambda)相对于 VPC 和子网是如何定位的,以及网络访问控制功能如何——它们是否可以直接访问 Pvt 子网。文档对此有些沉默,只谈论 IAM -如果有人可以解释的话。在 Lambda 上找到:AWS Lambda:如何为具有 VPC 访问权限的 lambda 函数设置 NAT 网关

文档称“API Gateway 允许您安全地连接......托管在 AWS 内部或外部的可公开寻址的 Web 服务”。我在 Pvt 子网中的资源不可公开寻址 - 我想。

谢谢

4

2 回答 2

7

您在 EC2 上运行的服务是否提供 API?API Gateway 旨在代理 API 请求。它通常与 Lambda 结合使用,以允许 Lambda 函数处理 HTTP 请求。您的服务不需要 API 网关。您可以简单地使用应用程序负载均衡器 (ALB) 或弹性负载均衡器 (ELB)。它们可以驻留在公有子网中,而您的服务保留在私有子网中。您可以使用安全组和 VPC 路由表来允许从公共 ALB/ELB 到私有 EC2 服务的通信。

于 2018-11-28T01:09:02.353 回答
3

在 Ben 的帮助下,这里是 介绍 Amazon API Gateway 私有终端节点的答案

入站:通过 API 网关访问私有子网中托管的服务

私有 VPC 内的端点集成。借助此功能,您现在可以让在 EC2 上运行的后端在您的 VPC 中保持私有,而无需公开访问的 IP 地址或负载均衡器。

所以本质上 API 网关可以访问已发布的端点,即使在私有子网中也是如此。

OutBound:通过 API 网关从私有子网访问外部托管服务

API Gateway 私有终端节点通过AWS PrivateLink接口 VPC 终端节点成为可能。接口终端节点通过在您在 VPC 中定义的子网中创建弹性网络接口来工作。然后,这些网络接口提供对在其他 VPC 中运行的服务或 API 网关等 AWS 服务的访问。配置接口端点时,您指定哪些服务流量应通过它们。使用私有 DNS 时,该服务的所有流量都被定向到接口端点,而不是通过默认路由,例如通过 NAT 网关或公共 IP 地址。

因此,您只需在 Pvt 子网中为 API Gateway创建一个 VPC 端点VPC 端点 - API 网关

于 2018-11-28T19:40:39.243 回答