API 网关如何与 Firehose VPC 端点通信

How API Gateway talk to Firehose VPC endpoint

Using Amazon Kinesis Data Firehose with AWS PrivateLink 告诉 Firehose VPC 端点在 AWS 内保持 VPC 和 Firehose 之间的流量。

You can use an interface VPC endpoint to keep traffic between your Amazon VPC and Kinesis Data Firehose from leaving the Amazon network.

当 API 网关通过 AWS 集成调用 Firehose 的 PutRecord API 时,流量是通过 Firehose VPC 端点还是进入互联网?

更新

Introducing Amazon API Gateway Private Endpoints显示EC2和Lambda在VPC中的示意图。 "All publicly available endpoints" 转到 Internet 并不确定 API 网关是否识别 Firehose 专用端点是否存在并将流量路由到那里。

DynamoDBEC2 的示例大约是 Gateway VPC Endpoints。 对于 API Gateway,有 没有 网关 VPC 端点。 取而代之的是 Interface VPC Endpoints (AWS PrivateLink)Gateway private integrations

在我开始之前,需要提到的是有三个 API 端点 types API 网关端点类型的选择在使用 VPC 时具有重要影响。

API 网关的接口 VPC 端点

它允许例如私有 EC2 实例和 public 子网使用 AWS 内部网络访问您的 API 网关, 没有经过 Interent。为此,API 网关端点 必须 配置为 private

在这种情况下 API Gateway 像往常一样与 kinesis 一起工作。除了为其设置 AWS 集成外,无需执行任何操作。 例如,私有 EC2 实例(在私有子网中)将能够访问 private API 网关端点 通过接口VPC端点,随后访问Kinesis:

私有 EC2 实例 -> API 网关的接口 VPC 端点 -> API 网关(私有) -> Kinesis

这里要知道的重要一点是,一旦您为 API 网关创建了接口 VPC 端点 你的 VPC,你 will not 能够连接到 regionaledge-optimized API 网关,甚至 在 public 子网中。只有 private API 网关可以从 VPC 内部访问 存在。

网关私有集成

这允许您的 public(即 regionaledge-optimized)API 网关访问私有子网中的私有 EC2 实例。 这是通过在连接到 VPC Link 的 VPC 中创建(例如内部)NLB 来完成的 将您与 API 网关中的 API 方法联系起来。

VPC Link 在方法级别工作,因此您的 public API 可以有一个方法(例如 /private)来 通过 VPCLink 和第二种方法(例如 /kinesis)访问私有 EC2 实例 使用 AWS 集成像往常一样访问运动。

访问私有 EC2 实例如下所示:

API 网关(/私有方法)-> VPCLink -> NLB -> 私有 EC2 实例。

访问 Kinesis:

API 网关 (/kinesis) -> Kinesis(通过 AWS 集成)

您还可以让您的私有 EC2 实例与 Kinesis 通信。在这种情况下你需要 Kinesis 的 VPC 接口端点,如果您不使用 NAT gateway:

API 网关(/private)-> VPCLink -> NLB -> 私有 EC2 实例 -> Kinesis 的接口 VPC 端点 -> Kinesis(AWS 集成)

希望这能阐明 API Gateway 和 Kinesis 如何交互。

p.s。 AWS 约定以类似的方式命名不同的事物会引起很多麻烦。