它是什么
可以把 GCP 理解成 Google Cloud 提供的公有云平台:不用自己买机器、建机房,在网页上按需开通计算、存储、网络和数据分析能力。它不是「大按钮」,资源按项目、区域和服务分层管理,先认清这三层,后面才不会建错地方。
- 项目:账单、权限、API 开关和资源清单的边界。别把项目当文件夹乱建,入门只留一个练习项目。
- 区域:资源放在哪个地理区域,影响速度、价格和合规;有些资源创建后不好搬家。
- 服务:具体能力,如虚拟机、对象存储、数据仓库;多数要先启用 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?我们提供云平台代维护、上云迁移与账单代付服务,一对一技术支持。
