負荷分散と可用性

フェイルオーバー ふぇいるおーばー

冗長化高可用性クラスタリングフォールバックハートビート障害復旧
フェイルオーバーについて教えて

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

飛行機のパイロットが急に倒れたとき、副操縦士がすぐ操縦を引き継ぐイメージだよ!サーバーや機器が故障したとき、待機していた予備の機器が自動で仕事を引き継いでシステムを止めない仕組みのことなんだ!


フェイルオーバーとは

フェイルオーバー(Failover)とは、稼働中のシステムやサーバーに障害が発生したとき、あらかじめ待機させておいた予備のシステムへ自動的に切り替える仕組みのことです。「fail(失敗する)」+「over(引き継ぐ)」という言葉の通り、主系が失敗したら副系が引き継ぐという動作を表しています。

重要なのは「自動的に」という点です。人が気づいて手動で切り替えるのではなく、システムが障害を検知して自分で切り替えることで、ダウンタイム(サービスが止まる時間)を秒〜分単位に最小化できます。ECサイトや銀行システムのように「1分でも止まると損失が出る」ようなシステムには不可欠な技術です。

フェイルオーバーは冗長化(同じ機能を持つ機器・システムを複数用意すること)を前提として成立します。予備機を用意してはじめてフェイルオーバーが可能になるため、コストはかかりますが、それ以上の安定稼働を実現します。


フェイルオーバーの仕組みと構成

基本的な動作フロー

ステップ内容
① 監視(ハートビート)主系サーバーが「生きてるよ」という信号(ハートビート)を定期的に送信
② 障害検知副系サーバーがハートビートの途絶を検知(例:3回連続で応答なし)
③ 切り替え判断「主系が落ちた」と判断し、フェイルオーバーを開始
④ 引き継ぎ副系が主系のIPアドレスや処理を引き継ぎ、サービスを継続
⑤ 通知管理者にアラートを送信

待機方式の種類

フェイルオーバーには、予備機をどのような状態で待機させるかで3種類あります。

方式予備機の状態切り替え速度コスト
ホットスタンバイ常に起動・同期済み数秒〜数十秒高い
ウォームスタンバイ起動済みだが部分同期数分中程度
コールドスタンバイ停止状態数十分〜低い
  • ホットスタンバイ:予備機が主系と全く同じデータを持って待機。最も速く切り替わるが、予備機にも同等のライセンス・リソースが必要。
  • ウォームスタンバイ:予備機は動いているが、最新データの同期は定期的。コストと速度のバランス型。
  • コールドスタンバイ:予備機は電源オフ。障害が起きてから電源を入れてデータを読み込む。コスト重視の場合に選ばれる。

覚え方:温度で覚える待機方式

🔥 ホット(Hot)   → 常に全力で温まって待機中! → すぐ動ける
🌤 ウォーム(Warm)→ ほんのり温まって待機中   → ちょっと待って
❄️ コールド(Cold)→ 完全に冷えて停止中       → 起動から始める

歴史と背景

  • 1960年代:NASAのアポロ計画でコンピュータの冗長化・フェイルオーバーの概念が実用化。宇宙船のコンピュータが故障しても任務を継続するために採用された。
  • 1980年代:メインフレーム(大型汎用機)の世界でクラスタリング技術として普及。IBMやTandemが高可用性システムを商用化。
  • 1990年代:インターネットの普及に伴い、Webサーバーの冗長化が一般的に。UNIXサーバー向けのクラスタソフトウェアが登場。
  • 2000年代:VMware等の仮想化技術の登場により、仮想マシン単位でのフェイルオーバーが容易に。vMotion(稼働中の仮想マシンを別ホストへ移動)などの技術が普及。
  • 2010年代〜現在:クラウド(AWS・Azure・GCP)がフェイルオーバーをマネージドサービスとして提供。マルチAZ(複数の地理的拠点への自動切り替え)が標準化。

フェイルオーバーと関連技術の比較

フェイルオーバー vs フォールバック vs フェイルセーフ

混同しやすい3つの概念を整理します。

用語意味
フェイルオーバー障害時に予備システムへ自動切り替え主サーバー停止→副サーバーへ切替
フォールバック障害が回復したら元のシステムへ戻す主サーバー復旧→主サーバーへ戻す
フェイルセーフ障害時に安全な状態へ移行する設計思想エレベーターの停電時自動ドア開放

フェイルオーバーで切り替わった後、主系が復旧したら元に戻す操作がフォールバックです。自動で戻す場合と、管理者が手動で判断して戻す場合があります。

フェイルオーバー構成の全体像

フェイルオーバーの構成図 クライアント / ユーザー ブラウザ・スマホアプリ・業務端末 (仮想IPアドレスへアクセス。切替を意識しない) 🟢 主系サーバー(Primary) 通常時はこちらが処理を担当 ハートビート信号を送信中 🟡 副系サーバー(Standby) ハートビートを監視して待機中 障害検知でいつでも引き継げる状態 ハートビート ⚡ 障害発生→自動フェイルオーバー 副系が仮想IPを引き継ぎ → ユーザーはそのまま利用継続 ※ 障害回復後、元の主系に戻す操作を「フォールバック」と呼ぶ

クラウドにおけるフェイルオーバー

クラウドサービスでは、フェイルオーバーが「マネージドサービス」として提供されており、自社で構築するよりも低コスト・低工数で実現できます。

クラウドサービス名概要
AWSMulti-AZ / Route 53 フェイルオーバー複数のAZ(データセンター)間で自動切替
AzureAzure Site Recovery / Availability Zonesリージョン間・ゾーン間のフェイルオーバー
GCPCloud SQL HA / Regional MIGs可用性構成でのゾーン間自動切替

関連する規格・RFC

規格・RFC番号内容
RFC 3768VRRP(Virtual Router Redundancy Protocol)ルーター冗長化のプロトコル
RFC 5798VRRPv3 — IPv6対応版のVRRP
IEEE 802.1AXリンクアグリゲーション — 複数回線を束ねた冗長化

関連用語

  • 冗長化 — 機器やシステムを複数用意して障害に備える設計手法
  • ロードバランサー — 複数のサーバーへ処理を分散させる装置・仕組み
  • ハートビート — サーバーの生存確認のために定期的に送る監視信号
  • クラスタリング — 複数のサーバーをまとめて1台のように扱う技術
  • RTO / RPO — 障害復旧にかかる目標時間(RTO)と許容データ損失量(RPO