【鐵人賽 Day27】在 Render 免費方案部署 AI 專案的坑與挑戰
摘要
今天來分享我在 Render.com Free Plan 部署 AI 女友專案時,遇到的各種限制與困難。雖然 Render 免費方案對入門來說很方便,但要拿來跑 FastAPI + LINE Bot + AI 模組,就會踩到不少坑。
⸻
Tags
• Render 部署
• 免費方案限制
• FastAPI
• LINE Bot
內容
因為:
• 提供 免費雲端服務(適合測試小專案)
• 部署流程簡單,支援 GitHub auto deploy
• 適合鐵人賽這種「快速原型」開發
但實際使用後,發現很多 限制讓人卡關。
⸻
(1) CPU / 記憶體限制
• 免費方案只有 512MB RAM,執行 FastAPI 還好,但一旦載入 語音轉文字、LLM 模組 就容易 OOM(Out Of Memory)。
解法:
• 把大模型換成本地端測試,Render 只跑輕量 API。
• 用 requirements.txt 精簡依賴,只留下核心套件(fastapi, linebot, httpx)。
⸻
(2) 休眠 (Auto Sleep) 問題
• Render Free Plan 會在 15 分鐘沒流量就自動休眠。
• LINE Bot webhook 常常打過去就 timeout,因為服務醒來需要 30 秒以上。
解法:
• 在 google app script 設定一個 ping 定時喚醒(每 10 分鐘 GET 一次)。
• 也試過 UptimeRobot 監測,但免費版只有 5 分鐘間隔,還是會 timeout。
⸻
(3) Storage 限制
• 免費方案 不支援持久化存儲,所以 Redis 或 SQLite 資料每次重啟就會消失。
• 對 AI 女友專案來說,對話記憶完全無法保存。
解法:
• 把記憶移到外部服務
⸻
(4) Log 與 Debug 不方便
• Render 免費版 log 只有短時間保存,很多 bug 抓不到。
• 部署錯誤訊息有時候很模糊,像 Exited with status 137,其實就是記憶體爆了。
解法:
• 在程式裡加 logging,把錯誤輸出到 LINE Bot 回傳訊息,方便即時 debug。
• 再 push 到 Render rebulid 會有1月500分鐘 pipline時間限制
⸻
問題 免費版限制 我的解法
記憶體不足 512MB RAM 模型跑本地,只讓雲端當 API gateway
自動休眠 15 分鐘無流量就休眠 Cloudflare Worker / UptimeRobot Ping
資料保存 無持久化存儲 Upstash Redis / Google Sheets
Debug 困難 Log 保存短 logging + LINE 即時 debug
⸻
心得反思
1. 免費方案適合練習,但不適合長期運行 —— 特別是需要即時回應的 LINE Bot,休眠問題很致命。
2. 把 Render 當作中繼站 —— 輕量 API 跑在 Render,重運算(STT、TTS、LLM)放本地或其他服務。
3. 資源限制會逼你優化架構 —— 從一開始「全部塞進去」到後來「拆分服務」,其實讓系統更乾淨。
⸻
結語
今天整理了在 Render 免費方案部署 AI 專案的挑戰與解法。雖然限制很多,但對於鐵人賽來說,它是一個很好的「快速試煉場」。
雲部署 —— 嘗試把 Render的免費利用到乾淨 ,找到最適合 AI 女友專案的架構。
⸻
架構圖