2026 年混合雲部署策略:Cloudflare + Vercel + Railway + Fly.io + Neon 完整架構指南
在雲端服務百花齊放的 2026 年,如何用最少的錢跑最多的 side project?這篇文章將完整拆解一套經過實戰驗證的混合雲架構:Serverless + 小型常駐 + 家庭算力農場 + 統一資料庫層。
TL;DR:推薦架構總覽
flowchart TB
subgraph CF["☁️ Cloudflare (全球入口)"]
Workers["Workers
(路由/Auth)"]
Pages["Pages
(靜態站)"]
Tunnel["Tunnel
(回家 Heavy Compute)"]
end
subgraph Services["後端服務層"]
Vercel["Vercel
(SSR/API)"]
Railway["Railway
(小型常駐)"]
HomeLab["🏠 舊筆電 Home Lab
(運算)"]
end
Workers --> Vercel
Pages --> Railway
Tunnel --> HomeLab
Vercel --> Neon
Railway --> Neon
HomeLab --> Neon
Neon[("🐘 Neon
(唯一 Postgres)")]
style CF fill:#f6821f,color:#fff
style Neon fill:#00e5cc,color:#000
style Vercel fill:#000,color:#fff
style Railway fill:#0b0d0e,color:#fff
style HomeLab fill:#4a5568,color:#fff
Railway Hobby 計費解密:5 美金到底買了什麼?
很多人對 Railway 的計費模式有誤解,這裡先講清楚:
計費結構
Railway Hobby 方案是「訂閱費 + 內含額度」的組合:
| 項目 | 說明 |
|---|---|
| 月訂閱費 | 固定 $5 USD,不管有沒有用資源都要收 |
| 用量額度 | 每月附帶 $5 USD 額度,可抵扣資源費用 |
| 超額部分 | 用量 > $5 時,額外按量計費 |
實際費用試算
| 當月用量 | 實際帳單 | 計算邏輯 |
|---|---|---|
| $3 | $5 | 用量被額度吃掉,只付訂閱費 |
| $5 | $5 | 剛好用完額度 |
| $7 | $7 | $5 訂閱 + $2 超額 |
| $12 | $12 | $5 訂閱 + $7 超額 |
資源單價參考
- CPU:約 $20 / vCPU / 月(minute-level 計費)
- RAM:約 $10 / GB / 月
- Egress:依流量計費
$5 額度大約可以支撐:
- 一個 0.25 vCPU + 256-512 MB 小服務常駐整個月
- 或者幾個有 sleep/idle 機制的服務(實際 CPU 利用率低)
Fly.io vs Railway:純用量 vs 訂閱制
| 比較項目 | Railway Hobby | Fly.io Pay-as-you-go |
|---|---|---|
| 月基本費 | $5 固定 | $0(純用量) |
| 計費粒度 | Minute-level | Second-level |
| 免費額度 | $5 抵扣額度 | 3 台 shared-cpu-1x 256MB + 3GB volume + 160GB egress |
| 最低成本 | $5(就算完全沒用) | $0(理論上) |
| 小機器估價 | 0.25 vCPU + 256MB ≈ $5/月 | shared-cpu-1x 256MB ≈ $1.9-2/月 |
價格敏感度判斷
如果你跑一個 256MB 小 Go/Bun/Python API,流量低:
- Fly.io:帳單約 $0-3
- Railway:最低 $5
如果你想要極速 DX、不想管 VM preset:
- Railway:Nixpacks 自動偵測、一鍵開 DB、Dashboard 直覺
- Fly.io:需要理解 flyctl、Dockerfile、fly.toml
Cloudflare:全球入口 + 邊緣運算
Cloudflare Workers
Workers 是輕量邊緣運算的王者:
// workers-router.js
export default {
async fetch(request, env) {
const url = new URL(request.url);
// 根據路徑決定後端
if (url.pathname.startsWith('/api/heavy')) {
// 打到家裡 heavy compute
return fetch(`https://home.tunnel.example.com${url.pathname}`);
}
if (url.pathname.startsWith('/api/')) {
// 打到 Railway 小型常駐 API
return fetch(`https://api.railway.app${url.pathname}`);
}
// 其他走 Vercel 前端
return fetch(`https://app.vercel.app${url.pathname}`);
}
};
適用場景:
- API Gateway / 路由分流
- Auth / JWT 驗證
- Rate limiting
- 簡單 proxy / rewrite
優勢:
- 延遲極低(邊緣節點)
- 免費額度巨大(每日 10 萬次請求)
- 不需要容器,毫秒級冷啟動
Cloudflare Tunnel:連回家裡算力
Tunnel 是這套架構的神器,讓你不用對外開 port 就能把家裡的舊筆電暴露成 HTTPS endpoint:
# 在舊筆電上安裝 cloudflared
cloudflared tunnel create home-compute
# 設定 config.yml
tunnel: <tunnel-id>
credentials-file: /root/.cloudflared/<tunnel-id>.json
ingress:
- hostname: compute.yourdomain.com
service: http://localhost:8080
- service: http_status:404
# 啟動
cloudflared tunnel run home-compute
適用場景:
- ML 推論(舊筆電的 GPU 也能用)
- 影片渲染 / 轉檔
- Batch processing
- 任何需要持續運算但不急著回應的工作
優勢:
- 不怕家裡 IP 變動
- 自動 HTTPS
- 可搭配 Zero Trust Access 做權限控制
為什麼用舊筆電當 Home Lab?
很多人家裡都有淘汰下來的舊筆電,與其讓它積灰塵,不如拿來當免費算力:
| 優勢 | 說明 |
|---|---|
| 零成本 | 硬體不用另外買 |
| 低功耗 | 筆電設計本來就省電,閒置時約 10-20W |
| 內建 UPS | 電池就是不斷電系統 |
| 靜音 | 比 Server 安靜多了 |
| 有螢幕 | Debug 方便 |
只要跑個 Ubuntu Server + Docker,就能成為你的私人運算節點。
Vercel:前端與輕量 API 的最佳歸宿
適合放 Vercel 的東西
| 類型 | 範例 |
|---|---|
| SSR 前端 | Next.js、Nuxt、SvelteKit |
| Edge Functions | 輕量 API、Middleware |
| AI Route | Vercel AI SDK 整合 |
| 靜態站點 | 但不如 Cloudflare Pages 便宜 |
Vercel 定價概覽
| 方案 | 月費 | Function Duration | Bandwidth |
|---|---|---|---|
| Hobby | $0 | 10 秒 | 100 GB |
| Pro | $20/member | 60 秒 | 1 TB |
注意事項:
- Serverless 有冷啟動(100ms - 1s+)
- Function Duration 限制嚴格
- 高流量會變貴
Neon:Serverless Postgres 的最佳選擇
為什麼選 Neon?
在這套多平台混合架構中,把 DB 集中到 Neon 有幾個明顯優勢:
| 特性 | Railway/Fly 內建 DB | Neon |
|---|---|---|
| Scale to Zero | ❌ 固定實例燒錢 | ✅ 閒置不計費 |
| 多平台連接 | 🟡 同區域延遲較低 | ✅ 統一 endpoint,任何平台都可連 |
| Branch/Preview | ❌ 需手動處理 | ✅ 原生支援,開 PR 自動建 DB 分支 |
| pgvector | 🟡 需自己裝 | ✅ 原生支援,適合 RAG/AI |
| Time Travel | ❌ | ✅ Point-in-time recovery |
Neon 定價
| 方案 | 月費 | Compute | Storage |
|---|---|---|---|
| Free | $0 | 191.9 CU-hours | 0.5 GB |
| Launch | $19 | 300 CU-hours + $0.16/CU-hour 超額 | 10 GB + $0.75/GB 超額 |
| Scale | $69 | 750 CU-hours + $0.16/CU-hour 超額 | 50 GB + $0.50/GB 超額 |
CU (Compute Unit) = 1 vCPU + 4 GB RAM
對 Side Project 來說,Free Tier 的 191.9 CU-hours 相當充足。如果你設定 auto-suspend(閒置 5 分鐘後休眠),低流量專案通常不會超標。
連線範例
// 使用 Neon Serverless Driver(支援 Edge Runtime)
import { neon } from '@neondatabase/serverless';
const sql = neon(process.env.DATABASE_URL!);
// 直接執行 SQL
const users = await sql`SELECT * FROM users WHERE id = ${userId}`;
// 搭配 Drizzle ORM
import { drizzle } from 'drizzle-orm/neon-http';
const db = drizzle(sql);
架構決策樹
你需要什麼?
│
├─► 靜態網站 / 邊緣路由 / 簡單 API
│ └─► Cloudflare Workers / Pages
│
├─► SSR 前端 / AI 整合 / 快速開發
│ └─► Vercel
│
├─► 小型常駐服務(無冷啟動)
│ ├─► 想要自動化 DX、不想寫 Dockerfile
│ │ └─► Railway
│ └─► 想要精確控制、追求極致省錢
│ └─► Fly.io
│
├─► Heavy Compute(ML、渲染、Batch)
│ └─► Cloudflare Tunnel 連回舊筆電
│
└─► 資料庫
└─► Neon(統一、Serverless、支援 Branch)
成本預估:Side Project 月費試算
假設你有一個典型的 Side Project 組合:
| 元件 | 平台 | 月費 |
|---|---|---|
| 前端 SSR + API Routes | Vercel Hobby | $0 |
| 邊緣路由 + Auth | Cloudflare Workers | $0 |
| 一個 Bun API 常駐 | Railway Hobby | $5 |
| 一個 Go Worker 常駐 | Fly.io | $2 |
| Heavy Compute | Cloudflare Tunnel 回舊筆電 | $0(電費約 $1-2) |
| Postgres | Neon Free | $0 |
| 總計 | $7/月 |
什麼時候該選哪個?
選 Railway 的時機
- ✅ 想要「開 service → 選 template → 部署完成」的極速 DX
- ✅ 需要快速開 Postgres / Redis / MongoDB 等 managed DB
- ✅ 不介意每月固定 $5,當作開發環境訂閱費
- ✅ 多個小 service 需要互相串接、同一 workspace 內管理
選 Fly.io 的時機
- ✅ 追求極致省錢(可以壓到 $0-3)
- ✅ 需要精確控制 Docker 環境
- ✅ 需要 Private Networking(服務間私有通訊)
- ✅ 想要 Multi-region 部署
選 Vercel 的時機
- ✅ 前端 + BFF 一體化開發
- ✅ 需要 Edge Functions / Middleware
- ✅ 使用 Next.js / Vercel AI SDK
- ✅ 快速 Preview Deploy
選 Cloudflare 的時機
- ✅ 全球邊緣路由 / CDN
- ✅ 輕量 API / Proxy
- ✅ 免費額度大、延遲低
- ✅ 需要 Tunnel 連回家裡
選 Neon 的時機
- ✅ 多平台共用同一個 DB
- ✅ 需要 Scale to Zero
- ✅ 想用 pgvector 做 RAG
- ✅ 需要 Branch / Preview 環境
進階優化建議
1. Cloudflare Workers 作為統一入口
讓所有請求先經過 Workers,根據 path 決定導向哪個後端:
// 路由邏輯
const routes = {
'/api/ml/*': 'https://home.tunnel.example.com',
'/api/v1/*': 'https://api.railway.app',
'/api/v2/*': 'https://api.fly.dev',
'/*': 'https://app.vercel.app'
};
好處:
- 統一 Domain
- 集中管理 CORS / Auth
- 可做 A/B Testing
2. DB 層集中到 Neon
不要在 Railway / Fly 各開一個 DB,統一用 Neon:
- 備份和穩定性更好
- Branch 功能開發超方便
- 換掉任何 PaaS 都不影響資料層
3. 善用 Sleep/Idle 機制
- Railway:無原生 auto-sleep,但可以用低資源配置
- Fly.io:支援
auto_stop_machines,閒置時自動停機 - Neon:原生 auto-suspend,閒置 5 分鐘休眠
結語
這套混合雲架構的核心理念是:讓每個平台做它最擅長的事。
- Cloudflare:全球入口、邊緣路由、連回家裡
- Vercel:前端 SSR、輕量 API、快速迭代
- Railway:懶人 DX、快速開 DB、Dashboard 友善
- Fly.io:精確控制、極致省錢、私有網路
- Neon:統一資料層、Serverless Postgres、Branch 神器
整體成本可以壓在 $5-10/月 的區間,適合 Side Project、個人專案、小型 SaaS 的初期開發。當流量成長後,再根據瓶頸逐步升級即可。
延伸閱讀:
- ← Previous
為什麼 Code 裡寫的是 Zod,但協議卻說要 JSON Schema?