之前写过一篇甲骨文云的免费试用教程及注意事项反响很好,今天再给大家写一篇谷歌云的GCP免费试用教程。先说清楚一件事:"GCP免费层"其实分两种,很多人把它们混在一起理解,这是产生误解的根源。
第一种是$300免费额度试用,新账号注册后通常有90天的试用期,期间可以用这$300体验几乎所有GCP服务。这个额度用完或者90天到期之后,账户不会自动升级收费,但如果你已经主动升级到付费账户,就开始按正常计费了。
第二种是Always Free永久免费层,指的是某些特定规格的服务,在特定用量限制内永远不收费。最常被提到的是e2-micro实例(1个共享vCPU + 1GB内存),在美国区域(us-central1、us-east1、us-west1)每月可以免费运行一个,还有30GB标准存储和每月1GiB的北美出站流量。
注意:"e2-micro永远免费"这个说法有一个经常被忽略的前提——它指的是实例本身的计算资源免费,不包括绑定在这台实例上的外部IPv4地址。
为什么账单上会有几块钱的收费
外部IPv4地址收费是目前GCP小额意外账单的最主要来源。GCP从2020年1月1日起就开始对运行中实例绑定的外部IPv4地址收费,2024年2月又做了一次价格上调。当前的收费标准建议你去官网IP定价页面核实最新数字,因为历次调整后各信源引用的数字不完全一致。根据2024年调整前的标准,按需实例绑定外部IPv4大约$0.004/小时,预占实例约$0.002/小时,换算成整月的话按需实例约$3/月。2024年2月上调后这个数字可能更高,以官网当前显示为准。
还有一个容易被忽略的情况:闲置静态IP的费用比运行中实例的IP费用更高。一个申请了但没有绑定到任何实例的静态公网IP,收费约$0.01/小时,一个月大约$7.30,比正在运行中的实例上的IP还贵。很多人注册完试用、做完实验之后忘记释放静态IP,几个月后发现账单里有莫名其妙的几十块,原因通常就在这里。
出站流量费用是第二个容易踩的坑
永久免费层的出站流量额度是每月1GiB(注意是GiB,约等于1.07GB),仅限北美出站,且不包括对中国大陆、澳大利亚等地区的流量。
超出这个额度之后,大约按$0.12/GiB计费(Premium Tier,价格以官网当前显示为准)。听起来不多,但以下几种操作很容易在不知不觉中消耗大量出站流量:
# 更新系统包
sudo apt update && sudo apt upgrade
# 拉取Docker镜像(AI相关镜像动辄几十GB)
docker pull ollama/ollama
# 下载AI模型
ollama pull llama3
AI模型的体积是最容易让人吃惊的地方——Llama 3的8B参数版本大约4.7GB,70B版本超过40GB,如果你在GCP上跑AI实验并且频繁拉取模型,流量费用可能远超预期。
账单里出现"Americas to Virginia"这类标签,代表的是跨区域数据传输或者公网出口流量,金额不大但会持续累积。
怎么避免外部IPv4费用
方法一:用Cloudflare Tunnel替代公网IP暴露
如果你的服务是Web应用(WordPress、面板、API服务等),可以通过Cloudflare Tunnel建立从实例到Cloudflare边缘的隧道,把流量从Cloudflare转发到实例,完全不需要对外暴露实例的公网IPv4地址。
在实例上安装cloudflared:
curl -L https://github.com/cloudflare/cloudflared/releases/latest/
download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/
cloudflared tunnel login
cloudflared tunnel create my-tunnel
这个方案的额外好处是Cloudflare自动提供DDoS防护和缓存,不需要在GCP上单独配置安全规则。
方法二:改用IPv6访问
GCP的IPv6地址目前不收费(或费用极低),对于不依赖IPv4的服务,切换到IPv6访问可以避开IPv4的费用。但前提是你的访问端(比如家里的宽带、VPN、客户端)也支持IPv6,新手操作起来有一定门槛。
方法三:SSH访问改用IAP(Identity-Aware Proxy)
如果你只需要SSH进服务器做管理操作,可以通过Google Cloud的IAP隧道访问,不需要实例绑定公网IP:
# 安装gcloud CLI之后
gcloud compute ssh INSTANCE_NAME \
--tunnel-through-iap \
--project PROJECT_ID \
--zone ZONE
这样实例可以完全不绑定外部IPv4,只在需要SSH时通过IAP隧道连进去,不用的时候没有额外的IP费用。
必须设置账单提醒,不是可选项
不管你打算怎么用GCP,设置账单预算提醒是第一步要做的事,而不是等到月底看到账单才反应过来。
进入GCP控制台:
Billing → Budgets & Alerts → Create Budget
建议设置三个阈值,分别在$1、$3、$5触发邮件提醒。这样任何意外的计费行为都能在金额变大之前被你发现,不需要等到账单结算才知道。
停止实例不等于删除资源
这是很多人犯的一个操作错误,值得单独说清楚。
点击"Stop"停止一台实例,实例不再运行,但绑定在它上面的静态IP、挂载的磁盘,有可能仍在计费。正确的做法是:如果这台实例不再需要,进入"VPC Network → IP Addresses",找到已经分配的外部IP,确认它的状态,如果显示"In Use"而实例已停止,手动释放这个IP;然后进入"Compute Engine → Disks",确认是否有孤立的磁盘没有删除。
# 列出所有静态IP地址
gcloud compute addresses list
# 释放指定静态IP
gcloud compute addresses delete ADDRESS_NAME --region=REGION
GCP免费层2026年还值不值得用
值得用,但用途和几年前不一样了。GCP的真实价值不在于"免费VPS",而在于它的技术生态——Kubernetes(GKE)、Docker、AI推理服务、Cloud Run这些云原生工具的体验在GCP上都很成熟,$300的试用额度足够你深度学习一遍主流的云原生技术栈。
如果你的目标只是长期低成本跑一个WordPress或者轻量服务,Hetzner、Contabo、DigitalOcean这类VPS厂商的固定月费方案反而更适合,不需要担心流量超额或者IP费用意外触发。GCP免费层最适合的用法是"学习和实验",而不是"永久免费的生产服务器"——理解清楚这个定位,就不会对账单感到意外。