arrow_back

实施 Cloud SQL (AWS)

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

实施 Cloud SQL (AWS)

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

您最近受聘于一家 IT 企业,该企业使用 Google Cloud 作为其主要云服务提供商。作为 SQL 数据库专家,您的任务是研究和采用 Google Cloud 提供的 SQL 服务。 您主要关心的方面包括:

  • 部署
  • 安全性
  • 应用集成
  • 连接方法

由于您在之前的职位上一直在使用 Amazon Web Services (AWS),因此您知道如何设置关系型数据库服务 (RDS) 实例来支持您的操作。AWS RDS 实例提供经济实惠且大小可调的容量,同时管理着耗时的数据库管理任务。

在 AWS 中,连接数据库实例的方式取决于环境。下面是一些示例:

  • 连接同一 VPC 内的数据库实例:设置虚拟私有云 (VPC) 安全群组规则,限制对数据库 (DB) 实例的访问。
  • 连接另一 VPC 内的数据库实例:在数据库实例所在 VPC 与客户端所在 VPC 之间建立对等互连。
  • 通过公共互联网连接数据库实例:如果您之前已配置 VPC 和子网来支持这一类型的连接,则需要具备互联网网关和安全群组规则。
  • 通过专用连接来连接数据库实例:要在 VPC 与 AWS RDS 端点之间建立专用连接,需创建一个带有 AWS Private Link 的接口 VPC 端点。这样您无需互联网网关、网络地址转换 (NAT) 网关甚至公共 IP 即可连接到 AWS RDS 实例。

AWS 图示

现在,您将探索如何使用 Cloud SQL 功能构建安全感知数据库并将其连接到应用。

概览

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

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

SQL 实验示意图

目标

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

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

设置

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

  1. 请使用无痕式窗口登录 Qwiklabs。

  2. 留意实验的访问时限(例如 1:15:00)并确保能在相应时间段内完成实验。
    系统不提供暂停功能。如有需要,您可以重新开始实验,不过必须从头开始。

  3. 准备就绪时,点击开始实验

  4. 请记好您的实验凭据(用户名密码)。您需要使用这组凭据来登录 Google Cloud 控制台。

  5. 点击打开 Google 控制台

  6. 点击使用其他帐号,然后将实验的凭据复制并粘贴到相应提示框中。
    如果您使用其他凭据,将会收到错误消息或产生费用

  7. 接受条款并跳过恢复资源页面。

任务 1:创建 Cloud SQL 数据库

在此任务中,您将根据 Google Cloud 最佳实践配置 SQL 服务器并创建专用 IP 连接。

  1. 导航菜单 (“导航菜单”图标) 中,点击 SQL
  2. 点击创建实例
  3. 点击选择 MySQL
  4. 指定以下信息,其他设置则保留默认值:
属性
实例 ID wordpress-db
root 密码 输入密码
区域
可用区 不限
数据库版本 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:在虚拟机上配置代理

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

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

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

    2. 点击赶紧试试吧

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

    属性
    用户名 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

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

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

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

    2. 点击赶紧试试吧

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

    属性
    用户名 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 网络甚至不同的项目中,可以使用代理来确保应用通过外部连接所建立连接的安全性。

    现在您对在 Cloud SQL 中创建和配置数据库有了更深入的了解。接下来我们来看看 AWS RDS 与 Google Cloud SQL 之间的一些异同。

    相似之处:

    • Google Cloud SQL 和 AWS RDS 都是托管式服务,它们为您执行以下任务:

      • 实例更新
      • 数据库软件安装及修补
      • 备份
      • 故障切换
    • 在 Google Cloud SQL 和 AWS RDS 中,您的数据库实例均由虚拟机提供支持,您可以根据自己的具体需求选择相应的实例类型、大小和存储容量。

    • 这两种服务都支持通过安全隧道建立与数据库实例的安全连接,而无需已获授权的网络或 SSL。要建立这种安全连接,您可以使用 AWS 中的 AWS PrivateLink,而在 Google Cloud 中,则可以使用 Cloud SQL Auth 代理。

    • 两种服务均支持 MySQL、PostgreSQL 和 SQL Server 引擎。

    差异

    • 除了相似之处中已经提到的服务器引擎之外,AWS RDS 还支持 Oracle 和 MariaDB 服务器引擎。
    • 这两种服务都支持在数据库实例与其他资源之间建立专用连接,而无需将流量暴露到公共互联网或创建 NAT 连接。但是,这两种服务启用此功能的方式有所不同:
      • 在 AWS RDS 中,您需要创建一个 AWS Private Link VPC 端点并将其设置为数据库实例的目标。
      • 在 Google Cloud SQL 中,则在数据库实例的配置选项中启用专用 IP 功能。

    结束实验

    完成实验后,请点击结束实验。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. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

    此内容目前不可用

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

    太好了!

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

    一次一个实验

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

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

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