ネットワーク設計と自動化

冗長設計 じょうちょうせっけい

可用性フェイルオーバーSPOF冗長化HA構成障害対策
冗長設計について教えて

簡単に言うとこんな感じ!

「1つが壊れても大丈夫なように、あらかじめ予備を用意しておく設計」のことだよ!飛行機のエンジンが4つあるのと同じ発想で、システムの部品を二重・三重にしておくことで、障害が起きてもサービスを止めないようにする仕組みなんだ!


冗長設計とは

冗長設計(じょうちょうせっけい / Redundant Design)とは、システムやネットワークの一部が故障・障害を起こしても全体のサービスが継続できるよう、同じ役割を持つ部品や経路を複数用意しておく設計手法のことです。「冗長」という言葉は日常語では「無駄が多い」という意味ですが、IT分野では「必要な予備を持つ」というポジティブな意味で使われます。

冗長設計の目的は可用性(Availability)の向上です。可用性とは「使いたいときにシステムが使える割合」のことで、99.9%や99.99%といった数値で表されます。たとえばサーバーが1台だけの場合、そのサーバーが壊れたら即サービス停止ですが、2台並べて片方が壊れても自動的にもう1台が引き継ぐ設計にしておけば、ほぼ無停止でサービスを続けられます。

システム発注や調達の場面では、「冗長構成にするか、しないか」はコストと可用性のトレードオフです。冗長化すれば機器代・保守費が増える一方、システム停止による損失リスクは大きく下がります。「止まっても大丈夫なシステムか」「止まったら何円の損失か」を整理した上で、どこまで冗長化するかを決めるのが発注側の重要な判断になります。


冗長設計の核心:SPOFをなくす

冗長設計を語る上で外せないのが SPOF(Single Point of Failure / 単一障害点) という概念です。SPOFとは「そこが壊れたらシステム全体が止まる部分」のこと。冗長設計の目標は「SPOFをゼロにする」ことです。

主な冗長化対象と手法

対象冗長化手法具体例
サーバーアクティブ/スタンバイ、負荷分散Webサーバーを2台並列稼働
ネットワーク回線複数回線契約・マルチホームISPを2社契約して片方が切れてもOK
スイッチ・ルータースタック構成・VRRPコアスイッチを2台にしてVRRPで切り替え
電源二重化電源・UPSサーバーに電源ユニット2系統・無停電電源装置
ストレージRAIDレプリケーションディスクをRAID-5/6構成・遠隔地にデータ複製
データセンター複数拠点・DR構成東京・大阪に分散配置

アクティブ/スタンバイ と アクティブ/アクティブ

冗長化には大きく2つのパターンがあります。

方式内容特徴
アクティブ/スタンバイ(A/S)普段は1台稼働、故障時に予備が自動起動コスト低め・切り替え時に数秒〜数十秒の中断あり
アクティブ/アクティブ(A/A)複数台が常に並行稼働・負荷も分散コスト高め・性能向上も兼ねる・瞬断なし

覚え方

「冗長設計 = 予備機・予備路・予備電」 サーバー・回線・電源の3つを予備ありにすれば、まず止まらない!


歴史と背景

  • 1960年代〜 — 航空・宇宙分野(NASAのアポロ計画など)で冗長設計の概念が確立。人命に関わるシステムでは部品の2重・3重化が当然とされた
  • 1970〜80年代 — メインフレームの時代。大型汎用機で電源・ディスク・通信回線の冗長化が一般化
  • 1988年 — RAIDの概念がUC Berkeleyの論文で提唱。ディスク冗長化の標準的な手法として普及
  • 1990年代 — インターネット商用化に伴いWebサーバーの冗長化(ロードバランサー構成)が広まる
  • 2000年代仮想化技術の登場で、ソフトウェアによる冗長化(VMのライブマイグレーションなど)が現実的に
  • 2010年代〜 — クラウドの普及によりマルチAZ(Availability Zone)設計が標準化。複数データセンター間の冗長化が容易に
  • 現在SLA(サービスレベル合意)に「可用性99.99%(年間停止52分以内)」などを明記するのが一般的に

可用性の数字と冗長設計の関係

よく耳にする「ファイブナイン(99.999%)」などの可用性目標は、冗長設計のレベルを判断する基準になります。

可用性年間停止許容時間必要な冗長レベル(目安)
99%約87時間単一構成でも許容できる場合あり
99.9%(スリーナイン)約8.7時間サーバー・回線の1重冗長化
99.99%(フォーナイン)約52分サーバー・回線・電源の多重冗長化
99.999%(ファイブナイン)約5.3分フルアクティブ/アクティブ+複数DC
冗長設計パターン比較(ネットワーク構成) ❌ 非冗長構成(SPOF有り) インターネット ルーター(SPOF)⚠️ スイッチ(SPOF)⚠️ サーバー ✅ 冗長構成(SPOF解消) インターネット(複数回線) ルーター① ルーター② スイッチ① スイッチ② サーバー① サーバー② 点線=冗長リンク(障害時に自動切り替え)

フェイルオーバーの流れ

冗長構成で障害が起きたとき、自動的に予備系に切り替わる仕組みを フェイルオーバー と呼びます。

[正常時]
  ユーザー → ルーター① → スイッチ① → サーバー①(稼働中)
                                      サーバー②(待機中)

[障害発生: サーバー①がダウン]
  監視ツールが異常を検知(数秒〜数十秒)

  フェイルオーバー自動実行

  ユーザー → ルーター① → スイッチ① → サーバー②(自動昇格)
  ※ユーザーからは「ちょっと遅くなった」程度で気づかない

関連する規格・RFC

規格・RFC番号内容
RFC 5798VRRP(Virtual Router Redundancy Protocol)v3 — ルーターの冗長化プロトコル
RFC 2338VRRPv2(IPv4向けの仮想ルーター冗長化)
RFC 5880BFD(Bidirectional Forwarding Detection)— 障害検知を高速化するプロトコル
IEEE 802.1AXリンクアグリゲーション(複数回線を束ねる冗長化・帯域拡張技術)
IEEE 802.1Dスパニングツリープロトコル(STP)— スイッチのループ防止と冗長経路管理

関連用語

  • 可用性 — システムが使える時間の割合。冗長設計の主要目標指標
  • VRRP — ルーターを仮想的に束ねて冗長化するプロトコル
  • フェイルオーバー — 障害時に予備系へ自動切り替えする仕組み
  • ロードバランサー — 複数サーバーへ処理を分散させる機器・ソフトウェア
  • RAID — 複数ディスクを束ねてデータを冗長化する技術
  • SLA — サービスレベル合意。可用性目標を契約に明記するもの
  • スパニングツリープロトコル — スイッチ冗長構成でループを防ぐプロトコル
  • BFD — ネットワーク障害を高速検知する軽量プロトコル