← 全部內容

我獨自升級,替客戶每年省下七萬的主機費

公司最近新接手的一個客戶,問我們:「為什麼上個月突然要多付一筆資料庫費用?」

看了帳單後發現,是 AWS 開始要求所有 RDS 的 MySQL 資料庫需使用 8.4 版以上,否則需要支付延長支援費用。而客戶的網站還在使用 8.0 版本。

資料庫是大部分網站的命脈,一但需要升級,所有服務都需要暫停。而這個客戶的情況還更複雜,因為該資料庫還作為他們 SSO 服務的基底。換句話說就是如果停機,所有會員登入都會受影響。

更棘手的因為是剛接手,我們需要先盤點整個系統架構,才有辦法進行處理。

還好客戶的整個伺服器都架設在 AWS 上,我提供 Codex AWS 臨時安全憑證(使用前需要本人登入授權、最多 12 小時就會到期的短效憑證,可降低長期金鑰外洩的風險)讓它進去好好研究一番,最終我們擬定了以下的升級步驟:

  1. 盤點哪些服務共用資料庫,釐清升級會影響誰
  2. 建立本機測試環境,檢查既有程式與 MySQL 8.4 的相容性
  3. 架設有真實網址的驗收站,讓人可以實際操作
  4. 準備 AWS 藍綠部署環境(註),檢查備份與資料同步狀態
  5. 執行切換,核對網站實際連到的資料庫版本
  6. 升級後檢查頁面、API、服務健康與錯誤紀錄
  7. 沒有明顯錯誤後,進行完整 E2E 測試
  8. 清理測試資源,確認舊資料庫停止後沒有影響主要服務

決定步驟後我們立刻開工,AI 負責 1 ~ 6 跟 8,我負責在它說可以開始後後進行 E2E 測試,重點放在會員登入與主站的登入串接。

雖然今天正式切換時還是遇到了一點小問題,切換後既有程式的資料庫連線還卡在舊的地方,導致部分 API 出現錯誤(測試網站因為只有針對 MySQL 8.4 的相容性進行測試,沒有實測 8.0 => 8.4 的轉換,因此沒有發現這個問題),但最終還是順利在切換後的 20 分鐘內修正完成。

本次升級的成本如下:

  • 盤點與製作測試站:60 分鐘
  • 升級前最後備份與藍綠部署環境架設:90 分鐘
  • 升級後修正:20 分鐘
  • 測試與收尾:10 分鐘
  • AI token 費用:約台幣 2,000 元

我越來越清楚感受到,AI 正在改變系統維護的成本結構。

哪些費用是因為版本太舊而持續增加?哪些系統因為怕出事,使用了超過需求規格的伺服器?哪些服務甚至沒人在用,卻還在付錢?

企業應該全面審視系統的問題,以前因為人力與耗時導致不值得做的事,全部回到桌上評估。

把錢花在刀口上。

註:藍綠部署是先讓舊環境持續提供服務,同時準備新環境完成升級與檢查,確認就緒後再切換。用在資料庫時,還會持續將舊庫的新資料同步到新庫,並在切換前確認追平。這能縮短服務中斷時間、降低升級風險;切換時仍可能需要短暫重新建立連線。本次專案的切換約耗時 32 秒。