高可用的成本
高可用的成本核心是冗餘要多付一份資源,但多付多少取決於冗餘的形態,範圍從約 10% 到 100% 不等。最貴的一端是有狀態的熱備——一份 standby 跟主份同規格計費、平時完全閒置,等於把成本翻倍(2x)。最便宜的一端是無狀態機群的 N+1/N+M——一個 10 台的機群多加 1 台備援,只多約 10% 的開銷。所以「冗餘至少 2x」只對熱備成立,不能套到整套系統。這筆錢值不值得,不能用絕對數字判斷,要用「停機每小時的商業代價」衡量:一個停機一小時就損失巨大營收的服務,付冗餘換分鐘級 failover 很划算;一個停機幾小時無傷大雅的內部工具,付這筆冗餘就是浪費。高可用不是越高越好,是把可用性投資對齊停機的真實代價。
2x 的來源:閒置的備援
冗餘的 2x 成本最直接的例子是資料庫的 multi-AZ——它的費用約是單一可用區的兩倍,因為那個 standby instance 按相同規格計費,卻不服務任何流量。這就是 active-passive 的閒置成本:備援存在、隨時準備接手,但平時純粹在燒錢等 failover。active-active 的冗餘資源閒置成本較低——那些資源平時就在分攤負載、沒閒著——但代價換到了資料一致性的協調成本上。更便宜的是無狀態機群的 N+1/N+M:機群本來就多台在分攤流量,多備一兩台的開銷攤到整個機群、比例很小(冗餘設計模式 有這個形態的說明)。所以 2x 不是一個固定數字,是「這份冗餘是整份閒置的熱備、還是機群裡多備的幾台」決定的:閒置的熱備付全額閒置成本,機群式的備援只攤到小比例開銷。
用停機代價衡量值不值得
判斷冗餘值不值得,用的是過度配置的經濟學——過度配置的成本好算、配置不足的代價難算,兩者的平衡點就是該投多少,完整的算法在 模組五 成本模型 展開過。套到高可用上,這個平衡點由停機代價定:關鍵服務的停機代價極高——電商每分鐘宕機對應可估算的營收損失——所以值得付 2x 甚至更多;非關鍵服務停機代價低,貼近最低配置跑就好。同一套判準,關鍵服務算出來要厚冗餘、非關鍵算出來可以薄,差別在停機的代價不同。
可用性等級是一道成本階梯
可用性不是連續的旋鈕,是一道階梯——每往上一級,成本與複雜度同步階梯上升。單一可用區是一級、跨可用區(multi-AZ)是一級、跨區域(multi-region)又是一級。多數服務的合理路徑是先把單一區域的 multi-AZ 加備份做扎實,再評估要不要跨區域,依據是業務對「整個區域級故障」的容忍度。
跨區域這一級的決策特別要注意:它通常是合約 SLA 驅動的、不是技術判斷驅動的。一個 B2B SaaS 在合約裡承諾了某個可用性等級,跨區域投資才容易成立;純技術上「想更穩」很少足以正當化跨區域的成本與複雜度。可用性的頂級是有代價的錨——有平台跨 15 個區域做到 99.999%(一年停機約 5 分鐘),那個數字背後是十幾個區域各自維護的基礎設施。要不要爬到那一級,看的是合約與業務、不是工程的完美主義。
冗餘成本要有護欄
為可用性花錢也會失控,要有護欄。最典型的護欄是自動擴縮的成本上限——它是財務上的斷路器(模組五 成本模型 講過),設無限大就等著一次異常把帳單炸掉。高可用的投入同理:冗餘、備援、跨區複製每一項都要有成本上限,否則「為了更穩」會變成一個無底洞。可用性投資要跟一個明確的成本天花板綁在一起,超過就回頭重新評估這一級到底值不值得。
沒驗證的冗餘等於白付
最後一筆容易漏算的成本是驗證。冗餘、DR、failover 都要靠演練驗證才算數,而演練要投入工程時間——這是高可用成本的一部分,不是額外選項。一個沒被 drill 驗證過的 multi-AZ、一份沒被 restore 過的 backup,是紙面上的冗餘:帳單上付了 2x,但真出事時它不一定接得住,等於白付了那筆冗餘成本。算高可用的總成本,要把「持續驗證的工程投入」算進去——冗餘的錢加上驗證的工,才是它真正的價格。省掉驗證的那份冗餘,是最貴的一種,因為它讓人以為有保障、實際沒有。
下一步路由
- 過度配置的經濟學、autoscaler 的成本斷路器 → 模組五 成本模型
- 冗餘怎麼擺、2x 從哪來 → 冗餘設計模式
- 驗證冗餘的演練節奏 → Disaster recovery 策略
- 完整的雲端成本治理 → 模組八 成本管理