+86 189 8218 1436 周一至五 10:00-22:00

GCP教学|快速上手的 Google Cloud入门实操指南

TL;DR:面向小白的 GCP 教学,用项目、预算、VM、SSH、防火墙和监控串起首次实操,并补充选型对比与避坑清单。

它是什么

可以把 GCP 理解成 Google Cloud 提供的公有云平台:不用自己买机器、建机房,在网页上按需开通计算、存储、网络和数据分析能力。它不是「大按钮」,资源按项目、区域和服务分层管理,先认清这三层,后面才不会建错地方。

  1. 项目:账单、权限、API 开关和资源清单的边界。别把项目当文件夹乱建,入门只留一个练习项目。
  2. 区域:资源放在哪个地理区域,影响速度、价格和合规;有些资源创建后不好搬家。
  3. 服务:具体能力,如虚拟机、对象存储、数据仓库;多数要先启用 API。

用产品视角看,常见分工是:

  • Compute Engine:可远程登录的虚拟机,要自己管系统;开着可能计费。
  • Cloud Storage:放图片、备份、日志等文件对象;桶名全球唯一,别随手公开。
  • Cloud Run:把打包好的程序或 API 跑起来,不用维护服务器,适合网站后端。
  • BigQuery:查询海量数据;按扫描量计费,先看限额。
  • VPC:管私有网络、子网、防火墙,决定资源怎么连通,不是一台机器。
  • IAM:管「谁能做什么」;别给所有人 Owner,按最小权限给。

本文不是只讲概念,而是把控制台和 gcloud 两条入口放在同一套入门路径里:控制台像地图,用来看见项目、区域和服务;gcloud 像操作记录,用来确认账号、项目和已启用服务。打开 console.cloud.google.com 进入同一个项目后,先复制第一组完成登录,再复制第二组核对状态。这样先对齐环境,不创建计算资源,可避免误开服务或产生费用;后面创建资源时,区域也要两边保持一致。

gcloud --version
gcloud init
gcloud projects list
gcloud config list
gcloud services list --enabled

初始化那一步会跳登录和选择项目,按提示选控制台里那个项目,别顺手新建第二个项目。常见坑是终端账号、默认项目和浏览器里不是同一个;以后若「控制台有、命令看不到」,先重新核对账号、项目和服务状态,对齐后再继续。

解决什么问题

GCP 解决的第一件事,是让没有机房的人也能把服务器、硬盘、数据库和分析工具当成随时申请的资源。不用自购物理服务器,在控制台或 Cloud Shell 里就能按需创建 VM、对象存储、数据库和数据分析环境:VM 放网站或练 Linux,对象存储放图片备份,数据库存业务数据,分析环境跑报表;用完停止或删除即可。

它对应的是新手最头疼的四件事:部署慢,不用再买机器、装系统、配网络;扩容难,CPU、内存、磁盘或实例数量可按需调整;权限混乱,用项目、IAM 角色、服务账号分清谁能看、改、删;账单不透明,用项目查看费用、设预算提醒、加标签,知道钱花在哪。

适合个人网站、测试环境、临时任务、Linux 运维练习和小型应用上线:静态页面可先放对象存储,小应用可开一台小 VM 加数据库,测试任务跑完就删,练运维时改错配置也不怕弄坏自己的电脑。

先别急着创建资源。打开控制台右上角的 Cloud Shell(自带命令行工具),复制下面三条只读命令;它们只显示版本、登录账号和当前项目,不会创建计费资源:

gcloud --version
gcloud auth list
gcloud config list

为什么这么做:所有资源都挂在某个账号和项目下,先确认能避免开错项目、权限不足或账单归错人。关掉浏览器不等于 VM 停止;数据库、对象存储、分析环境的存储、查询和公网流量也可能计费。别一上来给 Owner,按最小权限分配;创建前设预算提醒,用完停止实例、删除测试资源;确认整个项目不要了再删项目。这样得到的是快速部署和弹性扩容,而不是月底看不懂的账单。

怎么上手

与替代方案对比

先把标准说清楚:本地电脑像自购机器,流量一大只能换硬件;传统虚拟主机像租固定摊位,便宜好懂,但扩容、备份、跨地区访问多半要手动处理。GCP 更强调弹性扩容、全球网络、权限细粒度控制:高峰加实例、低峰缩回去,用全球网络把内容放近用户,用 IAM 把看账单、改存储桶、开虚拟机分开授权。这样能少踩权限过大、机器暴露公网的坑。

和其他公有云比,GCP 在网络、数据分析和容器化服务上体验突出,BigQuery 查数据、Cloud Run 跑容器都顺手;但项目、区域、服务账号、API 启用、SKU 计费等概念与计费规则需要适应。常见坑是把“免费额度”当全免费:长期开着的虚拟机、磁盘、公网 IP、出站流量都可能计费,先设预算提醒。

想安全感受差异,不必先创建资源。打开 Google Cloud Console,右上角点 Cloud Shell,等终端出现后复制下面命令。它只查版本、账号、当前项目和可用服务,不会部署收费资源;先查是因为新手常有多个项目,粘到错项目后账单会看不懂。若看到 unset 或空白,先回控制台选项目,别继续创建资源。服务名出现不等于已启用,更不等于已创建收费资源。

gcloud --version
gcloud auth list
gcloud config get-value project
gcloud services list --available --format="table(config.name,config.title)" | grep -E "storage.googleapis.com|run.googleapis.com|compute.googleapis.com"
  • 只想放静态页面:可优先看 Cloud Storage。HTML、图片放进存储桶即可访问,不用装系统;坑是别把备份、密钥设成公开读取。
  • 想少管服务器:可看 Cloud Run。适合小 API、表单后端,按请求运行,没流量可缩到零;坑是端口、环境变量没配好,本地能跑云端也可能失败。
  • 想练 Linux:就选 Compute Engine。它最接近云上电脑,可练 SSH、防火墙、软件包和日志;坑是开着不关会一直计费,练习完删除实例和磁盘。

最佳实践

先把「能跑起来」和「别出事」分开:新手最常踩的坑,是图省事给 Owner、把 22 端口开给 0.0.0.0/0,练完忘了关机器。下面按顺序做一遍,基本不会半夜收到账单。

1. 权限只给刚好够用的。别给成员或服务账号 roles/owner、roles/editor:密钥泄露或手滑一次,动的就是整个项目。服务账号只拿写日志的角色就够了。先完成 gcloud init 登录,再复制:

export PROJECT_ID="$(gcloud config get-value project)"
gcloud config set project "$PROJECT_ID"
gcloud config set compute/zone asia-east1-b
export ZONE="$(gcloud config get-value compute/zone)"
gcloud services enable compute.googleapis.com logging.googleapis.com monitoring.googleapis.com
gcloud iam service-accounts create demo-app-sa --display-name="demo app"
gcloud projects add-iam-policy-binding "$PROJECT_ID" 
  --member="serviceAccount:demo-app-sa@${PROJECT_ID}.iam.gserviceaccount.com" 
  --role="roles/logging.logWriter"

坑:临时借了高权限要回头删绑定;重跑提示 already exists 属正常,别顺手把角色改成 roles/owner。

2. SSH 只认你自己的 IP。0.0.0.0/0 等于「全网都能来敲 22、3389」,扫描器几分钟就到。下面自动取当前公网地址,顺手给机器打标签:

export ZONE="$(gcloud config get-value compute/zone)"
export MY_IP="$(curl -s https://api.ipify.org)/32"
gcloud compute firewall-rules describe allow-ssh-from-me >/dev/null 2>&1 || 
gcloud compute firewall-rules create allow-ssh-from-me 
  --network=default --allow=tcp:22 --source-ranges="$MY_IP" 
  --target-tags=ssh-me --description="仅允许我的 IP 连 SSH"
gcloud compute instances create demo-vm --zone="$ZONE" 
  --machine-type=e2-micro --image-family=debian-12 
  --image-project=debian-cloud --tags=ssh-me 
  --labels=env=demo,owner=starter,cleanup=yes

坑:宽带 IP 会变,换网络后连不上先重取 IP 更新规则,别加一条「临时」全网规则;规则生效有十几秒延迟。定期查漏网:

gcloud compute firewall-rules list 
  --format="table(name,sourceRanges.list():label=来源,allowed.list():label=放行)"

3. 上线前备齐后悔药:预算、标签、日志、告警、系统更新、快照、删除清单。预算只是提醒,不会自动停机,这点最易误会;告警去控制台「监控 → 提醒」建一条 CPU 连续 5 分钟 > 80% 并绑邮箱。没结算权限就手动在「结算 → 预算」建 10 美元提醒。其余直接跑:

export ZONE="$(gcloud config get-value compute/zone)"
export BILLING_ACCT="$(gcloud billing accounts list --format='value(name.basename())' --limit=1)"
gcloud billing budgets create --billing-account="$BILLING_ACCT" 
  --display-name="gcp-starter-budget" --budget-amount=10USD 
  --threshold-rule=percent=0.5 --threshold-rule=percent=0.9 
  --threshold-rule=percent=1.0
gcloud logging logs list --limit=5
gcloud compute ssh demo-vm --zone="$ZONE" 
  --command='sudo apt-get update && sudo apt-get upgrade -y'
gcloud compute disks snapshot demo-vm --zone="$ZONE" 
  --snapshot-names="demo-vm-$(date +%Y%m%d-%H%M)"
gcloud compute instances list --filter='labels.env=demo' 
  --format='table(name,zone,status,labels.list():label=标签)'

坑:upgrade -y 只适合练习机;快照名带日期,恢复别挑错;最后那张按 cleanup=yes 筛出来的表,就是你的删除清单。

4. 用脚本记环境,练完立刻收摊。统一 demo- 前缀,别叫 test1,过两周自己也认不出。换电脑也能复现:

cat > ~/gcp-demo-env.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
export PROJECT_ID="$(gcloud config get-value project)"
export ZONE="asia-east1-b"
echo "项目=$PROJECT_ID 区域=$ZONE 前缀=demo-"
gcloud compute instances list --filter='name~^demo-' --format='table(name,zone,status)'
EOF
chmod +x ~/gcp-demo-env.sh
~/gcp-demo-env.sh

先停机器:

export ZONE="$(gcloud config get-value compute/zone)"
gcloud compute instances stop demo-vm --zone="$ZONE"

只 stop 不删,启动盘、静态 IP、快照照样计费;确定连备份都不留了,再复制这块(VM 删了不可恢复):

export ZONE="$(gcloud config get-value compute/zone)"
gcloud compute instances delete demo-vm --zone="$ZONE" --quiet
gcloud compute firewall-rules delete allow-ssh-from-me --quiet
gcloud compute snapshots list --filter='name~^demo-vm-' --format='value(name)' | 
while read -r s; do gcloud compute snapshots delete "$s" --quiet; done

坑:别把两块一起无脑全选;预算告警不会替你备份,删之前回头看一眼快照列表。

常见问题(FAQ)

没有 Linux 基础能学 GCP 吗?

可以,先学会创建 VM、SSH 登录、查看日志和删除资源,再逐步补 Linux 命令。

第一次试用会不会被扣费?

先设预算提醒和结算告警,只开必要资源,用完立即删除或停止 VM。

控制台和 gcloud 应该先学哪个?

先用控制台理解资源关系,再用 gcloud 记录命令,后续更容易自动化。

GCP 免费额度够做练习吗?

够做基础练习,但要确认区域、机型和流量规则,超出额度仍可能产生费用。

不想自己折腾 GCP?我们提供云平台代维护、上云迁移与账单代付服务,一对一技术支持。

查看代维服务 →

发表评论