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

6. 如果对谷歌云的产品不是太了解:GCP入门

TL;DR:面向不了解 GCP 的新手,用最小路线认识核心产品、开通一台 Linux VM,并掌握权限、账单、SSH 与日常运维避坑。

它是什么:先认识 GCP 的产品地图

打开 GCP 控制台,上百个图标很容易劝退。别慌,把它想成一盒乐高:GCP 就是一组可拼装的云服务——计算干活、存储放东西、网络把机器连起来、数据库存整齐的表格、监控与权限看状态管门禁。用到哪块拼哪块,不用一次买齐。

小白最不划算的就是先背产品名。按四个大白话问题对号入座就好:网站跑在哪里?文件放哪里?谁能访问?花了多少钱? 答案清楚了,再回头看那些英文名,会发现只是给答案贴了个标签。

常见起点只有六个,按开箱顺序认一遍:

  • 项目:资源的收纳盒。坑:删项目=连盒全删,别在测试项目里顺手绑了正式域名。
  • 结算账号:绑卡的地方。坑:先设预算提醒再开机器,忘关跑一晚,账单会吓一跳。
  • 虚拟机:回答「跑在哪」,就当租了台远程电脑。
  • 对象存储:回答「文件放哪」,图片和备份放这儿比挂硬盘便宜。
  • 虚拟私有云(VPC):回答「谁能访问」。坑:别图省事把 0.0.0.0/0 全端口敞开。
  • 日志与监控:网站打不开时,回看刚才发生了啥。

接着敲几条只读命令,把地图对上实物。为什么先只读?因为它不新建资源、不会手滑产生费用,却能把控制台里的方块和上面四问一一对应。装好 Cloud SDK 后整段复制即可:

gcloud auth login
gcloud config list
gcloud projects list
gcloud billing accounts list
gcloud compute instances list --format="table(name,zone,status)"
gcloud storage buckets list
gcloud logging logs list --limit=10

最常见的坑是没选当前项目,上面几条全返回空列表,你会以为「我啥都没开」,其实只是看错了收纳盒。补这条自动选中第一个项目,再重跑一次列表就好:

gcloud config set project "$(gcloud projects list --format='value(projectId)' --limit=1)"

最后一问「花了多少钱」先不用记命令,去控制台「结算 → 预算与提醒」点一眼更直观。到这里,你手里拿的是四问六件套,而不是上百个看不懂的图标了。

解决什么问题:从不懂到能跑起来

分不清 Compute Engine、Cloud Run、GKE 时,别研究全家桶。本节只定一个最小目标:一台 Linux VM 跑起小网站或测试环境,浏览器看到 Nginx 默认页就算成功。选 e2-micro + Debian 12 + 10GB 盘:组件少、费用低,弄坏删掉重来,比在托管服务里找原因快。

先防出错:控制台新建一个只用于练习的项目,别混进正式业务;给自己或同伴选能建 VM、看日志、管防火墙的最小角色,别图省事发 Owner;到结算页面里的“预算和提醒”设 50%、90%、100% 提醒。坑:预算默认只提醒,不会自动关机;提示没权限就照控制台提示补对应角色;也别顺手开 GPU、大磁盘、静态 IP、负载均衡,它们最容易让账单变脸。

确认当前项目是新建项目,打开 Cloud Shell,下面整段第一次只跑一次:开 API、建低配 VM、只新增网站用的 80 规则、用 SSH 密钥装 Nginx,并打印外部 IP。

mkdir -p "$HOME/.ssh"; chmod 700 "$HOME/.ssh"
Z=asia-east1-b; K="$HOME/.ssh/gcp_web_test"
test -f "$K" || ssh-keygen -t ed25519 -f "$K" -N "" -q
gcloud services enable compute.googleapis.com
gcloud compute instances create web-test-vm --zone="$Z" 
  --machine-type=e2-micro 
  --image-family=debian-12 
  --image-project=debian-cloud 
  --boot-disk-size=10GB 
  --tags=http-server
gcloud compute firewall-rules create allow-http-web-test --allow=tcp:80 --target-tags=http-server
sleep 20
gcloud compute ssh web-test-vm --zone="$Z" --ssh-key-file="$K" --command='sudo apt-get update; sudo apt-get install -y nginx; sudo systemctl enable --now nginx'
gcloud compute instances describe web-test-vm --zone="$Z" --format='value(networkInterfaces[0].accessConfigs[0].natIP)'

把输出的 IP 贴到浏览器,访问 http://外部IP。控制台 Compute Engine 的虚拟机实例页面点 SSH 按钮也能进;上面的 SSH 命令用的是刚生成的密钥,不用记密码。坑:私钥别发人、别传 GitHub;只新增 80 规则,别再建 22、3389 或全部端口的宽规则,默认网络自带的 SSH 规则够用。

连上后只练三件事:重启、看日志、打补丁。下面依次是停止再启动、看 Nginx 最近 50 行日志、更新系统包:

Z=asia-east1-b; K="$HOME/.ssh/gcp_web_test"
gcloud compute instances stop web-test-vm --zone="$Z"
gcloud compute instances start web-test-vm --zone="$Z"
sleep 30
gcloud compute ssh web-test-vm --zone="$Z" --ssh-key-file="$K" --command='sudo journalctl -u nginx --no-pager -n 50'
gcloud compute ssh web-test-vm --zone="$Z" --ssh-key-file="$K" --command='sudo apt-get update; sudo apt-get upgrade -y'

卡住先重启,打不开先看日志,补丁补安全洞。坑:停止后不收 CPU/内存,但磁盘仍收费;默认外部 IP 在停止再启动后可能变,旧地址失效就重跑前面打印 IP 的那条命令,别急着买静态 IP。最后一条升级命令先在测试项目练,正式业务先备份。用完删 VM,或删整个测试项目最干净。

怎么上手:十分钟搭出第一个可用环境

先把“地基”打稳:打开 console.cloud.google.com,用谷歌账号登录,新建一个项目(比如叫 first-demo),再在「结算」里绑定银行卡。为什么先做这步:谷歌云按项目算钱、算权限,不绑卡很多资源建不出来。别慌,新账号通常有免费额度,去「结算 → 额度与免费层级」确认是否仍有效;顺手在「预算与提醒」设 50 元阈值,坑点:不设提醒,测试完忘关机器,下个月容易收到意外账单。同时在右上角记下项目 ID,后面命令要用。

  1. 选区域:在控制台「Compute Engine → 设置」看可用区,挑离自己或用户近的,例如 asia-east1-b(台湾)。为什么:近一点网页打开更快,跨区传数据还可能另收费。
  2. 建一台低配 Linux VM,只开 22(SSH)和 80(网页):
    gcloud compute instances create my-first-vm 
      --project=替换成你的项目ID 
      --zone=asia-east1-b 
      --machine-type=e2-micro 
      --image-family=debian-12 
      --image-project=debian-cloud 
      --tags=http-server 
      --boot-disk-size=10GB
    gcloud compute firewall-rules create allow-http 
      --project=替换成你的项目ID 
      --allow=tcp:80 --target-tags=http-server --description="只开网页端口"

    坑点:别图省事开「允许所有端口」,扫描器几分钟就会来敲门;e2-micro 在免费额度内,别手滑选成 n2-standard-8。

  3. 登录并部署一个简单页面:
    gcloud compute ssh my-first-vm 
      --project=替换成你的项目ID --zone=asia-east1-b
    sudo apt update && sudo apt install -y nginx
    echo '<h1>我的第一个谷歌云页面</h1>' | sudo tee /var/www/html/index.html
    sudo systemctl enable --now nginx
    curl http://localhost

    看到那行标题就说明成了;浏览器开「VM 外部 IP」也能看到。为什么先 update:旧软件源常报 404,小白最容易卡在这。

  4. 收尾看一眼:控制台「Compute Engine → 日志」看 nginx 启动记录,「监控」看 CPU 曲线,「结算 → 费用明细」确认今天只花了几分钱。命令党可用:
    gcloud compute instances get-serial-port-output my-first-vm 
      --project=替换成你的项目ID --zone=asia-east1-b | tail -n 20
    gcloud beta billing budgets list --billing-account=替换成结算账号ID

最后提醒:练完在控制台「停止」或直接 gcloud compute instances delete my-first-vm --zone=asia-east1-b --project=替换成你的项目ID。为什么:停了才不继续计费,这是十分钟上手里最该养成的一个习惯。

与替代方案对比:什么时候选 GCP

6. 如果对谷歌云的产品不是太了解,先别背产品名,按「要解决什么问题」选。和自建服务器比,GCP 不用买机器、租机柜、换硬盘,也不用管机房;需要时开一台,测完删掉就释放。代价是账单和权限要自己看懂:开着就计费,哪怕没人访问;没权限会报 PERMISSION_DENIED,重试没用。先按提示登录并选测试项目,别选公司生产项目。

gcloud init
gcloud auth list
gcloud config list
gcloud services enable serviceusage.googleapis.com --quiet
gcloud services list --enabled --filter="name:compute.googleapis.com OR name:bigquery.googleapis.com"

为什么这么做:gcloud init 定下当前账号和项目,后面命令都落在这里;区域下面写死,避免选错。中间两行打印配置给自己核对;最后两行先打开服务查询能力,再看 Compute Engine、BigQuery 有没有启用。提示开通结算就按浏览器页面做完再回来。接着用最小机型体验「按量创建」:

gcloud services enable compute.googleapis.com --quiet
gcloud compute instances create gcpok-demo 
  --zone=us-central1-a 
  --machine-type=e2-micro 
  --image-family=debian-12 
  --image-project=debian-cloud 
  --tags=http-server 
  --labels=env=demo,owner=beginner
gcloud compute instances describe gcpok-demo 
  --zone=us-central1-a 
  --format='value(networkInterfaces[0].accessConfigs[0].natIP)'

e2-micro 是为了少花钱,http-server 配合默认防火墙留 80 端口,最后取公网 IP;输出空白多半是组织策略没给外部 IP。坑:IP 打不开先查防火墙或默认 VPC 是否被删,别急着重装;免费额度以控制台为准,创建成功就开始计费。

和其他云厂商比,GCP 的优势主要在 网络、数据分析和全球基础设施:全球骨干网、BigQuery、跨区域部署,用户分散、报表大时更顺手。但换哪家云都要同一套习惯:最小权限、预算告警、标签、监控、备份、及时释放。用标签筛练习机,换云也别丢:

gcloud compute instances list 
  --filter='labels.env=demo' 
  --format='table(name,zone,machineType,status)'

确认只有 gcpok-demo 再释放;--quiet 跳过确认,删除不可恢复。删完看一眼有无残留磁盘或静态 IP。

gcloud compute instances delete gcpok-demo 
  --zone=us-central1-a 
  --quiet

和本机虚拟机、Docker 比:只离线练 ls、写 Python,本机更省事,删了不出账单;要公网访问、域名 HTTPS、多人协同、流量来了弹性扩容,才选云上 VM。别为练几条命令开云机器又忘删,这是最常交的学费。

最佳实践:小白也能少踩坑

如果对谷歌云的产品不是太了解,别一上来就照着架构图堆服务。最稳的打法就三句:先小后大、先控权限和费用、先写好运维清单。下面每一步都能照着点、照着贴。

一、先小后大。先开一台最低配、单区域的 VM,把网站或脚本跑通再说。别急着勾「多区域」「负载均衡」「自动扩缩」——它们就算没流量也会产生转发规则和健康检查的费用,小白最常见的一脸懵就是「我啥也没干怎么扣钱了」。先确认跑过 gcloud init,再复制这段:

gcloud compute instances create my-first-vm 
  --zone=asia-east1-b 
  --machine-type=e2-micro 
  --image-family=debian-12 
  --image-project=debian-cloud 
  --tags=lab 
  --boot-disk-size=10GB

真有流量了,再加托管实例组和负载均衡。坑点:改机型要先停实例,别在跑着的服务上直接点「升级」,很容易连不上还以为机器坏了。

二、先控权限和费用。给来帮忙的同学只发「能看」的权限,千万别顺手给 Owner,删项目往往只差一次误点。同时打标签、把日志留存改成 30 天、挂上每日快照:

export PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID 
  --member="user:newbie@example.com" 
  --role="roles/compute.viewer"
gcloud compute instances add-labels my-first-vm 
  --zone=asia-east1-b --labels=owner=newbie,env=test
gcloud logging buckets update _Default 
  --location=global --retention-days=30
gcloud compute resource-policies create snapshot-schedule daily-backup 
  --region=asia-east1 --schedule=daily --max-retention-days=7
gcloud compute disks add-resource-policies my-first-vm 
  --zone=asia-east1-b --resource-policies=daily-backup

预算提醒建议在控制台搜「预算和提醒」,填 100 元、勾 50% 和 90% 邮件通知就行;这一步比手敲命令少填错一个结算账号 ID,对小白更友好。为什么要打标签?月底账单能一眼看出机器是谁开的;没标签的人,最后只能对着一串 vm-8732 猜。日志别永久留,留存越久存储越贵。

三、先写好运维清单。出事时人容易脑子空白,所以提前落盘。先自动抓一份:

{
  echo "区域: $(gcloud compute instances describe my-first-vm --zone=asia-east1-b --format='value(zone)')"
  echo "外网IP: $(gcloud compute instances describe my-first-vm --zone=asia-east1-b --format='value(networkInterfaces[0].accessConfigs[0].natIP)')"
  echo "系统: debian-12"
  echo "备份: $(gcloud compute snapshots list --format='value(name)' | head -1)"
  echo "回滚: gcloud compute instances reset my-first-vm --zone=asia-east1-b"
} > 运维清单.txt
cat 运维清单.txt

再手工补这几项,别偷懒:

  • 开放端口:只开 22 和 80;别图省事写 0.0.0.0/0 全部端口,这是最常被扫到的坑。
  • SSH 密钥:记下 ~/.ssh/google_compute_engine 的路径,换了电脑没它就登不上。
  • 系统版本:写清 debian-12,升级前先手动拍一次快照。
  • 备份位置:快照在 asia-east1,想跨区恢复得先复制过去,不是点一下就回来。
  • 回滚步骤:先 reset,不行再用快照重建盘,千万别一慌就删实例。

把这三条变成习惯,哪怕你还分不清 GKE、Cloud Run 和 Compute Engine,第一个月也基本不会把试验搞成事故或账单惊吓。跑通了,再慢慢加东西不迟。

常见问题(FAQ)

完全不懂 GCP,第一步该做什么?

先建项目、设预算提醒,再创建一台低配 Linux VM 练手。

需要一开始就学很多产品吗?

不需要,先掌握计算、存储、网络、权限和账单五类即可。

怎么避免账单突然变高?

选低配、设预算提醒、关掉不用资源,并每天看费用明细。

不会用命令行可以运维吗?

可以,先用控制台和 SSH 完成登录、重启、看日志,再学 gcloud。

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

查看代维服务 →

发表评论