简介:
欢迎来到小李哥全新谷歌云GCP云计算知识学习系列,适用于任何无云计算或者谷歌云技术背景的开发者,让大家零基础5分钟通过这篇文章就能完全学会谷歌云一个经典的服务开发架构方案。
我将每天介绍一个基于全球三大云计算平台(AWS, Azure, GCP)的全球前沿云开发/架构技术基础解决方案,帮助大家快速了解国际上最热门的云计算平台上的最佳实践和前沿技术,并应用到自己的日常工作里。本次我将介绍如何在谷歌云上利用Cloud SQL服务搭建高可用数据库集群。示范架构图如下:
方案所需基础知识
什么是谷歌云 GCP Cloud SQL 服务?
谷歌云 GCP Cloud SQL 是一项完全托管的关系型数据库服务。它支持多种数据库引擎,支持包括 MySQL、PostgreSQL 和 SQL Server多种数据引擎。Cloud SQL 旨在简化数据库的部署、管理和维护,使开发者能够专注于应用程序开发,而无需担心底层数据库的基础设施管理。
使用 GCP Cloud SQL 作为数据库的优势
完全托管:
无需处理数据库的安装、配置、补丁和备份,谷歌云会自动管理这些任务,节省运维时间和成本。
高可用性:
通过自动故障转移和跨区域复制,确保数据库的高可用性和数据持久性,提升业务连续性。
安全性:
提供内置的加密功能、自动更新和合规性认证,确保数据安全和隐私保护。
弹性扩展:
支持按需扩展数据库的计算和存储资源,灵活应对业务需求变化,避免资源浪费。
性能优化:
提供自动调优和性能监控工具,帮助优化查询性能,确保应用始终运行在最佳状态。
简便的集成:
与 GCP 的其他服务(如 Compute Engine、App Engine 和 BigQuery)无缝集成,简化开发流程,增强应用的功能和性能。
本方案包括的内容:
1. 创建一个谷歌云Cloud SQL数据库实例
2. 通过Cloud Shell命令行方式与数据库交互
3. 在服务器内部创建一个数据库,并导入数据
项目搭建具体步骤:
1. 我们在搜索栏搜索Cloud SQL, 进入Cloud SQL服务主页。点击“Create Instance”创建数据库实例。
2. 选择MySQL数据库引擎
3. 选择MySQL企业级数据库版本,并且为数据库实例设置环境为开发环境,数据库版本为MySQL 8,为数据库起名为myinstance,并且点击"Generate"自动创建密码。
4. 接下来我们为数据库集群配置高可用,选择地理区域“europe-west4”,选择多可用区部署的模式,主可用区为“europe-west4-c”,最后点击创建数据库集群。
5. 接下来我们打开Cloud Shell命令行,与数据库实例交互进行维护操作。
6. 在Cloud Shell控制台命令行如下命令连接到数据库集群
gcloud sql connect myinstance --user=root
7. 在弹出密码输入框后,复制创建数据库集群时设置的密码
8. 接下来我们通过SQL语句,在MySQL里创建一个数据库“guestbook”。
CREATE DATABASE guestbook;
9. 接下来我们为数据库导入测试数据
USE guestbook;
CREATE TABLE entries (guestName VARCHAR(255), content VARCHAR(255),
entryID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(entryID));
INSERT INTO entries (guestName, content) values ("first guest", "I got here!");
INSERT INTO entries (guestName, content) values ("second guest", "Me too!");
10. 接下来我们对导入数据进行查询,得到查询结果。
SELECT * FROM entries;
如何利用谷歌云GCP Python SDK,通过代码方式创建数据库?
from google.cloud import sql_v1
from google.cloud.sql_v1.types import CloudSqlInstance, SqlInstanceSettings, SqlDatabaseVersion, SqlSettings, SqlAvailabilityType
from google.protobuf.field_mask_pb2 import FieldMask
def create_mysql_instance():
# 创建 SQL Admin 客户端
client = sql_v1.SqlInstancesServiceClient()
# 定义实例的 ID 和项目 ID
instance_id = "myinstance"
project_id = "your-project-id" # 替换为您的项目 ID
# 配置实例的设置
instance_settings = SqlInstanceSettings(
tier="db-n1-standard-2", # 对应 4 vCPU, 16 GB RAM
availability_type=SqlAvailabilityType.REGIONAL, # 设置多区域支持 (Highly available)
data_disk_size_gb=100, # 数据盘大小 100 GB
activation_policy=SqlInstanceSettings.ActivationPolicy.ALWAYS,
database_version=SqlDatabaseVersion.MYSQL_8_0,
ip_configuration=SqlSettings.IpConfiguration(
ipv4_enabled=True
),
location_preference=SqlSettings.LocationPreference(
zone="europe-west4-c" # 设置主区域
)
)
# 创建 Cloud SQL 实例
instance = CloudSqlInstance(
name=instance_id,
project=project_id,
settings=instance_settings,
database_version=SqlDatabaseVersion.MYSQL_8_0
)
# 发送请求以创建实例
operation = client.insert(
project=project_id,
instance_id=instance_id,
body=instance
)
print(f"Creating instance {instance_id} in project {project_id}...")
# 等待操作完成
response = operation.result()
print("Instance created successfully.")
return response
if __name__ == "__main__":
create_mysql_instance()
代码解释:
google.cloud.sql_v1
: 使用 Google Cloud SQL Admin SDK 的 Python 客户端库。
instance_settings
: 配置实例的设置,包括计算资源、磁盘大小、可用性类型等。
create_mysql_instance
: 函数用于创建 MySQL 实例。
SqlAvailabilityType.REGIONAL
: 表示多区域设置,提供更高的可用性。
SqlInstanceSettings
: 包含实例的配置详细信息,例如计算资源、磁盘大小、数据库版本和可用性设置。
以上就是在谷歌云GCP上搭建MySQL高可用数据库集群的全部步骤。欢迎大家关注零基础5分钟上手谷歌云系列,未来获取更多国际前沿的谷歌云GCP云开发/云架构方案!