标准同构 PostgreSQL 迁移的网络连接

本页面简要介绍了与为从标准同构 PostgreSQL 迁移到 Cloud SQL for PostgreSQL 配置网络连接相关的概念。如需了解快速启动迁移连接,请参阅 使用快速启动迁移指南。

熟悉不同的连接方法及其连接性要求后,您可以使用 决策树图表为您的场景选择合适的解决方案。

迁移过程中涉及的网络组件

对于同构 PostgreSQL 到 Cloud SQL 的迁移,Database Migration Service 会连接到目标 Cloud SQL for PostgreSQL 实例,然后代表该实例管理迁移过程。目标实例会建立与源实例的连接,而 Database Migration Service 会监控该过程。

PostgreSQL 迁移流程概览
图 1. Database Migration Service for PostgreSQL 迁移期间的数据移动。(点击可放大)
PostgreSQL 迁移流程概览

在规划迁移的网络连接设置时,请务必仔细考虑基础架构要求,包括网络决策可能会对迁移后的数据库实例的最终状态带来哪些限制。例如,如果您想使用专用连接进行网络连接,则需要使用启用了专用 IP 的目标 Cloud SQL 实例。

连接方法可用性

不同的源数据库可以使用不同的连接方法,具体取决于您是要迁移到新的目标实例还是现有的目标实例。下表概述了哪种场景支持哪种方法:

源数据库产品 迁移到新目标实例的方法 迁移到现有目标实例的方法
自托管、Amazon Aurora、Amazon RDS、Azure Database for PostgreSQL IP 许可清单、反向 SSH 隧道、VPC 对等互连 IP 许可清单、反向 SSH 隧道、VPC 对等互连(需要 PSA 目标实例)、PSC 接口(需要启用 PSC 的目标实例)
Cloud SQL for PostgreSQL IP 许可清单(不推荐)、专用 VPC 对等互连 IP 许可清单(不推荐)、专用 VPC 对等互连、PSC 接口(需要启用 PSC 的目标实例)

连接方法比较

每种连接方法都有不同的优势和要求。 您可以使用下表快速比较这些方法,然后在专门介绍每种方法的部分中了解更多详情。

网络方法 优点 缺点
IP 许可清单
  • 最容易设置的连接方法。
  • 当无法通过 Google Cloud中的专用网络访问源数据库时,此方法非常有用。
  • 需要您向公共互联网公开源数据库服务器的 IPv4 地址。这需要采取额外的安全措施。 例如,我们建议您使用 TLS 证书和防火墙规则来保护连接。
  • 配置防火墙规则可能需要网络安全或 IT 部门的协助。
反向 SSH 隧道
  • 比通过公共 IP 并使用 IP 许可清单进行连接更安全。

    初始连接是通过公共互联网上的 Secure Shell (SSH) 端口建立的。连接处于活跃状态后,所有流量都会通过安全的专用隧道传输到 PostgreSQL 端口 5432。

  • 当无法通过 Google Cloud中的专用网络访问源数据库,但您不想将源数据库服务器直接公开到公共互联网时,此方法非常有用。
  • 使用中间服务器(反向 SSH 隧道机器)进行连接可能会导致额外的延迟。
  • 您必须设置和维护反向 SSH 主机服务器。 在整个迁移过程中,服务器必须保持在线状态。
Private Service Connect 接口
  • 使用网络连接建立与来源专用 IP 的连接。 此方法不会消耗 VPC 中的对等互连配额。
  • 最简单且推荐配置的来源专用连接方法。
  • 仅支持迁移到现有 Cloud SQL for PostgreSQL 目标。 如果您想使用此方法,则需要直接在 Cloud SQL 中创建目标实例。
  • 需要设置网络连接并调整防火墙规则。
  • 建立连接后,您将无法修改网络连接。
仅适用于 Cloud SQL for PostgreSQL 来源: 专用 VPC 对等互连 此连接方法专门用于在不使用共享 VPC 的情况下,在 PSA Cloud SQL for PostgreSQL 实例之间进行迁移。 要求两个实例都是已启用专用 IP 的 PSA 实例。 不支持启用了 PSC 的目标位置。
通过虚拟私有云对等互连实现专用连接 系统会通过 VPC 对等互连建立与源数据库的专用 IP 地址的连接。如果您的 VPC 没有足够的对等互连配额,则可能很难使用此连接方法。对于从 Cloud SQL for PostgreSQL 源迁移的大多数场景,我们建议您改用 使用 Private Service Connect 接口的专用连接。

用于源数据库连接的 IP 许可清单

使用 IP 许可清单连接方法时,Cloud SQL 会尝试在 PostgreSQL 端口 5432 上建立与源数据库服务器的公开可用 IP 地址的连接。

显示同构迁移的公共 IP 许可清单连接的图表。
图 2. 同构 PostgreSQL 迁移的 IP 许可清单网络连接图。(点击可放大)
显示同构迁移的公共 IP 许可清单连接的图表。

IP 许可清单连接的要求

概括来讲,如需使用此连接方法,您需要确保以下事项:

  • 您必须向公共互联网公开源数据库 IP 地址(直接公开,或通过域名服务器 [DNS] 使用公开认可的主机名公开)。

  • 您的目标 Cloud SQL 实例必须启用公共 IP。您的源数据库必须允许来自目标实例的出站公共 IP 的传入连接。

配置 IP 许可清单连接

配置公共 IP 连接需要执行不同的步骤,具体取决于源数据库类型。有关详情,请参阅:

反向 SSH 隧道数据库连接

此连接方法是公共网络连接和专用网络连接的混合。连接本身是通过 Secure Shell (SSH) 端口建立到隧道主机服务器的公共 IP 地址。连接处于活跃状态后,所有流量都会通过安全隧道传输到源数据库的专用 IP 地址(端口 5432)。

对于位于 Google Cloud内部的 Cloud SQL 数据源或自托管式解决方案,我们建议您使用 通过 Private Service Connect 接口建立专用连接或 通过虚拟私有云对等互连建立专用连接的方法。

一张网络图,展示了通过专用 SSH 服务器建立的高层级连接设置。
图 3. 迁移网络示例:通过 SSH 隧道建立源连接。(点击可放大)
一张网络图,展示了通过专用 SSH 服务器建立的高层级连接设置。

反向 SSH 隧道的要求

如需创建连接,您需要在隧道服务器(也称为堡垒主机)上向公共互联网公开 SSH 端口。建立连接后,所有流量都会通过专用隧道连接进行路由。

此方法需要额外的网络组件:

  • Google Cloud 中的虚拟机 (VM),用作反向 SSH 机器。
  • 网络中可连接到源数据库的其他机器。

配置反向 SSH 隧道连接

Database Migration Service 可以生成设置脚本来创建反向 SSH 虚拟机,但完整的端到端流程因源数据库类型而异。如需了解详情,请参阅 配置反向 SSH 连接。

使用 Private Service Connect 接口的专用连接

通过此连接方法,您可以连接到源数据库的专用 IP,而无需消耗 VPC 对等互连配额。Private Service Connect 接口是专用 IP 连接的推荐方法,但仅在 迁移到现有实例时可用。

使用 Private Service Connect 接口时,目标实例不会消耗更多对等互连配额。而是利用 Private Service Connect 接口访问可访问源数据库专用 IP 的虚拟私有云。根据您的网络架构,您可能需要使用其他组件,例如 Cloud VPN 或 Cloud Interconnect。

显示 Private Service Connect 与 Cloud VPN 连接的图表,用于同构迁移。
图 4. 使用 Private Service Connect 接口的网络连接,用于从 Google Cloud外部的来源进行同构迁移。(点击可放大)
显示 Private Service Connect 与 Cloud VPN 连接的图表,用于同构迁移。

对于从 Cloud SQL for PostgreSQL 实例进行的迁移,您的源实例需要启用专用服务访问通道,并与您创建网络连接的虚拟私有云建立对等互连,但目标 Cloud SQL for PostgreSQL 实例不会消耗更多对等互连配额。而是利用 Private Service Connect 接口。

Private Service Connect 接口的要求

此连接方法需要满足以下条件:

  • 目标数据库实例必须是启用了 PSC 的 Cloud SQL for PostgreSQL 实例。

  • 您需要拥有 已启用专用服务访问通道的虚拟私有云网络。

    这是您在其中创建网络连接的网络。源数据库的 IP 必须可从该虚拟私有云访问。例如,对于 Cloud SQL for PostgreSQL 来源,这是您与启用了 PSA 的来源 Cloud SQL 实例建立对等互连的网络。

使用 Private Service Connect 接口配置专用 IP 连接

如需将专用 IP 连接与 Private Service Connect 接口搭配使用,您的源数据库专用 IP 必须可从您的虚拟私有云访问。根据您的网络架构,您可能需要使用其他组件,例如 Cloud VPN 或 Cloud Interconnect。

如需详细了解如何为不同的数据库来源配置专用 IP 连接,请参阅:

仅限 Cloud SQL for PostgreSQL 来源:专用 VPC 对等互连

此方法专用于在 PSA Cloud SQL for PostgreSQL 实例之间进行迁移。 在标准网络场景中,通过虚拟私有云对等互连连接两个 Cloud SQL 实例需要使用共享 VPC。对于使用 Database Migration Service 进行的同构 PostgreSQL 迁移,您可以在不使用共享 VPC 的情况下连接两个 PSA 实例。

专用 VPC 对等互连的要求

此连接方法需要满足以下条件:

  • 源数据库实例必须是启用了 PSA 的 Cloud SQL for PostgreSQL 实例。

  • 目标数据库实例必须是启用了 PSA 的 Cloud SQL for PostgreSQL 实例。

  • 您需要拥有 已启用专用服务访问通道的虚拟私有云网络。

    这是 Database Migration Service 与目标 Cloud SQL 实例对等互连的网络。您需要有足够的空间来分配所需的 IP 范围。

配置专用 IP 连接专用 VPC 对等互连

如需详细了解如何为源 PSA Cloud SQL for PostgreSQL 实例配置专用 VPC 对等互连,请参阅 为 Cloud SQL for PostgreSQL 配置专用虚拟私有云对等互连。

通过 VPC 对等互连建立专用连接

通过此方法,您可以使用虚拟私有云 (VPC) 中的专用 IP 地址连接到来源。您无需向公共互联网公开任何接口即可使用此方法,但它要求您的源数据库 IP 地址或主机名可以从 Google Cloud VPC 访问。对于位于 Google Cloud外部的来源,您可能需要额外的网络组件,例如 Cloud VPN 或 Cloud Interconnect。

显示同构 PostgreSQL 迁移的虚拟私有云对等互连连接的图表。
图 5. 通过虚拟私有云对等互连实现网络连接,以进行同构 PostgreSQL 迁移。(点击可放大)
显示同构 PostgreSQL 迁移的虚拟私有云对等互连连接的图表。

通过 VPC 对等互连实现专用 IP 连接的要求

通过 VPC 对等互连建立专用 IP 连接需要满足以下条件:

通过 VPC 对等互连配置专用 IP 连接

如需将专用 IP 连接与虚拟私有云对等互连搭配使用,您的源数据库专用 IP 必须可从虚拟私有云访问。根据您的网络架构,您可能需要使用其他组件,例如 Cloud VPN 或 Cloud Interconnect。

如需详细了解如何为不同的数据库来源配置专用 IP 连接,请参阅:

网络连接决策树

熟悉所有受支持的连接方法及其要求后,您可以按照图表中的问题来帮助您选择适合您的场景的连接方法。

包含引导性问题的决策树图,可帮助您选择合适的连接方法。
图 6. 来源网络连接决策树。

后续步骤