使用专用 IP 连接到 Cloud SQL for PostgreSQL 实例

本页面介绍如何使用专用 IP 创建并连接到 PostgreSQL 实例。如果您及时完成本快速入门中的步骤(包括清理),那么在此期间所创建资源的费用通常不会超过一美元。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 启用必要的 Google Cloud API。

    控制台

    在 Google Cloud 控制台中,转到 API 页面。

    进入“API”

    启用 Cloud SQL Admin API。 通过启用此 API,您可以运行 Cloud SQL Auth 代理。

    gcloud

    点击以下按钮打开 Cloud Shell,以通过命令行直接在浏览器中访问 Google Cloud 资源。Cloud Shell 可用于运行本快速入门中介绍的 gcloud 命令。

    打开 Cloud Shell

    按照以下方式使用 Cloud Shell 运行 gcloud services enable 命令,以启用本快速入门所需的 API。

    gcloud services enable sqladmin.googleapis.com

    此命令会启用以下 API:

    • Cloud SQL Admin API。通过启用此 API,您可以运行 Cloud SQL Auth 代理。

概览

您可以通过多种方式使用专用 IP 地址连接到 Cloud SQL 实例,具体取决于来源所在的位置。关键因素是源机器必须与 Cloud SQL 实例位于同一 VPC 网络中。如果来源不在 Google Cloud 中或不在同一 Google Cloud 项目中,则您必须以不同于我们在此处显示的方式配置连接

在本快速入门中,我们将通过最直接的路径配置连接。来源和目标位于同一 Google Cloud 项目和同一 VPC 网络中。我们创建一个使用专用 IP 地址(目标)和 Compute Engine 虚拟机(来源)的 Cloud SQL 实例。我们使用虚拟机安装和使用从虚拟机连接到 Cloud SQL 实例所需的工具。

执行以下操作:

  1. 创建使用专用 IP 地址的 Cloud SQL 实例

    查找并保存实例的 connection name 以供日后使用。

  2. 创建 Compute Engine 虚拟机
  3. 打开与 Compute Engine 虚拟机的两个 SSH 连接

    您将使用第一个窗口来安装 psql 并安装和启动 Cloud SQL Auth 代理。然后,您将使用第二个窗口,通过连接到 Cloud SQL Auth 代理连接到 Cloud SQL 实例。

  4. 在 SSH 窗口 #1 中,执行以下操作:
    1. 安装 psql 客户端
    2. 安装 Cloud SQL Auth 代理

      Cloud SQL Auth 代理充当 psql 客户端和 Cloud SQL 实例之间的连接器。

    3. 启动 Cloud SQL Auth 代理

      成功后,Cloud SQL Auth 代理会侦听连接请求。

  5. 在 SSH 窗口 #2 中,通过将 psql 客户端连接到 Cloud SQL Auth 代理来连接到 Cloud SQL 实例

    成功后,您会在此窗口中看到 psql 提示符,并在 SSH 窗口 #1(运行 Cloud SQL Auth 代理)中看到一条成功的连接消息。

  6. 清理

创建使用专用 IP 地址的 Cloud SQL 实例。

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击创建实例
  3. 点击选择 PostgreSQL
  4. 如果系统提示您启用 Compute API,请点击启用 API 按钮。
  5. 实例信息部分,输入实例 ID 的名称。
  6. 为 postgres 用户输入密码。记下您创建的密码,稍后您将用到它。
  7. 选择区域和可用区可用性部分中,选择单可用区选项。
  8. 展开显示配置选项
  9. 展开连接
  10. 清除公共 IP
  11. 选择专用 IP
  12. 网络下拉列表中,选择默认
  13. 如果您使用的是新项目,则系统会提示您:需要专用服务连接。然后按以下步骤操作:
    1. 点击设置连接
    2. 点击启用 Service Networking API
    3. 分配 IP 范围部分中,选择使用自动分配的 IP 范围
    4. 点击继续
    5. 点击创建连接,然后等待连接创建完成。
  14. 点击创建实例

您将转到实例“概览”页。点击进入新实例,查看包括其专用 IP 地址在内的详细信息。

连接到此实例部分中,复制并保存实例的连接名称connection name 的格式为 projectID:region:instanceID

稍后您将在启动 Cloud SQL Auth 代理时使用此 connection name

创建数据库

返回实例的“概览”页面,然后选择数据库菜单项。

  • 选择创建数据库
  • 数据库名称字段中输入 DB_NAME
  • 点击创建

稍后您将在使用 Cloud SQL Auth 代理进行连接时使用此 db_name

创建 Compute Engine 虚拟机

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”

  2. 点击创建实例
  3. 输入实例的名称
  4. 访问权限范围中,选择允许所有 Cloud API 的全面访问权限
  5. 点击创建并等待虚拟机完成创建。

打开与 Compute Engine 虚拟机的两个 SSH 连接

我们在虚拟机中使用两个窗口。第一个窗口用于安装 psql 客户端和 Cloud SQL Auth 代理,获取实例连接名称,然后使用此名称启动代理。第二个窗口用于通过代理连接到 Cloud SQL 实例。

  1. 展开 Compute Engine 虚拟机实例的SSH列中的 SSH 菜单。
  2. 选择在浏览器窗口中打开以打开 SSH 窗口 #1。

    窗口中的提示可能需要几秒钟才能使用。

  3. 出现提示时,输入 pwd 以验证您是否位于 /home/$USER 目录中。

    在该窗口中,您将安装 psql 客户端和 Cloud SQL Auth 代理,并启动 Cloud SQL Auth 代理。

  4. 再次选择在浏览器窗口中打开,以打开 SSH 窗口 #2。

    您将使用此窗口连接到 Cloud SQL 实例。

安装 psql 客户端

使用 SSH 窗口 #1 执行此步骤。

通过软件包管理器安装 psql 客户端:

sudo apt-get update
sudo apt-get install postgresql-client
  

安装 Cloud SQL Auth 代理

使用 SSH 窗口 #1 执行此步骤。

  1. 安装 wget
    sudo apt-get install wget
        
  2. 下载 Cloud SQL Auth 代理:
    wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.8.2/cloud-sql-proxy.linux.amd64 \
    -O cloud-sql-proxy
      
  3. 使 Cloud SQL Auth 代理可执行:
    chmod +x cloud-sql-proxy
      

启动 Cloud SQL Auth 代理

使用 SSH 窗口 #1 执行此步骤。

启动 Cloud SQL Auth 代理,以便您可以监控其输出。将 INSTANCE_CONNECTION_NAME 替换为您在创建 Cloud SQL 实例时复制的 connection name

./cloud-sql-proxy --private-ip INSTANCE_CONNECTION_NAME

Cloud SQL Auth 代理成功启动后,SSH 窗口中会显示以下类似消息:

Listening on 127.0.0.1:5432 for myInstance
Ready for new connections

连接到您的 Cloud SQL 实例

使用 SSH 窗口 #2 执行此步骤。

DB_NAME 替换为 Cloud SQL 数据库的名称后,运行以下命令:

psql "host=127.0.0.1 port=5432 sslmode=disable dbname=DB_NAME user=postgres"

在“输入密码:”提示符处,输入您的 PostgreSQL 账号的密码。

验证 PostgreSQL 提示符是否显示。您已使用 psql 客户端连接到数据库。

返回到您启动了 Cloud SQL Auth 代理的终端窗口。您应该会看到如下所示的消息:

New connection for myInstance

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 选择 myinstance 实例以打开实例详情页面。
  3. 在页面顶部的图标栏中,点击删除
  4. 删除实例窗口中,输入实例的名称,然后点击删除

可选的清理步骤

如果您没有使用在本快速入门中启用的 API,则可以将其停用。

  • 在本快速入门中启用的 API:
    • Cloud SQL Admin API
  1. 在 Google Cloud 控制台中,转到 API 页面。

    转到“API”

  2. 选择 Cloud SQL Admin API,然后点击停用 API 按钮。

  3. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”

  4. 选择实例的名称。

  5. 更多操作菜单中,选择删除

后续步骤

您可以根据自己的需求详细了解如何创建 Cloud SQL 实例

您还可以了解如何为 Cloud SQL 实例创建 PostgreSQL 用户数据库

此外,您还可以了解如何从其他 Google Cloud 应用连接到 Cloud SQL 实例: