arrow_back

实现 Cloud SQL

登录 加入
访问 700 多个实验和课程

实现 Cloud SQL

实验 1 小时 30 分钟 universal_currency_alt 5 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

概览

在本实验中,您将配置一个 Cloud SQL 服务器,并学习如何使用代理通过外部连接将应用连接到该服务器。您还将配置通过专用 IP 链路建立的连接,以提供性能和安全方面的优势。我们选择在本实验中演示的应用是 Wordpress,但相关信息和最佳实践适用于任何需要使用 SQL Server 的应用。

在本实验结束时,您将有 2 个可正常运行的 Wordpress 前端实例,它们通过 2 种不同的连接类型连接到其 SQL 实例后端,如下图所示:

SQL 实验示意图

目标

在本实验中,您将学习如何执行以下任务:

  • 创建 Cloud SQL 数据库
  • 配置虚拟机以运行代理
  • 在应用和 Cloud SQL 之间建立连接
  • 使用专用 IP 地址将应用连接到 Cloud SQL

设置和要求

对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google Cloud 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示登录页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在实验详细信息面板中找到用户名

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在实验详细信息面板中找到密码

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标

任务 1. 创建 Cloud SQL 数据库

在此任务中,您需要遵循 Google Cloud 最佳实践配置 SQL 服务器并创建专用 IP 连接。

  1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击 SQL
注意: 如果出现弹出式窗口,提示您探索 Gemini in Databases,请点击 关闭
  1. 点击创建实例
  2. 点击选择 MySQL
  3. 指定以下信息,其他设置则保留默认值:
属性
实例 ID wordpress-db
root 密码 输入密码
选择 Cloud SQL 版本 企业版
区域
可用区 不限
数据库版本 MySQL 5.7
注意:请记下 root 密码,我们会在后面的步骤中用到并以“ROOT_PASSWORD”指代它。
  1. 展开显示配置选项

  2. 展开机器配置部分。

  3. 预配适量的 vCPU 和内存。如需选择机器配置,请点击下拉菜单,然后浏览您的选项。

注意以下几点:

  • 共享核心机器适合原型设计,不在 Cloud 服务等级协议 (SLA) 的涵盖范围内。
  • 为获得最佳性能,每个 vCPU 都存在 250 MB/秒的网络吞吐量上限。每增加一个核心都会使该网络上限提升;理论上,该上限最高可达到 2,000 MB/秒。
  • 对于具有较高性能要求的工作负载(例如在线事务处理 [OLTP]),一般准则是确保实例具有足够的内存,能够满足整个工作集和设定数量的活跃连接的需要。
    1. 对于本实验,请从下拉菜单中选择专用核心,然后选择 1 个 vCPU、3.75 GB

    2. 接下来,展开存储空间部分,然后选择存储类型存储空间容量

    注意以下几点:

  • 对于大多数应用场景,固态硬盘 (SSD) 是最佳选择。HDD(硬盘驱动器)性能较低,不过存储费用要低得多,因此 HDD 可能更适合存储不经常访问且不需要极短延迟时间的数据。
  • 存储容量与其吞吐量之间存在直接关系。
    1. 点击每个容量选项以查看相应选项对吞吐量的影响。请将选项重置为 10 GB。
    注意:在不启用自动增加存储空间功能的情况下,如果将存储容量设置得太低,可能会导致您的实例无法享受其服务等级协议 (SLA) 保障。
    1. 展开连接部分。

    2. 选择专用 IP

    3. 网络下拉菜单中,选择默认

    4. 点击出现的设置连接按钮。

    5. 在右侧面板中,依次点击启用 API使用自动分配的 IP 范围继续创建连接

    6. 点击页面底部的创建实例以创建数据库实例。

    注意:可能要等到专用 IP 地址更改传播完毕,创建按钮才会变为可点击状态。

    点击“检查我的进度”以验证是否完成了以下目标: 创建 Cloud SQL 实例

    任务 2:在虚拟机上配置代理

    在此任务中,您将在名为 wordpress-proxy 的虚拟机上配置代理,以便安全地连接到名为 wordpress-db 的 Cloud SQL 实例。

    如果您的应用与 Cloud SQL 实例不在同一个 VPC 连接的网络和区域中,请使用代理来保护其外部连接。

    若要配置代理,您需要知道 Cloud SQL 实例连接名称。

    注意:本实验附带 2 个预配置了 Wordpress 及其依赖项的虚拟机。您可以点击虚拟机名称来查看启动脚本和服务账号访问权限。请注意,我们对该虚拟机使用了最小权限原则,并且只允许进行 SQL 访问。此外,还预配置了一个网络标记和防火墙,允许端口 80 接受来自任何主机的流量。
    1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击 Compute Engine

    2. 点击 wordpress-proxy 旁边的 SSH

    3. 下载 Cloud SQL 代理并使其可以执行:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy

    若要启动代理,您需要知道 Cloud SQL 实例的连接名称。让 SSH 窗口保持打开状态,然后返回到 Cloud 控制台。

    1. 导航菜单 (“导航菜单”图标) 中,点击 SQL

    2. 点击 wordpress-db 实例并等待其名称旁边显示绿色对勾标记(这可能需要几分钟时间),这表明实例正在运行。

    3. 请记下连接名称,我们稍后将会用到并以“SQL_CONNECTION_NAME”指代它。

    4. 此外,为了让应用正常运行,您需要创建一个表。点击数据库

    5. 点击创建数据库,输入 wordpress(这是应用预期的名称),然后点击创建

    6. 返回到 SSH 窗口并将连接名称保存到环境变量中,注意将 [SQL_CONNECTION_NAME] 替换为您在上一步中复制的唯一名称:

    export SQL_CONNECTION=[SQL_CONNECTION_NAME]
    1. 如需验证是否设置了环境变量,请运行以下命令:
    echo $SQL_CONNECTION

    该命令应输出连接名称。

    1. 如需激活与 Cloud SQL 数据库的代理连接并将进程发送到后台,请运行以下命令:
    ./cloud_sql_proxy -instances=$SQL_CONNECTION=tcp:3306 &

    预期输出为:

    Listening on 127.0.0.1:3306 for [SQL_CONNECTION_NAME] Ready for new connections
    1. 按 Enter 键。
    注意:该代理将监听 127.0.0.1:3306 (localhost) 以及使用机器外部 IP 地址通过安全隧道安全连接到您的 Cloud SQL 的代理。

    点击“检查我的进度”以验证是否完成了以下目标: 在虚拟机上创建数据库并配置代理

    任务 3:将应用连接到 Cloud SQL 实例

    在此任务中,您要将示例应用连接到 Cloud SQL 实例。

    1. 配置 Wordpress 应用。如需查找虚拟机的外部 IP 地址,请查询其元数据:
    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip && echo
    1. 在浏览器中访问 wordpress-proxy 外部 IP 地址并配置 Wordpress 应用。
    注意:如果您看到提示 EXTERNAL_IP 不支持安全连接的弹出式窗口,请点击继续访问网站
    1. 点击赶紧试试吧

    2. 指定以下内容,注意将 [ROOT_PASSWORD] 替换为您在创建机器时配置的密码,并将其余设置保留为默认值:

    属性
    数据库名称 wordpress
    用户名 root
    密码 [ROOT_PASSWORD]
    数据库主机 127.0.0.1
    注意:您使用 127.0.0.1 (localhost) 作为数据库 IP 地址,因为您启动的代理会监听此地址并将流量安全地重定向到您的 SQL 服务器。
    1. 点击提交

    2. 建立连接后,点击 Run the installation(运行安装)以在 Cloud SQL 中实例化 Wordpress 及其数据库。此操作可能需要一点时间才能完成。

    3. 使用任意信息填充演示版网站的信息,然后点击 Install Wordpress(安装 Wordpress)。您不必记住或使用这些详细信息。

    注意:安装 Wordpress 最多可能需要 3 分钟,因为它需要将其所有数据传播到您的 SQL Server。
    1. 当“Success!”(成功!)窗口出现时,请移除网络浏览器地址栏中 IP 地址后的文本,然后按 Enter 键。
      您将看到一个正常运作的 Wordpress 博客!

    任务 4:通过内部 IP 地址连接到 Cloud SQL

    在此任务中,您将配置应用,以便使用其专用 IP 地址连接到名为 wordpress-db 的 Cloud SQL 实例。

    如果您可以将应用托管在 Cloud SQL 所在的同一个区域和 VPC 连接的网络中,则可以使用安全性和性能更高的配置(即使用专用 IP 地址)。

    使用专用 IP 地址,您可以通过缩短延迟时间来提高性能,并最大限度地减少 Cloud SQL 实例的攻击面,因为您可以通过内部 IP 地址与其单独通信。

    1. 在 Google Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击 SQL
    2. 点击 wordpress-db
    3. 记下 Cloud SQL 服务器的内部 IP 地址;我们将以“SQL_PRIVATE_IP”指代它。
    4. 导航菜单上,点击 Compute Engine
    注意: wordpress-private-ip 位于您的 Cloud SQL 所在的 ,这使您能够利用更安全的连接。
    1. 复制 wordpress-private-ip 的外部 IP 地址,将其粘贴到浏览器窗口中,然后按 Enter 键。

    2. 点击赶紧试试吧

    3. 指定以下信息,其他设置则保留默认值:

    属性
    数据库名称 wordpress
    用户名 root
    密码 输入创建 Cloud SQL 实例时配置的“ROOT_PASSWORD”
    数据库主机 [SQL_PRIVATE_IP]
    1. 点击提交
    注意:这一次,您将创建与专用 IP 地址的直接连接,而不是配置代理。该连接是专用连接,这意味着它不会将出站流量传输到互联网,因此可以受益于更好的性能和安全性。
    1. 点击 Run the installation(运行安装)。
      系统会显示“Already Installed!”(已安装!)窗口,这意味着您的应用已通过专用 IP 地址连接到 Cloud SQL 服务器。

    2. 在网络浏览器的地址栏中,移除 IP 地址后的文本,然后按 Enter 键。
      您将看到一个正常运作的 Wordpress 博客!

    任务 5:回顾

    在此实验中,您创建了一个 Cloud SQL 数据库,并将其配置为既使用通过安全代理的外部连接,也使用通过专用 IP 地址的连接,后者更为安全且性能更好。请注意,只有当应用和 Cloud SQL 服务器位于同一个区域并且属于同一个 VPC 网络时,才能通过专用 IP 地址进行连接。如果应用托管在其他区域、VPC 网络甚至不同的项目中,可以使用代理来确保应用通过外部连接所建立连接的安全性。

    结束实验

    完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

    系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

    星级数的含义如下:

    • 1 颗星 = 非常不满意
    • 2 颗星 = 不满意
    • 3 颗星 = 一般
    • 4 颗星 = 满意
    • 5 颗星 = 非常满意

    如果您不想提供反馈,可以关闭该对话框。

    如果要留言反馈、提出建议或做出更正,请使用支持标签页。

    版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

    准备工作

    1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
    2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
    3. 在屏幕左上角,点击开始实验即可开始

    使用无痕浏览模式

    1. 复制系统为实验提供的用户名密码
    2. 在无痕浏览模式下,点击打开控制台

    登录控制台

    1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
    2. 接受条款,并跳过恢复资源页面
    3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

    此内容目前不可用

    一旦可用,我们会通过电子邮件告知您

    太好了!

    一旦可用,我们会通过电子邮件告知您

    一次一个实验

    确认结束所有现有实验并开始此实验

    使用无痕浏览模式运行实验

    请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。