ByteNoteByteNote
GCP 永久免费层完全指南:20 个零成本产品 + 账单 API 监控

字节笔记本

2026年4月20日

GCP 永久免费层完全指南:20 个零成本产品 + 账单 API 监控

API中转
¥120

最近在整理云服务账单的时候,我重新审视了一下 Google Cloud Platform 的 Always Free 层级。说实话,很多人只知道 GCP 有 90 天 $300 的试用额度,用完就跑。但他们忽略了一个更重要的事实:GCP 有 20 个产品提供永久免费额度,不会过期。

这篇文章就是一份实用指南——帮你搞清楚哪些服务免费、怎么用 API 监控用量、以及如何避免不小心被扣费。

GCP 账单查询的三种方式

先说账单。你想查自己花了多少钱,GCP 提供了三种路径。

Cloud Billing API

最直接的方式。这个 API 可以查询账单账户信息、项目关联、费用预算和告警。但有一个坑:它只提供管理接口,不给你逐笔消费明细。适合看总账,不适合查明细。

python
from google.cloud import billing_v1

client = billing_v1.CloudBillingClient()
accounts = client.list_billing_accounts()
for account in accounts:
    print(account.name, account.display_name, account.open)

BigQuery Export(查明细的正确方式)

这是 GCP 官方推荐的做法——把账单数据导出到 BigQuery,然后用 SQL 查。好处是精确到每个 SKU,坏处是你得先开启导出功能。

sql
SELECT
  service.description,
  SUM(cost) as total_cost,
  currency
FROM `project.dataset.gcp_billing_export_v1_*`
WHERE DATE(usage_start_time) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY 1, 3
ORDER BY total_cost DESC

好消息是,BigQuery 本身每月有 1 TB 的免费查询额度,加上 Cloud Storage 的 5 GB 免费存储,账单导出和查询这个流程完全零成本。

gcloud CLI 快速查看

临时查一下,不想折腾 API 的话:

bash
# 列出所有账单账户
gcloud billing accounts list

# 查看项目关联的账单账户
gcloud billing projects describe PROJECT_ID

20 个永久免费产品一览

重点来了。以下产品只要不超过免费用量限额,就不必支付费用。不会过期,随时可能有变化。

计算服务

产品免费额度
Compute Engine每月 1 个 e2-micro 实例
Cloud Run每月 200 万个请求
Cloud Run functions每月 200 万次调用
Google Kubernetes Engine每月 1 个 Autopilot 集群
Cloud Build每天 120 分钟构建时间

这几个里面,Compute Engine 的 e2-micro 是真正的常驻免费 VM,适合跑轻量服务。Cloud Run 的 200 万请求对低频 API 服务绰绰有余。

存储与数据

产品免费额度
Cloud Storage5 GB/月 Standard Storage
BigQuery每月 1 TB 查询
Firestore1 GB 存储 + 50K 读/20K 写/天
Pub/Sub每月 10 GB 消息

Firestore 值得单独说一下。它的免费层不只是存储,完整的额度包括:

项目免费额度
存储1 GB(总量)
读操作50,000 次/天
写操作20,000 次/天
删除操作20,000 次/天
出站流量10 GB/月

低频配置存储、用户偏好、小型 CMS,每天几百用户以内完全没问题。但要注意——读操作消耗最快。前端如果用 onSnapshot 实时监听文档,每次数据变化都会触发读,50,000 次/天比想象中消耗得快。

AI/ML 服务

产品免费额度
Vision AI每月 1,000 个单元
Speech-to-Text每月 60 分钟
Natural Language API每月 5,000 个单元
Video Intelligence API每月 1,000 个单元

运维工具

产品免费额度
Operations每月日志 + 监控配额
Cloud KMS Autokey100 个密钥版本 + 10,000 次操作/月
Workflows每月 5,000 个免费内部步骤
Secret Manager每月 6 个 Secret 版本
Cloud Source Repositories5 用户免费
Cloud Shell5 GB 永久磁盘
Workload Manager每月 5,000 次资源评估

防止超额扣费的实用建议

免费额度虽然不会过期,但不代表你不会意外超支。这里有三种监控方案。

方案一:Budget API 设告警(最直接)

给每个关心的服务设置预算告警,超过阈值自动通知。最简单的做法是设一个 $0 预算——只要有任何扣费就立刻通知你。

python
from google.cloud import billing_budgets_v1

client = billing_budgets_v1.BudgetServiceClient()

budget = billing_budgets_v1.Budget(
    billing_account="billingAccounts/XXXXXX",
    display_name="Free Tier Monitor",
    amount=billing_budgets_v1.BudgetAmount(
        specified_amount={"currency_code": "USD", "units": 0}
    ),
    threshold_rules=[
        billing_budgets_v1.ThresholdRule(threshold_percent=100),
    ]
)

方案二:BigQuery Export + SQL(最精确)

针对具体服务查用量,精确到每个 SKU:

sql
SELECT
  service.description,
  sku.description,
  SUM(usage.amount) as usage_amount,
  usage.unit,
  SUM(cost) as billed_cost
FROM `dataset.gcp_billing_export_v1_*`
WHERE
  DATE(usage_start_time) >= DATE_TRUNC(CURRENT_DATE(), MONTH)
  AND service.description IN ('Cloud Run', 'Cloud Storage', 'Compute Engine')
GROUP BY 1, 2, 4
ORDER BY billed_cost DESC

方案三:Cloud Monitoring API(实时监控)

不同服务有专属监控指标,通过 Cloud Monitoring API 查:

python
from google.cloud import monitoring_v3

client = monitoring_v3.MetricServiceClient()
results = client.list_time_series(
    name="projects/YOUR_PROJECT",
    filter='metric.type="storage.googleapis.com/storage/total_bytes"',
    interval=...,
    view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL
)

实际使用建议

根据不同需求,我的推荐组合:

目标推荐方案
防止意外超额扣费Budget API 设 $1 告警
精确查每个服务用了多少BigQuery Export + SQL
实时监控某个服务指标Cloud Monitoring API

说实话,GCP 的 Always Free 层级在三大云厂商(AWS、Azure、GCP)中是最慷慨的。一个 e2-micro VM 加上 Cloud Storage 5 GB 加上 BigQuery 1 TB 查询,这个组合对于个人开发者和小型项目来说,完全可以跑起来零成本的完整技术栈。

关键不是省多少钱,而是这些免费额度给了你一个低风险的环境去学习和实验。不需要信用卡过期之前拼命用完 $300,也不需要担心忘关某个服务导致下个月账单爆炸。

用好免费层,比贪多嚼不烂的试用额度实在得多。

分享: