本页面介绍了 AlloyDB for PostgreSQL 连接选项,可帮助您选择最适合您的工作负载、网络拓扑和安全连接要求的选项。如需了解详情,请参阅连接概览。
在本文档中,您将了解以下内容:
- 要将哪种网络设置与 AlloyDB 搭配使用。
- 如何安全连接。
- 连接最佳实践。
- 工作负载位置对连接要求有何影响。
推荐的网络连接选项
请使用下表了解建议的工作负载连接选项:
- 建议为专用 IP(专用服务访问通道或 Private Service Connect)和公共 IP 使用直接连接、语言连接器还是身份验证代理。
- 连接要求,例如无服务器虚拟私有云 (VPC) 访问通道连接器和直接 VPC 出站流量。如需了解详情,请参阅比较直接 VPC 出站流量和 VPC 连接器 | Cloud Run 文档。
- 专用 IP(专用服务访问通道与 Private Service Connect)和公共 IP 的注意事项。
评估您的工作负载
在选择连接选项之前,请评估您的工作负载。 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 需要从本地到目标实例的网络路径。使用语言连接器或 Auth 代理的公共 IP 是一种安全替代方案,无需进行广泛的网络设置。 |
根据工作负载选择连接方式的最佳实践
连接到 AlloyDB 时,请根据您的工作负载环境考虑以下事项。
Cloud Shell
- 使用 Auth 代理和公共 IP 与 Cloud Shell 建立连接。Cloud Shell 不支持连接到 VPC。它无法连接到专用服务访问通道或 Private Service Connect 实例。此外,Cloud Shell 没有稳定的出站 IP 地址,无法用于授权网络。
Cloud Run 和 Cloud Functions v2
App Engine 标准环境和 App Engine 柔性环境
- 使用无服务器 VPC 访问通道连接器进行专用 IP 连接,无论您使用的是语言连接器还是 Auth 代理。
- 对于公共 IP,您必须使用语言连接器或 Auth 代理。
GKE 和 Compute Engine
- 您可以使用直接连接、语言连接器或 Auth Proxy 连接到 AlloyDB。
本地
- 您可以使用直接连接、语言连接器或 Auth Proxy 连接到 AlloyDB。语言连接器和 Auth 代理不会创建网络路径。确保工作负载与 AlloyDB 实例之间存在网络路径。
评估您的安全连接需求
AlloyDB 的语言连接器或 Auth Proxy 提供增强的安全功能,例如 IAM 集成和 mTLS,但这些功能需要额外的设置。直接连接虽然默认情况下会加密,但不支持客户端证书或更高级别的 SSL 模式(verify-ca
和 verify-full
)。我们建议您将语言连接器或 Auth 代理与公共 IP 搭配使用,并且仅在语言连接器或 Auth 代理不可行时才使用专用 IP 进行直接连接。
加密连接 | IAM 身份验证 | IAM 授权 | mTLS | |
---|---|---|---|---|
直接连接 | ✅ | ✅ | ❌ | ❌ |
语言连接器或 Auth 代理 | ✅ | ✅ | ✅ | ✅ |
安全连接的最佳实践
- 创建集群时,您必须指定专用 IP 接口,以便创建集群。如果您想使用公共 IP,建议您选择 Private Service Connect 作为专用 IP 接口。
- 使用语言连接器或身份验证代理可实现 IAM 授权和身份验证以及 mTLS 等安全功能,即使这些功能需要进行一些设置。例如,如果您想将 Auth 代理作为边车运行,或者想使用语言连接器,则此方法非常适合。如果您使用语言连接器或 Auth 代理,数据库连接的延迟时间可能会略有增加。
- 使用直接连接可获得最佳性能,并且在无法使用语言连接器或 Auth Proxy 时,也应使用直接连接。直接连接默认情况下会进行加密 (
sslmode=require
),但不支持客户端证书或更高级别的 SSL 模式。仅在无法使用语言连接器或 Auth 代理时使用直接连接。
评估网络拓扑
对于网络拓扑,我们建议您使用 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 时使用语言连接器或 Auth Proxy,以实现安全连接,而无需配置授权网络。