フォールトトレランスとは?障害が発生しても止まらないシステムの設計思想

システム開発・テクノロジー
フォールトトレランスとは?ざっくりと3行で
  • システムの一部に障害が発生しても全体の機能が継続できるよう設計する「耐障害性」の考え方のこと
  • コンポーネントの冗長化・エラー自動修復・グレースフルデグラデーションという3つのアプローチで単一障害点(SPOF)をなくすのが基本方針だ
  • 航空機・医療機器・金融システムなど「止まることが人命や社会に直結する」ミッションクリティカルなシステムで特に重視される概念だ

【深掘り】これだけ知ってればOK!

フォールトトレランスの代表的な実装例:RAID(ディスク冗長化でディスク障害時もデータを保護)・ECCメモリ(メモリのビット化けを自動訂正)・FTサーバ(CPU・メモリ全体を二重化してダウンタイムゼロを実現)・クラスタリング(複数サーバが同じ処理を担い1台が落ちても継続)。

フォールトトレランスとHA(高可用性)の違い:HAは障害を検知してフェイルオーバーで切り替える。切り替え時に数秒〜数分のダウンタイムが発生する可能性がある。フォールトトレランスは障害が発生してもダウンタイムゼロで継続稼働する。完全な二重化が前提でコストが高い。

グレースフルデグラデーション(Graceful Degradation)という概念も重要だ。完全なフォールトトレランスが難しい場合に障害発生時に全機能を止めるのではなく重要な機能だけを維持して部分的にサービスを継続する設計方針だ。推薦機能が落ちても商品一覧は見られる、といった設計がこれに当たる。

フォールトトレランス設計の出発点はSPOF(Single Point of Failure)の特定だ。システム内でその箇所が壊れると全体が止まるポイントを全て洗い出して冗長化することがフォールトトレランス設計の基本的な進め方だ。

RAID・ECCメモリ・電源の二重化といった低コストな対策から始めて重要度に応じてレベルを上げることができる。クラウドのマルチAZ構成もフォールトトレランスの考え方の実践であり、スケールに応じた実装が可能だ。

よくある誤解

フォールトトレランス=バックアップと同じだと思っている

バックアップはデータを保護して復元するための仕組みだ。フォールトトレランスは障害発生時もシステムが稼働し続けるための設計で、復旧を待たずに継続稼働する点が本質的に異なる。

フォールトトレランスは高すぎて中小企業には関係ないと思っている

RAID・ECCメモリ・電源の二重化といった低コストな対策から始めて重要度に応じてレベルを上げることができる。クラウドのマルチAZ構成もフォールトトレランスの考え方の実践だ。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

このシステム、DBサーバが1台しかないのでSPOFです。Multi-AZ構成にしてフォールトトレランスを高めましょう。

インフラエンジニアがシステムの単一障害点を指摘して改善提案している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

推薦エンジンが落ちてもトップページは表示できるようにグレースフルデグラデーションを実装しました。

エンジニアがフォールトトレランスの考え方を取り入れた設計を報告している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

RAIDは入れましたが電源が1系統なのでSPOFのままです。UPSと電源の二重化も検討してください。

インフラ担当者がSPOFの見落としを指摘している場面。

【まとめ】3つのポイント

  • 障害が発生しても全体機能を継続できるシステム設計の考え方:冗長化・エラー自動修復・グレースフルデグラデーションでSPOFをなくすことがフォールトトレランス設計の核心だ
  • HAとの違いはダウンタイムゼロの保証にある:HAは障害後の切り替えに停止が発生するがフォールトトレランスは障害の瞬間も無停止で継続するためコストは高いが絶対に止められないシステムに必要な設計だ
  • SPOFを特定して冗長化することが設計の出発点:システム内の全てのSPOFを洗い出してRAID・ECCメモリ・電源二重化・クラスタリングなどコストと重要度に見合った冗長化を積み上げることがフォールトトレランス設計の進め方だ

よくある質問

Q
フォールトトレランスとフォールトアボイダンスはどう違いますか?
A

フォールトアボイダンスは障害が発生しないよう高品質なコンポーネントを使い設計を徹底する予防的アプローチです。フォールトトレランスは障害が発生することを前提として、発生しても継続稼働できる設計です。

Q
クラウドのマルチAZ構成はフォールトトレランスになりますか?
A

フォールトトレランスの考え方を実践した高可用性設計です。AZが1つ障害を起こしても別のAZで継続稼働できますが、切り替え時に数秒の遅延が発生する場合もあるためFTサーバの完全なダウンタイムゼロとは厳密には異なります。

Q
SPOFの見つけ方はどうすればいいですか?
A

システムの構成図を描いてその要素が1つでも故障したら全体が止まるかを問い直します。DB・ネットワーク機器・電源・ロードバランサーなど全てのコンポーネントをチェックします。

Q
フォールトトレランスとレジリエンシーはどう違いますか?
A

フォールトトレランスは障害時も無停止で継続稼働する能力です。レジリエンシーは障害から素早く回復する能力の広い概念で、フォールトトレランスはレジリエンシーを実現するための一つのアプローチです。

【出典】参考URL

https://aws.amazon.com/jp/architecture/well-architected/ :AWSのWell-Architected(信頼性の柱)
https://e-words.jp/w/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%88%E3%83%88%E3%83%AC%E3%83%A9%E3%83%B3%E3%82%B9.html :IT用語辞典「フォールトトレランス」
https://www.ipa.go.jp/security/guide/sme/ug65p90000019cfm-att/000073226.pdf :IPAの信頼性設計ガイドライン

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました