如果您的应用与 Cloud SQL 实例不在同一个 VPC 连接的网络和区域中,请使用代理来保护其外部连接。
为了配置代理,您需要 Cloud SQL 实例连接名称。
注意
:本实验附带 2 个预配置了 Wordpress 及其依赖项的虚拟机。您可以通过点击虚拟机名称来查看启动脚本和服务账号访问权限。请注意,我们对该虚拟机使用了最小权限原则,并且只允许进行 SQL 访问。此外,还有一个网络标记和一个防火墙,它们已预配置为允许端口 80 接受来自任何主机的流量。
在
导航菜单
(
) 上,点击
Compute Engine
。
点击
wordpress-proxy
旁边的
SSH
。
下载 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 控制台。
在
导航菜单
(
) 上,点击
SQL
。
点击
wordpress-db
实例并等待其名称旁边显示绿色对勾标记(这可能需要几分钟时间),这表明实例正在运行。
请记下
实例连接名称
;我们稍后将会用到并称为“SQL_CONNECTION_NAME”。
此外,为了让应用正常工作,您需要创建一个表。点击
数据库
。
点击
创建数据库
,输入
wordpress
(这是应用预期的名称),然后点击
创建
。
返回到 SSH 窗口并将连接名称保存到环境变量中,注意将 [SQL_CONNECTION_NAME] 替换为您在上一步中复制的唯一名称:
export SQL_CONNECTION=[SQL_CONNECTION_NAME]
如需验证是否设置了环境变量,请运行以下命令:
echo $SQL_CONNECTION
该命令应输出连接名称。
如需激活与 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
按 Enter 键。
注意
:该代理将监听 127.0.0.1:3306 (localhost) 以及使用机器的外部 IP 地址通过安全隧道安全地连接到您的 Cloud SQL。
点击“检查我的进度”
以验证是否完成了以下目标:
在虚拟机上创建数据库并配置代理
任务 3:将应用连接到 Cloud SQL 实例
在此任务中,您会将示例应用连接到 Cloud SQL 实例。
配置 Wordpress 应用。如需查找虚拟机的外部 IP 地址,请查询其元数据:
curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip && echo
在浏览器中访问
wordpress-proxy
外部 IP 地址并配置 Wordpress 应用。
点击
赶紧试试吧
。
指定以下内容,注意将 [ROOT_PASSWORD] 替换为您在创建机器时配置的密码,并将其余设置保留为默认值:
注意
:安装 Wordpress 最多可能需要 3 分钟,因为它需要将其所有数据传播到您的 SQL Server。
当“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
位于您的 Cloud SQL 所在的 us-central1,这使您能够利用更安全的连接。
复制
wordpress-private-ip
的外部 IP 地址,将其粘贴到浏览器窗口中,然后按 Enter 键。
点击
赶紧试试吧
。
指定以下内容,将其他设置保留默认值:
点击
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 颗星 = 非常满意
如果您不想提供反馈,可以关闭该对话框。
如果要留言反馈、提出建议或做出更正,请使用
支持
标签页。