选择连接到 AlloyDB 的方式

本页面介绍了 AlloyDB for PostgreSQL 连接方式,可帮助您选择最适合您的工作负载、网络拓扑和安全连接要求的方式。如需了解详情,请参阅连接概览

在本文档中,您将了解以下内容:

  • 应将哪种网络设置与 AlloyDB 搭配使用。
  • 如何安全地连接。
  • 连接最佳实践。
  • 工作负载位置对连接要求有何影响。

建议的连接方式

使用下表了解适合您工作负载的建议连接方式:

评估您的工作负载

在选择连接方式之前,请先评估您的工作负载。 AlloyDB 支持以下工作负载环境的连接:

  • Cloud Run、Cloud Shell 和非 Google SaaS 产品
  • Cloud Functions v2
  • App Engine 柔性环境和 App Engine 标准环境
  • Google Kubernetes Engine 和 Compute Engine
  • 本地设置

工作负载环境 专用 IP 公共 IP 说明
直接 连接器 直接 连接器
Cloud Shell Cloud Shell 需要公共 IP。
Cloud Run、Cloud Functions v2 需要无服务器 VPC 访问通道连接器或直接 VPC 出站连接。
App Engine 标准环境、柔性环境 需要无服务器 VPC 访问通道连接器。
GKE、Compute Engine 我们建议您使用专用 IP。如果您不需要传递性 VPC 对等互连,请使用专用服务访问通道。否则,请使用 Private Service Connect。
本地 专用 IP 需要有从本地到目标实例的网络路径。将语言连接器或身份验证代理与公共 IP 结合使用是一种安全的替代方案,且无需进行过多网络设置。

根据工作负载选择连接方式的最佳实践

连接到 AlloyDB 时,请根据您的工作负载环境考虑以下事项。

Cloud Shell

  • 身份验证代理公共 IP结合使用,与 Cloud Shell 建立连接。Cloud Shell 不支持连接到 VPC。它无法连接到专用服务访问通道或 Private Service Connect 实例。此外,Cloud Shell 没有稳定的出站 IP 地址,无法用于授权网络。如果您不使用身份验证代理或语言连接器,则必须允许所有 IP 地址范围,例如 0.0.0.0/0。我们不建议在生产实例中使用这种方法。

Cloud Run 和 Cloud Functions v2

  • 对于专用 IP,直接连接和语言连接器或身份验证代理都必须使用直接 VPC 出站连接。
  • 对于公共 IP,则必须使用语言连接器身份验证代理。或者,您也可以在授权网络中允许所有 IP 地址范围(例如 0.0.0.0/0),但鉴于存在安全风险,不建议在生产实例中这样做。

App Engine 标准环境和 App Engine 柔性环境

  • 对于专用 IP,需要使用无服务器 VPC 访问通道连接器,无论您使用的是语言连接器还是身份验证代理。
  • 对于公共 IP,则必须使用语言连接器或身份验证代理。或者,您也可以在授权网络中允许所有 IP 地址范围(即 0.0.0.0/0)。不过,由于存在安全风险,我们不建议在生产实例中使用这种方法。

GKE 和 Compute Engine

  • 您可以使用直接连接以及语言连接器或身份验证代理连接到 AlloyDB。

本地

  • 您可以使用直接连接以及语言连接器或身份验证代理连接到 AlloyDB。语言连接器和身份验证代理不会创建网络路径。确保工作负载与 AlloyDB 实例之间存在网络路径。

评估您的安全连接需求

AlloyDB 的语言连接器和身份验证代理能够提供增强的安全功能,例如 IAM 集成mTLS,但这些功能需要进行额外的设置。虽然直接连接默认也会加密,但不支持客户端证书或更高级别的 SSL 模式(verify-caverify-full)。我们建议您将语言连接器或身份验证代理与公共 IP 搭配使用,并且仅在语言连接器或身份验证代理不可行时才使用专用 IP 进行直接连接。

加密连接 IAM 身份验证 IAM 授权 mTLS
直接连接
语言连接器或身份验证代理

安全连接的最佳实践

  • 创建集群时,必须指定专用 IP 接口才能创建集群。如果您想使用公共 IP,建议您选择 Private Service Connect 作为专用 IP 接口。
  • 使用语言连接器或身份验证代理可实现 IAM 授权和身份验证、mTLS 等安全功能,不过需要进行一些设置才能使用这些功能。例如,如果您想将身份验证代理作为边车运行,或者想使用语言连接器,则此方法非常适合。如果您使用语言连接器或身份验证代理,数据库连接的延迟时间可能会略有增加。
  • 使用直接连接可获得最佳性能,并且在无法使用语言连接器或身份验证代理时,也应使用直接连接。直接连接默认会进行加密 (sslmode=require),但不支持客户端证书或更高级别的 SSL 模式。仅在无法使用语言连接器或身份验证代理时使用直接连接。

评估您的网络拓扑

对于网络拓扑,建议您使用专用服务访问通道进行 AlloyDB 连接。使用 Private Service Connect 可避免多个 VPC 之间的传递性对等互连问题。公共 IP 适合用于来自非Google Cloud SaaS 产品的连接,尤其是在专用 IP 不可行的情况下。

多 VPC 连接 非 Google SaaS 客户端 支持本地连接 说明
专用服务访问通道 默认情况下,不支持传递性 VPC 连接。您可以手动运行 socks5 代理来实现跨 VPC 连接,但这种方法很复杂。
Private Service Connect 如果您想从多个 VPC 连接到 AlloyDB,此方法可提供最简单的配置。
公共 IP 为了避免必须为授权网络确定来源工作负载的 CIDR 范围,最好将公共 IP 与语言连接器身份验证代理搭配使用。

根据网络拓扑选择连接方式的最佳实践

  • 默认使用专用服务访问通道
  • 处理多个 VPC 时,可使用 Private Service Connect 来规避传递性对等互连问题。
  • 对于非Google Cloud SaaS 产品,在与未托管在 Google Cloud上的软件即服务 (SaaS) 产品集成时,请选择公共网络拓扑,尤其是在专用 IP 连接不可行的情况下。专用 IP 默认处于启用状态,因此在这些场景中,您必须明确配置公共 IP。
  • 如果可能,请将公共 IP 与语言连接器或身份验证代理搭配使用,以实现安全连接,而无需配置授权网络。

后续步骤