使用反向 SSH 隧道配置连接

您可以通过安全的反向 SSH 隧道建立从目标数据库到源数据库的连接。此方法需要 Google Cloud 项目中的堡垒主机虚拟机,以及可连接到源数据库的机器(例如网络上的笔记本电脑)。

Database Migration Service 会在创建迁移时收集所需信息,并自动生成用于设置所有内容的脚本。

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

设置反向 SSH 隧道

在 Database Migration Service 流程中执行以下步骤以 创建迁移作业,从而在源数据库与 Cloud SQL 实例之间设置反向 SSH 隧道。提供一些参数后,您可以在同时连接到源数据库和 Google Cloud的机器上执行一组 gcloud 命令。

  1. 选择用于在源数据库和 Cloud SQL 实例之间建立连接的虚拟机实例。通常,这是一个在 VPC 中运行的虚拟机,而访问新 Cloud SQL 数据库的应用也在该 VPC 中运行。虚拟机实例用作 SSH 隧道堡垒服务器。
  2. 为此,您可以使用现有的 Compute Engine 虚拟机实例。

    1. 从列表中选择 Compute Engine 虚拟机实例。

    2. 提供 SSH 隧道可以使用的空闲端口。

  3. 或者,您也可以在此步骤中创建新虚拟机。选择 CREATE A COMPUTE ENGINE VM INSTANCE,生成的脚本会包含创建该资源的说明。

    1. 为虚拟机实例提供名称。

    2. 为虚拟机选择机器类型。

    3. 为虚拟机指定子网

  4. 点击查看脚本,查看生成的脚本。

  5. 在可同时访问源数据库和 Compute Engine 虚拟机的机器上运行脚本。该脚本会执行以下操作:

    • 将 Compute Engine 虚拟机配置为 SSH 隧道堡垒服务器。

    • 建立安全的 SSH 连接,将流量从堡垒主机端口转发到源 PostgreSQL 数据库服务器(端口 5432)。

    • 如果您要创建新的 Compute Engine 虚拟机,请在成功运行脚本后,从脚本输出中复制虚拟机服务器 IP,并将其输入到提供的文本字段中。稍后您测试或启动迁移作业时,Cloud SQL 实例将根据需要进行更新。

  6. 点击配置并继续。

  7. 验证迁移作业,确认其已正确将数据从源数据库实例迁移到目标 Cloud SQL 数据库实例。

  8. 根据您的网络架构,您可能需要在系统中设置其他 VPN 网关。如需了解详情,请参阅 Cloud VPN 文档中的以下页面: 在 Google Cloud 和 AWS 之间创建高可用性 VPN 连接或 在 Google Cloud 和 Azure 之间创建高可用性 VPN 连接。

  9. 配置迁移作业、验证连接性并成功配置 VPN(如有必要)后,您就可以运行该作业了。