小型 API 服務配置單:從單機到可擴容
小型 API 服務的三階段演進配置單:單機 VPS 起步($5.34 基線)、數據庫分離、獨服+橫向擴展。每階段給出觸發信號、架構動作與避免過度設計的紀律。
小型 API 服務(內部系統、SaaS 後端、小程序接口、AI 應用網關)的架構演進有一條被反復驗證的路徑:單機起步 → 分離存儲 → 橫向擴展。本篇是場景方案中心的 API 服務專篇:每個階段的配置單、升級觸發信號,以及最重要的紀律——不過度設計。價錢以美元計,以在售列表實時價爲準。
階段一:單機 VPS(0 → 驗證期)
配置單:AXVPS-1C1G($5.34/月真實基線)起步,業務上量後升 2C4G 檔(價錢待實測,以在售爲準);應用 + 數據庫 + 緩存全部同機,用 systemd 管理進程;Nginx 反代 + HTTPS(證書自動化續籤)。
# 單機最小部署基線(一次配好,後面所有階段復用)
systemctl enable --now nginx
certbot --nginx -d api.你的域名 # 證書自動籤發+續籤
# 進程守護:systemd unit 而不是 nohup
systemctl status 你的服務 && journalctl -u 你的服務 -n 50
# 資源水位監控(升級信號的數據來源)
sar -u -r 1 10 # CPU/內存 10 秒採樣
df -h / && ss -s # 磁盤與連接數
本階段紀律:不碰微服務、不上 K8s、不做讀寫分離——驗證期的唯一目標是「跑通業務閉環 + 攢下監控數據」。過度設計在這個階段的成本是 100%,收益是 0。
階段二:數據庫分離(驗證期 → 增長期)
觸發信號(滿足任一即啓動):數據庫內存佔用擠壓應用(swap 頻繁換入);慢查詢開始影響 API P99;單機磁盤 IO %util 長期 >70%。架構動作:數據庫遷到獨立機器(同機房內網互聯),應用機專注計算;備份策略升級(每日 dump + binlog 連續歸檔)。成本增量:一臺同檔或高一檔 VPS——用「一次故障的損失」對比「每月幾十美元的增量」,這筆賬永遠劃算。
| 信號 | 觀察命令/指標 | 動作 |
|---|---|---|
| swap 頻繁換入 | free -m 的 si/so 持續非零 | 加內存或分離數據庫 |
| API P99 抬升 | 應用日志/網關統計 | 慢查詢分析 → 索引 → 分離 |
| 磁盤 IO 飽和 | iostat -x 的 %util >70% | 數據庫獨立 + NVMe 檔 |
| CPU 單核跑滿 | top 單核 100% 而整機不滿 | 應用無狀態化,準備橫向 |
階段三:獨服 + 橫向擴展(增長期)
觸發信號:負載曲線連續 30 天平直高位(獨佔單價反超彈性溢價,臨界點算法見選型中心裸金屬篇);或單機縱向加配已到頂。架構動作:應用層無狀態化(會話進 Redis/JWT,文件進對象存儲)→ 負載均衡下掛多臺應用機 → 數據庫按壓力決定主從或分庫。配置單參考:AXDED-E3 獨服($70.80/月真實基線)跑數據庫 + 2–3 臺 VPS 跑應用層,月成本壓在 $100 內即可支撐相當規模。
# 無狀態化自查三問(橫向擴展的前提):
grep -rn "session" 你的代碼目錄 | grep -i "file\|local" # ① 會話還在本地文件?
ls /var/www/uploads 2>/dev/null # ② 上傳文件還在本地盤?
grep -rn "localhost" 配置文件 # ③ 還有硬編碼單機依賴?
# 三問清零後,加機器才等於加容量;否則加機器 = 加故障面
貫穿三階段的四條紀律
- 監控先行:每個階段的升級決策都靠數據觸發,不靠感覺——可達性、P99、資源水位三項從第一天就採;
- 備份隨架構升級:階段二的 binlog、階段三的多副本,備份等級永遠不低於數據的重要性;恢復演練每季度一次(腳本見安全中心);
- 安全基線不跳級:SSH 加固、防火牆最小放行、密鑰管理從單機階段就做齊——階段越後補越貴;
- 每次只動一層:分離數據庫的那周不做橫向擴展,變更可歸因是排障的前提。
網關與限流:API 服務的門面基線
單機階段就該配齊的門面三件套:①限流——按 IP 與按 token 雙維度(Nginx limit_req 起步即可),超限返回 429 + Retry-After 頭;沒有限流的 API 被腳本掃爆只是時間問題;②超時與重試口徑——網關超時(如 30s)、應用內下遊調用超時(更短)、客戶端重試策略(指數退避 + 冪等鍵)三層對齊,任何一層缺失都會在故障時放大成雪崩;③版本與契約——URL 版本前綴(/v1/)從第一天就用,破壞性變更只進新版本;錯誤響應結構統一(錯誤碼 + 可讀消息 + requestId),客戶端與工單排查都靠它。這三樣的實現成本在單機階段是「小時級」,在橫向擴展之後補課是「天級」——地基要在房子小的時候打。
什麼時候考慮 Serverless/雲函數替代
流量波峯波谷差十倍以上、日均請求量卻不大的 API(營銷頁表單、Webhook 接收),雲函數的按量計費可能比常駐 VPS 便宜——但冷啓動延遲、供應商鎖定、調試復雜度是代價。判斷口徑:P99 容忍 >500ms 且請求稀疏 → 可以試;實時交互或穩定流量 → 常駐機器更省心。混合架構(常駐核心 + 邊緣函數)是成熟期的常見形態。
下一步:從 $5.34 單機起步,把監控三件套配好,等觸發信號而不是等焦慮 → 在售配置。方法論總綱與其他場景 → 場景方案中心。