无服务器 VPC 访问通道

通过无服务器 VPC 访问通道,您可以从无服务器环境(例如 Cloud Run、App Engine 或 Cloud Functions)直接连接到 Virtual Private Cloud (VPC) 网络。通过配置无服务器 VPC 访问通道,无服务器环境可以使用内部 DNS 和内部 IP 地址(如 RFC 1918RFC 6598 所定义)向 VPC 网络发送请求。对这些请求的响应也使用您的内部网络。

使用无服务器 VPC 访问通道有两个主要的好处:

  • 发送到 VPC 网络的请求绝不会向互联网公开。
  • 与互联网相比,通过无服务器 VPC 访问通道进行的通信延迟时间更短。

只有当内部流量是对从无服务器环境通过无服务器 VPC 访问通道连接器发送的请求的响应时,无服务器 VPC 访问通道才会将此内部流量发送到无服务器环境。如需了解如何将其他内部流量发送到无服务器环境,请参阅专用 Google 访问通道

如需跨多个 VPC 网络和 Google Cloud 项目访问资源,您还必须配置共享 VPCVPC 网络对等互连

工作原理

无服务器 VPC 访问通道基于名为连接器的资源。连接器会处理无服务器环境与 VPC 网络之间的流量。在 Google Cloud 项目中创建连接器后,将其连接到特定的 VPC 网络和地区。然后,您可以配置无服务器服务,将此连接器用于出站网络流量。

IP 地址范围

您可以通过两种方式为连接器设置 IP 地址范围:

  • 子网:您可以指定现有 /28 子网,前提是没有资源已使用该子网。
  • CIDR 范围:您可以指定未使用的 /28 CIDR 范围。指定此范围时,请确保其不与任何已在使用的 CIDR 范围重叠。

通过连接器发送到 VPC 网络的流量来自您指定的子网或 CIDR 范围。

防火墙规则

如果子网不是共享子网,则在 VPC 网络上创建了优先级为 1000 的隐式防火墙规则,以允许流量从连接器的 IP 地址范围进入网络中的所有目的地。隐式防火墙规则不会显示在 Google Cloud 控制台中,而且仅在关联的连接器存在时存在。

吞吐量和扩缩

无服务器 VPC 访问通道连接器由连接器实例组成。连接器实例可以使用多种机器类型之一。机器类型越大,吞吐量越高。您可以在 Google Cloud Console 和下表中查看每种机器类型的估算吞吐量和费用。

机器类型 估算的吞吐量范围 (Mbps)* 价格
(连接器实例加上网络出站数据传输费用)
f1-micro 100-500 f1-micro 价格
e2-micro 200-1000 e2-micro 价格
e2-standard-4 3200-16000 e2 standard 价格

* 最大吞吐量范围是根据常规操作估算的值。实际吞吐量取决于许多因素。请参阅虚拟机网络带宽

.

您可以设置连接器的最小和最大连接器实例数量。最小值必须至少为 2。最大值最多可以为 10,并且必须大于最小值。如果您没有为连接器指定实例数下限和上限,则系统会应用默认的最小值 2 和默认的最大值 10。当 Google 进行维护(例如安全更新)时,连接器可能会暂时超出为实例数上限设置的值。在维护期间,可以添加其他实例以确保服务不会中断。维护后,连接器返回的实例数与进入维护时间段前的实例数相同。维护通常持续几分钟。

无服务器 VPC 访问通道会随着流量的增加自动横向扩容连接器中的实例数量。添加的实例属于您为连接器指定的类型。连接器不能混用机器类型。连接器不会缩容。为了防止连接器扩容超出您的预期,请将实例数上限设置为较小的数字。如果连接器已横向扩容,并且您希望减少实例数量,请使用所需的实例数量重新创建连接器。

示例

如果您选择 f1-micro 作为机器类型,并分别使用最小和最大实例数(分别为 2 和 10)的默认值,则连接器的估计吞吐量对于默认最小实例数为 100 Mbps,对于默认最大实例数为 500 Mbps。

吞吐量图表

您可以通过 Google Cloud 控制台中的“连接器详细信息”页面监控当前吞吐量。此页面上的吞吐量图表显示了连接器的吞吐量指标的详细视图。

网络标记

借助无服务器 VPC 访问通道网络标记,您可以在防火墙规则路由中引用 VPC 连接器。

每个无服务器 VPC 访问通道连接器都会自动接收以下两个网络标记(有时称为“实例标记”):

  • 通用网络标记 (vpc-connector):适用于所有现有连接器和未来的所有连接器。

  • 唯一网络标记 (vpc-connector-REGION-CONNECTOR_NAME):适用于 REGION 区域中的连接器 CONNECTOR_NAME

无法删除这些网络标记。无法添加新的网络标记。

使用场景

您可以使用无服务器 VPC 访问通道访问 Compute Engine 虚拟机实例、Memorystore 实例以及具有内部 DNS 或内部 IP 地址的任何其他资源。以下是一些示例:

  • 您使用 Memorystore 存储无服务器服务的数据。
  • 您的无服务器工作负载使用您在 Compute Engine 虚拟机上运行的第三方软件。
  • 您在 Compute Engine 中的代管式实例组中运行后端服务,并需要您的无服务器环境在不向互联网公开的情况下与此后端通信。
  • 您的无服务器环境需通过 Cloud VPN 访问本地数据库中的数据。

示例

在此示例中,Google Cloud 项目跨以下无服务器环境运行多个服务:App Engine、Cloud Functions 和 Cloud Run。

已创建无服务器 VPC 访问通道连接器并分配了 IP 地址范围 10.8.0.0/28。因此,从连接器发送的任何请求的来源 IP 地址都在此范围内。

VPC 网络中有两个资源。其中一个资源具有内部 IP 地址 10.0.0.4。另一个资源具有内部 IP 地址 10.1.0.2,并且位于与无服务器 VPC 访问通道连接器不同的区域。

连接器处理直接来自这些内部 IP 地址的请求和响应的发送和接收。当连接器将请求发送到内部 IP 地址为 10.1.0.2 的资源时,需支付出站数据传输费用,因为该资源位于不同的区域。

无服务器环境与 VPC 网络中资源之间的所有请求和响应均在内部传输。

发送到外部 IP 地址的请求仍通过互联网传输,不使用无服务器 VPC 访问通道连接器。

下图展示了此配置。

无服务器 VPC 访问通道示例(点击可放大)
无服务器 VPC 访问通道示例(点击放大)

价格

对于无服务器 VPC 访问通道价格,请参阅 VPC 价格页面上的无服务器 VPC 访问通道

支持的服务

下表显示了可以使用无服务器 VPC 访问通道访问的网络类型:

连接服务 无服务器 VPC 访问通道支持
VPC
共享 VPC
传统网络
连接到 Cloud Interconnect 的网络
连接到 Cloud VPN 的网络
连接到 VPC 网络对等互连的网络

下表显示了支持无服务器 VPC 访问通道的无服务器环境:

无服务器环境 无服务器 VPC 访问通道支持
Cloud Run
Knative serving*
Cloud Functions
App Engine 标准环境 除 PHP 5 之外的所有运行时
App Engine 柔性环境*

*如果您想要在从 Knative serving 或 App Engine 柔性环境连接时使用内部 IP 地址,则无需配置无服务器 VPC 访问通道。只需确保您的服务部署在与您想要访问的资源连接的 VPC 网络中。

支持的网络协议

下表显示了无服务器 VPC 访问通道连接器支持的网络协议。

协议 仅路由通过 VPC 连接器向专用 IP 发送的请求 路由通过 VPC 连接器发送的所有流量
TCP
UDP
ICMP 仅支持外部 IP 地址

支持的区域

支持 Cloud Run、Cloud Functions 或 App Engine 标准环境的每个区域均支持无服务器 VPC 访问通道连接器。

如需查看可用区域,请运行以下命令:

gcloud compute networks vpc-access locations list

后续步骤