iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
Software Development

AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思系列 第 21

AI 慣老闆的 AI學習日記 Day 20 - GCP & Replit 帳單暴增

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250824/20142509qi6bPyYS5B.png

精煉重點 1:沒有標籤,就沒有歸屬;沒有預算,就沒有剎車。
精煉重點 2:成本不是會計事後算,是產品設計的一部分。

貝老闆:「昨天 GCP 刷了兩萬,Replit 費用也跳警示!發生什麼事!?我們是不是紅了?」
小可:「紅的是你的臉啦。站內日活 7,人手一個管理員帳號,你在跟雲端玩燒錢轉盤嗎?」
工程師 King:「我已經按照 Day 10 指示把 Cloud Run min-instances=3、Logging 全量、Vertex 調到 a 系列大模型,還把 staging 也開 Always On。合理,不論是開發測試!還是任何流量來都擋得住! 」
AI 實習生(單眼冒 ??):「我也照你說『盡可能快』,所以把 autoscaling 開到最大,最快。」
貝老闆:「那…可以先不要那麼快嗎?」
小可:「求救好威。」

好威:「就說你省下那些錢付我顧問費就沒事了,FinOps 三步:看得見 → 控得住 → 變便宜。先讓錢有名字,再讓服務有刹車,最後才談折扣。把『成本』當功能做:沒有監控與預算線,就不准上線。」

概念拆解

  1. 標籤/歸屬(Tag/Label):在 GCP 替專案、環境、功能模組加上 labels: {env: prod|staging, team: web, feature: inference},Replit 專案名稱與說明也要寫清楚。這就像報帳要附抬頭,之後才能做「誰花的」統計。沒有標籤,就無法切帳、也無法談效率。

  2. 預算與異常警報:GCP 設 Budget(例如每月 1 萬)、門檻 50%/80%/100% 寄信+ Slack;再開 Cost Anomaly 監測。Replit 側設定組織上限與到期提醒。把「錢超標」變成跟錯誤 500 一樣的紅燈事件,有人值班、有人處理。

  3. 計費透明化(BigQuery 導出+Looker 報表):把 GCP 帳單匯出到 BigQuery,每日聚合到看板(活頁簿一頁叫「錢用去哪」)。最簡單的維度:服務別、環境別、團隊別、功能別。週會 5 分鐘過目,不看就等於沒做。

  4. 雲端剎車與速限:Cloud Run min-instances 設 0(冷啟動可接受才開)、Requests 限流;Vertex/LLM 設每日配額與單請求上限;Logging 設過濾與取樣,避免把 DEBUG 當日記本。Replit 先用 Static 部署驗證流量,真的上量才切 Autoscale,並關閉閒置工作執行緒與排程。

  5. 環境衛生:Staging/Dev 設 TTL 自動下線;資料庫用最小規格+關閉公網;物件儲存選單區域/冷存;跨區傳輸要有理由。把「不用的機器」當蟑螂看,一隻都不留。

  6. 用量來源追兇:爆量常見元凶是:無限迴圈的 Cron、未設快取的熱門 API、第三方爬蟲、錯誤重試。加上Rate Limit/CDN Cache,並為每個外部金流或 LLM 金鑰配一個 子 Proxy 金鑰,能細看誰在花。

小工具與最小實作

  • DoD(Definition of Done)加入成本條款

    • [ ] 確認 各環境 labels 俱全
    • [ ] 確認 Budget+Alert 開啟
    • [ ] 設定 日誌過濾規則
    • [ ] 確認 Load Test 估算單請求成本
    • [ ] 確認 Staging TTL 設定
  • 範例:LLM 請求成本估算心算法(非工程也會):
    1 個請求 ≈(prompt tokens × 單價)+(output tokens × 單價)。
    每日上限=單價 ×(峰值 QPS × 秒 × 小時)。先算最壞情境再砍半。

  • Replit 最小剎車

  1. 先 Static 部署+流量觀察
  2. Autoscale 設最大副本數
  3. 關閉 Always On 的非必要環境
  4. 排程腳本須附「自殺保險」:跑完就停。

Takeaways

  1. 把成本當 SLO 管:像處理延遲一樣處理「每使用者每日成本」。若突破門檻,自動降級模型或開啟快取。這讓團隊在速度與成本之間有「可預期的退讓」。

  2. 先歸戶再優化:沒有標籤就別談省錢。先讓花費能對到人、對到功能,責任清楚後,優化才有方向。AI 也能幫你列出「前 5 名燒錢榜」。

  3. 預算線就是功能線:Budget/Alert、Rate Limit、Logging 取樣、Staging TTL 都要寫進 PR Checklist。沒勾到就不准上線,跟資安一樣嚴格。

  4. 用 AI 做 FinOps 助理:丟入 BigQuery 帳單表,讓 AI 生成「本週異常」「無效花費 Top10」「關閉建議」。你要說清楚欄位與門檻,AI 才知道怎麼抓「可關可省」。

  5. 從最貴的一處下手:先找單一最大噴點(例如 Vertex、Egress、Logging),用一招解法(降規、快取、關 min instance)。80/20 原則比全面微調更有效。

今日提問

  • 你們團隊有沒有一個每週 5 分鐘的成本檢討?如果沒有,這週就開起來:誰花、花在哪、下一步要關什麼?
  • 你願意接受多少冷啟動,來換每月省多少錢?先說數字,才談方案。

Prompt 小作業(丟給 AI 實習生)

「你是我的 FinOps 助理。已開啟 GCP Billing Export(BigQuery 資料表 gcp_billing.daily_cost)。請用 SQL 產生:

  1. project_id, labels.env, service 聚合的上週成本榜;
  2. 偵測較前週成長 >30% 的項目;
  3. 列出三個可行的降本建議(含預估節省幅度與風險)。」

上一篇
AI 慣老闆的 AI學習日記 Day 19 - 權限亂給、API Key 外流邊緣
下一篇
AI 慣老闆的 AI學習日記 Day 21 - UAT 驗收與真實使用落差
系列文
AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思34
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言