冗長設計 じょうちょうせっけい
簡単に言うとこんな感じ!
「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 |
フェイルオーバーの流れ
冗長構成で障害が起きたとき、自動的に予備系に切り替わる仕組みを フェイルオーバー と呼びます。
[正常時]
ユーザー → ルーター① → スイッチ① → サーバー①(稼働中)
サーバー②(待機中)
[障害発生: サーバー①がダウン]
監視ツールが異常を検知(数秒〜数十秒)
↓
フェイルオーバー自動実行
↓
ユーザー → ルーター① → スイッチ① → サーバー②(自動昇格)
※ユーザーからは「ちょっと遅くなった」程度で気づかない
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 5798 | VRRP(Virtual Router Redundancy Protocol)v3 — ルーターの冗長化プロトコル |
| RFC 2338 | VRRPv2(IPv4向けの仮想ルーター冗長化) |
| RFC 5880 | BFD(Bidirectional Forwarding Detection)— 障害検知を高速化するプロトコル |
| IEEE 802.1AX | リンクアグリゲーション(複数回線を束ねる冗長化・帯域拡張技術) |
| IEEE 802.1D | スパニングツリープロトコル(STP)— スイッチのループ防止と冗長経路管理 |