检查点
Create a Cloud SQL instance
/ 5
Create a database and configure a proxy on a Virtual Machine
/ 5
实施 Cloud SQL (Azure)
您最近受聘于一家 IT 企业,该企业使用 Google Cloud 作为其主要云服务提供商。作为 SQL 数据库专家,您的任务是研究和采用 Google Cloud 提供的 SQL 服务。 您主要关心的一些问题是:
- 部署
- 安全性
- 应用集成
- 连接方法
由于您在上一个职位中一直在使用 Azure,因此您知道如何部署 SQL Server。定价模型基于可自定义的数据库事务单元 (DTU) 数量,这些事务单元按面向不同应用场景的各选项进行分类。
在 Azure 中,您使用以下组件:
- 用于确保与数据库的安全连接的代理实现。
- 用于维护应用的数据库可用性的 HTTP 负载均衡器。
您可以使用多种方法连接之前部署的多个应用,具体包括以下方法:
- 连接字符串
- Web 应用服务集成
- 使用专用 IP 地址的 Cloud SQL。
现在,您将探索如何使用 Cloud SQL 功能构建安全感知数据库并将其连接到应用。
概览
在此实验中,您将配置一个 Cloud SQL 服务器,并学习如何通过外部连接使用代理将应用连接到该服务器。您还将配置通过专用 IP 链路的连接,以提供性能和安全方面的优势。我们选择在此实验中演示的应用是 Wordpress,但其中的信息和最佳实践适用于任何需要 SQL Server 的应用。
在此实验结束时,您将有 2 个工作的 Wordpress 前端实例,通过 2 种不同的连接类型连接到其 SQL 实例后端,如下图所示:
目标
在本实验中,您将学习如何执行以下任务:
- 创建 Cloud SQL 数据库
- 配置虚拟机以运行代理
- 在应用和 Cloud SQL 之间创建连接
- 使用专用 IP 地址将应用连接到 Cloud SQL
设置
对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。
-
请使用无痕式窗口登录 Qwiklabs。
-
留意实验的访问时限(例如
1:15:00
)并确保能在相应时间段内完成实验。
系统不提供暂停功能。如有需要,您可以重新开始实验,不过必须从头开始。 -
准备就绪时,点击开始实验。
-
请记好您的实验凭据(用户名和密码)。您需要使用这组凭据来登录 Google Cloud 控制台。
-
点击打开 Google 控制台。
-
点击使用其他帐号,然后将此实验的凭据复制并粘贴到相应提示框中。
如果您使用其他凭据,将会收到错误消息或产生费用。 -
接受条款并跳过恢复资源页面。
任务 1:创建 Cloud SQL 数据库
在此任务中,您将根据 Google Cloud 最佳实践配置 SQL 服务器并创建专用 IP 连接。
- 在导航菜单 (
) 上,点击 SQL。
- 点击创建实例。
- 点击选择 MySQL。
- 指定以下内容,将其他设置保留默认值:
属性 | 值 |
---|---|
实例 ID | wordpress-db |
root 密码 | 输入密码 |
区域 | |
可用区 | 不限 |
数据库版本 | MySQL 5.7 |
-
展开显示配置选项。
-
展开机器类型部分。
-
预配适量的 vCPU 和内存。如需选择机器类型,请点击下拉菜单,然后浏览您的选项。
请注意以下几点:
-
对于本实验,请从下拉菜单中选择标准,然后选择 1 个 vCPU、3.75 GB。
-
接下来,展开存储空间部分,然后选择存储类型和存储空间容量。
请注意以下几点:
- 点击每个容量选项以查看它如何影响吞吐量。请将选项重置为 10 GB。
-
展开连接部分。
-
选择专用 IP。
-
在网络下拉菜单中,选择默认。
-
点击出现的设置连接按钮。
-
在右侧面板中,依次点击启用 API、使用自动分配的 IP 范围、继续、创建连接。
-
点击页面底部的创建实例以创建数据库实例。
点击“检查我的进度”以验证是否完成了以下目标:
任务 2:在虚拟机上配置代理
如果您的应用与 Cloud SQL 实例不在同一个 VPC 连接的网络和区域中,请使用代理来保护其外部连接。
为了配置代理,您需要 Cloud SQL 实例连接名称。
-
在导航菜单 (
) 上,点击 Compute Engine。
-
点击 wordpress-proxy 旁边的 SSH。
-
下载 Cloud SQL 代理并使其可以执行:
为了启动代理,您需要 Cloud SQL 实例的连接名称。让 SSH 窗口保持打开状态,然后返回到 Cloud 控制台。
-
在导航菜单 (
) 上,点击 SQL。
-
点击 wordpress-db 实例并等待其名称旁边显示绿色对勾标记(这可能需要几分钟时间),这表明实例正在运行。
-
请记下实例连接名称;我们稍后将会用到并称为“SQL_CONNECTION_NAME”。
-
此外,为了让应用正常工作,您需要创建一个表。点击数据库。
-
点击创建数据库,输入 wordpress(这是应用预期的名称),然后点击创建。
-
返回到 SSH 窗口并将连接名称保存到环境变量中,注意将 [SQL_CONNECTION_NAME] 替换为您在上一步中复制的唯一名称:
- 如需验证是否设置了环境变量,请运行以下命令:
该命令应输出连接名称。
- 如需激活与 Cloud SQL 数据库的代理连接并将进程发送到后台,请运行以下命令:
预期输出为:
- 按 Enter 键。
点击“检查我的进度”以验证是否完成了以下目标:
任务 3:将应用连接到 Cloud SQL 实例
在此任务中,您会将示例应用连接到 Cloud SQL 实例。
- 配置 Wordpress 应用。如需查找虚拟机的外部 IP 地址,请查询其元数据:
-
在浏览器中访问 wordpress-proxy 外部 IP 地址并配置 Wordpress 应用。
-
点击赶紧试试吧。
-
指定以下内容,注意将 [ROOT_PASSWORD] 替换为您在创建机器时配置的密码,并将其余设置保留为默认值:
属性 | 值 |
---|---|
用户名 | 根 |
密码 | [ROOT_PASSWORD] |
数据库主机 | 127.0.0.1 |
-
点击提交。
-
建立连接后,点击 Run the installation(运行安装)以在 Cloud SQL 中实例化 Wordpress 及其数据库。此操作可能需要一点时间才能完成。
-
使用任意信息填充演示版网站的信息,然后点击 Install Wordpress(安装 Wordpress)。您不必记住或使用这些详细信息。
- 当“Success!”(成功!)窗口出现时,请移除网络浏览器地址栏中 IP 地址后的文本,然后按 Enter 键。
您将看到一个正常运作的 Wordpress 博客!
任务 4:通过内部 IP 地址连接到 Cloud SQL
如果您可以将应用托管在 Cloud SQL 所在的区域和 VPC 连接的网络中,则可以使用专用 IP 地址来获得安全性和性能更高的配置。
使用专用 IP 地址,您可以通过缩短延迟时间来提高性能,并最大限度地减少 Cloud SQL 实例的攻击面,因为您可以通过内部 IP 地址与其单独通信。
- 在 Cloud 控制台的导航菜单 (
) 中,点击 SQL。
- 点击 wordpress-db。
- 记下 Cloud SQL 服务器的专用 IP 地址;它将被称为“SQL_PRIVATE_IP”。
- 在导航菜单上,点击 Compute Engine。
-
复制 wordpress-private-ip 的外部 IP 地址,将其粘贴到浏览器窗口中,然后按 Enter 键。
-
点击赶紧试试吧。
-
指定以下内容,将其他设置保留默认值:
属性 | 值 |
---|---|
用户名 | 根 |
密码 | 输入创建 Cloud SQL 实例时配置的“ROOT_PASSWORD” |
数据库主机 | [SQL_PRIVATE_IP] |
- 点击提交。
-
点击 Run the installation(运行安装)。
系统会显示“Already Installed!”(已安装!)窗口,这意味着您的应用已通过专用 IP 地址连接到 Cloud SQL 服务器。 -
在网络浏览器的地址栏中,移除 IP 地址后的文本,然后按 Enter 键。
您将看到一个正常运作的 Wordpress 博客!
任务 5:回顾
在此实验中,您创建了一个 Cloud SQL 数据库,并将其配置为既使用通过安全代理的外部连接,也使用通过专用 IP 地址的连接,后者更为安全且性能更好。请注意,只有当应用和 Cloud SQL 服务器位于同一个区域并且属于同一个 VPC 网络时,才能通过专用 IP 地址进行连接。如果应用托管在其他区域、VPC 网络甚至不同的项目中,可以使用代理来确保应用通过外部连接所建立连接的安全性。
现在您对在 Cloud SQL 中创建和配置数据库有了更深入的了解。接下来我们来看看 Google Cloud SQL 与 Azure SQL 之间的一些异同。
相似之处:
- Azure 和 Google Cloud 管理数据库的基础设施,其中包括实例、备份、更新和故障切换。
- Cloud SQL 和 Azure SQL 都部署代理来安全地接收 VPC 外部的连接。
- 两种服务都使用连接字符串来建立连接。
- 如果两个服务并置在同一区域内并且属于同一个 VPC 网络,则二者都可以使用一个内部 IP 来直接连接应用和 SQL Server 实例。通过仅使用内部 IP 地址,可以提高安全性,因为这样就禁止了公共连接。
差异:
- Google Cloud 和 Azure 创建 SQL Server 的方法被认为有所不同。在 Azure 中,您需要从多种类别、DTU 和既定的存储设置中进行选择。在 Google Cloud 中,您可以直接指定所需的 CPU 和存储量。
- 在 Google Cloud 中,您拥有内置数据库身份验证(用户/密码),并且可以实施 Cloud SQL Auth 代理和 Cloud SQL 连接器库来提供基于 IAM 的访问。而在 Azure 中,您可以使用策略来定义如何接受请求。您还可以使用重定向方法(默认情况下)或代理连接策略来处理请求。系统还支持 Azure Active Directory 身份验证。
- 在 Google Cloud 中,您可以使用 Cloud SQL 来连接到实例,主要有两个选项:
- Cloud SQL Auth 代理:无需授权网络或 SSL 的安全隧道。身份验证和授权则通过 Identity and Access Management (IAM) 和 OAuth 2.0 进行
- 专用 IP:VPC 网络与底层 Google 服务提供方的 VPC 网络之间的专用连接
结束实验
完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。
系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交。
星级数的含义如下:
- 1 颗星 = 非常不满意
- 2 颗星 = 不满意
- 3 颗星 = 一般
- 4 颗星 = 满意
- 5 颗星 = 非常满意
如果您不想提供反馈,可以关闭该对话框。
如果要留言反馈、提出建议或做出更正,请使用支持标签页。
版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。