我同時維護十個以上的接案專案,護理之家的 PDCA 系統、醫療 AI 平台、教育內容工具、個人品牌網站——每個都需要部署、CI/CD、資料庫、監控
有人問我:這樣每個月的基礎設施要花多少錢?
答案讓他們有點意外:扣掉資料庫,大概 $0,加上資料庫,大概 $20-30 美金(約 NTD 600-900)
這不是因為我的專案很小,幾個已經是正式服務,有真實用戶在跑,是因為我從一開始就建立了一個原則,然後把所有工具選擇都對齊這個原則
原則:變動成本,不要固定成本
固定月費是獨立開發者的隱形殺手,每個月 $10 看起來很小,但十個服務就是 $100,一年就是 $1,200——而且你睡覺的時候費用照計
我的策略很簡單:用免費方案撐到有人付你錢,然後讓成本跟著收入一起長
- 沒有流量 → 不付錢
- 有流量但不多 → 幾乎不付錢
- 流量大了 → 客戶在付你更多錢了,基礎設施費用佔比很小
這叫做變動成本模型,以下是我怎麼實現這件事的
前端部署:Vercel Hobby(免費)
我所有的 Next.js 前端都部署在 Vercel Hobby 方案:一間長照機構的管理系統、一個醫療 AI 平台、一個主權模型教育平台、個人網站
Vercel Hobby 給你什麼:
- 無限專案部署
- 每個 push 自動觸發 CI/CD,Preview URL 跑完才 merge
- 每月 100 GB 頻寬
- 每月 100 小時 serverless function 執行時間
- 自訂 domain,SSL 憑證自動處理
- 完全免費
對我的所有接案專案來說,100 GB 頻寬從來沒超過,一個月的 API 請求量超過六位數才會開始有壓力
Hobby 方案的限制要注意:
- 商業用途在技術上需要升級到 Pro($20/月/團隊)
- 不能跑背景工作(cron jobs)在 serverless function 超過一定時間
- 每個 serverless function 執行時間上限 10 秒(Hobby),Pro 才有 60 秒
- 頻寬超過 100 GB 開始計費
如果你是接案幫客戶做,客戶的流量長大之後要記得評估是否升級,我自己的狀況是:幾個專案規模還不大,Hobby 綽綽有餘
實際花費:$0/月
後端:GCP Cloud Run(幾乎免費)
Cloud Run 是我覺得被嚴重低估的服務,它的免費額度很大,而且最重要的特性是:沒有流量的時候,它自動縮到零,不收任何錢
Cloud Run 每月免費額度(永久,不是 trial):
- 200 萬次請求
- 360,000 GB-秒記憶體
- 180,000 vCPU-秒計算時間
- 1 GB 出站流量(北美)
醫療 AI 平台、教育平台、中文閱讀學習平台、人資報名系統——我的 FastAPI 後端都跑在 Cloud Run 上,低流量的時候幾乎不花錢,偶爾月底帳單出來看一下,通常是 $0.00 或幾毛美金
Cloud Run 實際設定建議:
# 設定最小實例數為 0(最省錢,冷啟動換零費用)
gcloud run deploy my-service \
--min-instances=0 \
--max-instances=10 \
--memory=512Mi \
--cpu=1
冷啟動(第一個請求需要等容器啟動)大概 1-3 秒,對大多數接案專案來說完全可以接受,如果是對延遲非常敏感的服務,設 --min-instances=1 但就要付那個實例的費用
實際花費:$0-2/月(視流量而定)
資料庫:Cloud SQL(唯一要花錢的地方)
我對你誠實:資料庫是我架構裡唯一無法免費的環節
Cloud SQL 沒有免費方案,最便宜的配置大概是:
db-f1-micro(共享 vCPU,614 MB RAM)- SSD 10 GB 儲存
- 台灣區(asia-east1)
月費大概 $7-10 美金(約 NTD 220-310)
我目前兩個有正式資料庫需求的專案(醫療 AI 平台和人資報名系統)各跑一個 Cloud SQL 實例,每月合計約 $15-20 美金
Cloud SQL 的幾個省錢設定:
- 停機排程:開發環境的 Cloud SQL 可以設定夜間自動停機,停機狀態不收計算費,只收儲存費
- 連線池:用 Cloud SQL Auth Proxy + pgBouncer,避免連線過多造成記憶體浪費
- 儲存量:預設有 autoscale,小心它悄悄長大,設定上限避免意外帳單
如果你的專案初期不需要關聯式資料庫,Firestore(每天 5 萬次讀取免費)或 Cloud Storage(每月 5 GB 免費)可以撐很久
實際花費:$15-20/月(兩個專案合計)
CI/CD:GitHub Actions(免費到夠用)
我用 GitHub Actions 管理六個以上專案的 CI/CD:測試、lint、自動部署到 Vercel 和 Cloud Run、定時同步工作
GitHub Actions 免費額度:
- 公開 repo:無限分鐘數(完全免費)
- 私人 repo:每月 2,000 分鐘(個人帳號)
我的接案專案都是私人 repo,但 2,000 分鐘通常夠用,一個典型的 CI 流程(lint + test + build)大概跑 3-5 分鐘,一個月跑 200 次才 1,000 分鐘
超過 2,000 分鐘開始計費,約 $0.008 美金/分鐘(Linux runner)
實際花費:$0-2/月(視 CI 頻率而定)
整套架構的實際月帳單
這是我目前真實的每月支出估算:
| 服務 | 費用 |
|---|---|
| Vercel Hobby(前端,所有專案) | $0 |
| Cloud Run(後端,4 個專案) | $0-2 |
| Cloud SQL db-f1-micro × 2 | ~$18 |
| GitHub Actions(CI/CD) | $0-1 |
| GitHub(repo、Issues、PRs) | $0 |
| 合計 | ~$20/月(約 NTD 620) |
十個以上的活躍專案,月租 NTD 600 出頭,而且幾乎所有成本來自資料庫——如果一個專案不需要 SQL,它的基礎設施費用實際上是零
陷阱:看起來免費但其實不是
幾個我踩過或差點踩的坑:
1. Cloud SQL 的 always-on 費用
Cloud SQL 即使沒有任何流量,實例只要開著就在計費,不像 Cloud Run 可以縮到零,很多人建完開發環境忘了設停機排程,一個月下來帳單才發現
2. Vercel 的頻寬陷阱
Hobby 的 100 GB 聽起來很多,但如果你的專案有大型靜態資源(影片、高解析度圖片),有可能很快就超,超過之後按量計費,建議把媒體資源放 Cloud Storage 或 CDN,Vercel 只服務 HTML/CSS/JS
3. GitHub Actions 的自動觸發
如果你設了 push 觸發但沒有限制 branch,每個 push 都跑 CI,分鐘數消耗會比預期快,建議只在 main 和 PR 上觸發
4. Cloud Run 的出站流量
Cloud Run 的 1 GB 免費出站流量是北美區域的,台灣(asia-east1)的出站流量計費方式不同,大量 API 回應傳輸時要注意
5. 忘了開帳單警告
GCP 有帳單預算提醒功能,設一個 $30/月的警告,在你意外超支之前就通知你,這是零成本的保險
GCP 免費試用:新手的最佳起點
如果你現在是 GCP 新帳號,有一件事先做:啟用免費試用
GCP 目前提供:$300 美金信用額度,有效期 90 天
這 $300 可以用來:
- 跑好幾個月的 Cloud SQL 而不花到正式帳戶
- 測試 Vertex AI、Cloud Run、BigQuery 等各種服務
- 搭建開發環境、測試環境,完全不用擔心費用
90 天試用期結束後,GCP 不會自動扣費,需要你手動升級到付費帳戶,這個設計很安全——你不會一不小心被扣錢
升級後,Free Tier 的免費額度(例如 Cloud Run 的 200 萬次請求)繼續永久有效
給新手的建議:拿這 $300 試用把所有想試的服務都玩一遍,等你轉成正式付費帳戶,你已經清楚知道每個服務要花多少錢了
這套架構適合誰
這個架構適合:
- 接案開發者,同時跑多個小到中型專案
- SaaS 早期驗證,不確定會不會有人用
- 技術人員的 side project,不想每個月花固定費用
不適合:
- 流量已經很高、需要保證延遲的正式產品(冷啟動不可接受)
- 需要複雜資料庫功能的專案(Cloud SQL 便宜方案效能有限)
- 需要 24/7 技術支援 SLA 的企業合約
結語
我不喜歡「你應該用 X 服務,因為它有免費方案」這種建議,因為那通常是在說功能最差的選項
我喜歡的是:用同樣水準的服務,但只在你真正用到的時候付錢,Cloud Run 的效能不比 Kubernetes 差,只是它的帳單跟著流量走,Vercel Hobby 的部署體驗跟 Pro 一樣好,只是有頻寬上限
十個專案,月租不到三千,不是因為我在用劣質工具,而是因為我選的工具讓我只為用到的部分付費
Young Tsai — 全端 AI 接案開發者,目前同時維護醫療、教育、長照三個產業的 AI 工具,
