<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Redundancy-Cost on Tarragon</title><link>https://tarrragon.github.io/blog/tags/redundancy-cost/</link><description>Recent content in Redundancy-Cost on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Fri, 03 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/redundancy-cost/index.xml" rel="self" type="application/rss+xml"/><item><title>高可用的成本</title><link>https://tarrragon.github.io/blog/devops/06-high-availability/ha-cost/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/devops/06-high-availability/ha-cost/</guid><description>&lt;p>高可用的成本核心是冗餘要多付一份資源，但多付多少取決於冗餘的形態，範圍從約 10% 到 100% 不等。最貴的一端是有狀態的熱備——一份 standby 跟主份同規格計費、平時完全閒置，等於把成本翻倍（2x）。最便宜的一端是無狀態機群的 N+1／N+M——一個 10 台的機群多加 1 台備援，只多約 10% 的開銷。所以「冗餘至少 2x」只對熱備成立，不能套到整套系統。這筆錢值不值得，不能用絕對數字判斷，要用「停機每小時的商業代價」衡量：一個停機一小時就損失巨大營收的服務，付冗餘換分鐘級 failover 很划算；一個停機幾小時無傷大雅的內部工具，付這筆冗餘就是浪費。高可用不是越高越好，是把可用性投資對齊停機的真實代價。&lt;/p>
&lt;h2 id="2x-的來源閒置的備援">2x 的來源：閒置的備援&lt;/h2>
&lt;p>冗餘的 2x 成本最直接的例子是資料庫的 multi-AZ——它的費用約是單一可用區的兩倍，因為那個 standby instance 按相同規格計費，卻不服務任何流量。這就是 active-passive 的閒置成本：備援存在、隨時準備接手，但平時純粹在燒錢等 failover。active-active 的冗餘資源閒置成本較低——那些資源平時就在分攤負載、沒閒著——但代價換到了資料一致性的協調成本上。更便宜的是無狀態機群的 N+1／N+M：機群本來就多台在分攤流量，多備一兩台的開銷攤到整個機群、比例很小（&lt;a href="https://tarrragon.github.io/blog/devops/06-high-availability/redundancy-patterns/" data-link-title="冗餘設計模式" data-link-desc="在 active-passive、active-active、multi-region 之間選冗餘模式時，用資料同步方式與 standby 是否服務流量來區分，並知道冗餘不等於備份">冗餘設計模式&lt;/a> 有這個形態的說明）。所以 2x 不是一個固定數字，是「這份冗餘是整份閒置的熱備、還是機群裡多備的幾台」決定的：閒置的熱備付全額閒置成本，機群式的備援只攤到小比例開銷。&lt;/p>
&lt;h2 id="用停機代價衡量值不值得">用停機代價衡量值不值得&lt;/h2>
&lt;p>判斷冗餘值不值得，用的是過度配置的經濟學——過度配置的成本好算、配置不足的代價難算，兩者的平衡點就是該投多少，完整的算法在 &lt;a href="https://tarrragon.github.io/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型&lt;/a> 展開過。套到高可用上，這個平衡點由停機代價定：關鍵服務的停機代價極高——電商每分鐘宕機對應可估算的營收損失——所以值得付 2x 甚至更多；非關鍵服務停機代價低，貼近最低配置跑就好。同一套判準，關鍵服務算出來要厚冗餘、非關鍵算出來可以薄，差別在停機的代價不同。&lt;/p>
&lt;h2 id="可用性等級是一道成本階梯">可用性等級是一道成本階梯&lt;/h2>
&lt;p>可用性不是連續的旋鈕，是一道階梯——每往上一級，成本與複雜度同步階梯上升。單一可用區是一級、跨可用區（multi-AZ）是一級、跨區域（multi-region）又是一級。多數服務的合理路徑是先把單一區域的 multi-AZ 加備份做扎實，再評估要不要跨區域，依據是業務對「整個區域級故障」的容忍度。&lt;/p>
&lt;p>跨區域這一級的決策特別要注意：它通常是合約 SLA 驅動的、不是技術判斷驅動的。一個 B2B SaaS 在合約裡承諾了某個可用性等級，跨區域投資才容易成立；純技術上「想更穩」很少足以正當化跨區域的成本與複雜度。可用性的頂級是有代價的錨——有平台跨 15 個區域做到 99.999%（一年停機約 5 分鐘），那個數字背後是十幾個區域各自維護的基礎設施。要不要爬到那一級，看的是合約與業務、不是工程的完美主義。&lt;/p>
&lt;h2 id="冗餘成本要有護欄">冗餘成本要有護欄&lt;/h2>
&lt;p>為可用性花錢也會失控，要有護欄。最典型的護欄是自動擴縮的成本上限——它是財務上的斷路器（&lt;a href="https://tarrragon.github.io/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型&lt;/a> 講過），設無限大就等著一次異常把帳單炸掉。高可用的投入同理：冗餘、備援、跨區複製每一項都要有成本上限，否則「為了更穩」會變成一個無底洞。可用性投資要跟一個明確的成本天花板綁在一起，超過就回頭重新評估這一級到底值不值得。&lt;/p>
&lt;h2 id="沒驗證的冗餘等於白付">沒驗證的冗餘等於白付&lt;/h2>
&lt;p>最後一筆容易漏算的成本是驗證。冗餘、DR、failover 都要靠演練驗證才算數，而演練要投入工程時間——這是高可用成本的一部分，不是額外選項。一個沒被 drill 驗證過的 multi-AZ、一份沒被 restore 過的 backup，是紙面上的冗餘：帳單上付了 2x，但真出事時它不一定接得住，等於白付了那筆冗餘成本。算高可用的總成本，要把「持續驗證的工程投入」算進去——冗餘的錢加上驗證的工，才是它真正的價格。省掉驗證的那份冗餘，是最貴的一種，因為它讓人以為有保障、實際沒有。&lt;/p>
&lt;h2 id="下一步路由">下一步路由&lt;/h2>
&lt;ul>
&lt;li>過度配置的經濟學、autoscaler 的成本斷路器 → &lt;a href="https://tarrragon.github.io/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型&lt;/a>&lt;/li>
&lt;li>冗餘怎麼擺、2x 從哪來 → &lt;a href="https://tarrragon.github.io/blog/devops/06-high-availability/redundancy-patterns/" data-link-title="冗餘設計模式" data-link-desc="在 active-passive、active-active、multi-region 之間選冗餘模式時，用資料同步方式與 standby 是否服務流量來區分，並知道冗餘不等於備份">冗餘設計模式&lt;/a>&lt;/li>
&lt;li>驗證冗餘的演練節奏 → &lt;a href="https://tarrragon.github.io/blog/devops/06-high-availability/disaster-recovery/" data-link-title="Disaster recovery 策略" data-link-desc="設計災難復原時，先確認恢復路徑走得通再談 RTO/RPO、用 restore drill 把估值變量值、以及知道恢復不是切回流量就結束">Disaster recovery 策略&lt;/a>&lt;/li>
&lt;li>完整的雲端成本治理 → &lt;a href="https://tarrragon.github.io/blog/devops/08-cost-management/" data-link-title="模組八：成本管理" data-link-desc="雲端帳單怎麼不失控 — reserved instance、spot instance、right-sizing、成本監控告警">模組八 成本管理&lt;/a>&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>高可用的成本核心是冗餘要多付一份資源，但多付多少取決於冗餘的形態，範圍從約 10% 到 100% 不等。最貴的一端是有狀態的熱備——一份 standby 跟主份同規格計費、平時完全閒置，等於把成本翻倍（2x）。最便宜的一端是無狀態機群的 N+1／N+M——一個 10 台的機群多加 1 台備援，只多約 10% 的開銷。所以「冗餘至少 2x」只對熱備成立，不能套到整套系統。這筆錢值不值得，不能用絕對數字判斷，要用「停機每小時的商業代價」衡量：一個停機一小時就損失巨大營收的服務，付冗餘換分鐘級 failover 很划算；一個停機幾小時無傷大雅的內部工具，付這筆冗餘就是浪費。高可用不是越高越好，是把可用性投資對齊停機的真實代價。</p>
<h2 id="2x-的來源閒置的備援">2x 的來源：閒置的備援</h2>
<p>冗餘的 2x 成本最直接的例子是資料庫的 multi-AZ——它的費用約是單一可用區的兩倍，因為那個 standby instance 按相同規格計費，卻不服務任何流量。這就是 active-passive 的閒置成本：備援存在、隨時準備接手，但平時純粹在燒錢等 failover。active-active 的冗餘資源閒置成本較低——那些資源平時就在分攤負載、沒閒著——但代價換到了資料一致性的協調成本上。更便宜的是無狀態機群的 N+1／N+M：機群本來就多台在分攤流量，多備一兩台的開銷攤到整個機群、比例很小（<a href="/blog/devops/06-high-availability/redundancy-patterns/" data-link-title="冗餘設計模式" data-link-desc="在 active-passive、active-active、multi-region 之間選冗餘模式時，用資料同步方式與 standby 是否服務流量來區分，並知道冗餘不等於備份">冗餘設計模式</a> 有這個形態的說明）。所以 2x 不是一個固定數字，是「這份冗餘是整份閒置的熱備、還是機群裡多備的幾台」決定的：閒置的熱備付全額閒置成本，機群式的備援只攤到小比例開銷。</p>
<h2 id="用停機代價衡量值不值得">用停機代價衡量值不值得</h2>
<p>判斷冗餘值不值得，用的是過度配置的經濟學——過度配置的成本好算、配置不足的代價難算，兩者的平衡點就是該投多少，完整的算法在 <a href="/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型</a> 展開過。套到高可用上，這個平衡點由停機代價定：關鍵服務的停機代價極高——電商每分鐘宕機對應可估算的營收損失——所以值得付 2x 甚至更多；非關鍵服務停機代價低，貼近最低配置跑就好。同一套判準，關鍵服務算出來要厚冗餘、非關鍵算出來可以薄，差別在停機的代價不同。</p>
<h2 id="可用性等級是一道成本階梯">可用性等級是一道成本階梯</h2>
<p>可用性不是連續的旋鈕，是一道階梯——每往上一級，成本與複雜度同步階梯上升。單一可用區是一級、跨可用區（multi-AZ）是一級、跨區域（multi-region）又是一級。多數服務的合理路徑是先把單一區域的 multi-AZ 加備份做扎實，再評估要不要跨區域，依據是業務對「整個區域級故障」的容忍度。</p>
<p>跨區域這一級的決策特別要注意：它通常是合約 SLA 驅動的、不是技術判斷驅動的。一個 B2B SaaS 在合約裡承諾了某個可用性等級，跨區域投資才容易成立；純技術上「想更穩」很少足以正當化跨區域的成本與複雜度。可用性的頂級是有代價的錨——有平台跨 15 個區域做到 99.999%（一年停機約 5 分鐘），那個數字背後是十幾個區域各自維護的基礎設施。要不要爬到那一級，看的是合約與業務、不是工程的完美主義。</p>
<h2 id="冗餘成本要有護欄">冗餘成本要有護欄</h2>
<p>為可用性花錢也會失控，要有護欄。最典型的護欄是自動擴縮的成本上限——它是財務上的斷路器（<a href="/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型</a> 講過），設無限大就等著一次異常把帳單炸掉。高可用的投入同理：冗餘、備援、跨區複製每一項都要有成本上限，否則「為了更穩」會變成一個無底洞。可用性投資要跟一個明確的成本天花板綁在一起，超過就回頭重新評估這一級到底值不值得。</p>
<h2 id="沒驗證的冗餘等於白付">沒驗證的冗餘等於白付</h2>
<p>最後一筆容易漏算的成本是驗證。冗餘、DR、failover 都要靠演練驗證才算數，而演練要投入工程時間——這是高可用成本的一部分，不是額外選項。一個沒被 drill 驗證過的 multi-AZ、一份沒被 restore 過的 backup，是紙面上的冗餘：帳單上付了 2x，但真出事時它不一定接得住，等於白付了那筆冗餘成本。算高可用的總成本，要把「持續驗證的工程投入」算進去——冗餘的錢加上驗證的工，才是它真正的價格。省掉驗證的那份冗餘，是最貴的一種，因為它讓人以為有保障、實際沒有。</p>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>過度配置的經濟學、autoscaler 的成本斷路器 → <a href="/blog/devops/05-capacity-planning/cost-model/" data-link-title="成本模型" data-link-desc="把容量規劃的資源翻成錢時，釐清 on-demand、reserved、spot 三種計費模式的取捨、怎麼算單位請求成本、以及過度與不足配置各自的經濟代價">模組五 成本模型</a></li>
<li>冗餘怎麼擺、2x 從哪來 → <a href="/blog/devops/06-high-availability/redundancy-patterns/" data-link-title="冗餘設計模式" data-link-desc="在 active-passive、active-active、multi-region 之間選冗餘模式時，用資料同步方式與 standby 是否服務流量來區分，並知道冗餘不等於備份">冗餘設計模式</a></li>
<li>驗證冗餘的演練節奏 → <a href="/blog/devops/06-high-availability/disaster-recovery/" data-link-title="Disaster recovery 策略" data-link-desc="設計災難復原時，先確認恢復路徑走得通再談 RTO/RPO、用 restore drill 把估值變量值、以及知道恢復不是切回流量就結束">Disaster recovery 策略</a></li>
<li>完整的雲端成本治理 → <a href="/blog/devops/08-cost-management/" data-link-title="模組八：成本管理" data-link-desc="雲端帳單怎麼不失控 — reserved instance、spot instance、right-sizing、成本監控告警">模組八 成本管理</a></li>
</ul>
]]></content:encoded></item></channel></rss>