フェールソフトとは
フェールソフトとは、システムの一部に障害が発生した際に、システム全体を完全に停止させるのではなく、機能や性能を一部縮小(制限)してでも、重要な機能を維持しながら運転を継続する設計思想です。これによる一時的な機能制限や処理能力の低下を伴う運転継続のことを「フォールバック(縮退運転)」と呼びます。サービスを完全にゼロにしないためのアプローチです。
具体例
- マルチプロセッサのサーバー:複数のCPU(頭脳)で動いているサーバーにおいて、そのうちの1つのCPUが故障した場合、故障したCPUを切り離し、残った正常なCPUだけで処理を続けます。処理速度は低下しますが、サーバー自体が停止してサービスが利用できなくなる事態を防ぎます。
- 家電製品の省エネモード:スマートフォンのバッテリー残量が低下した際、一部のバックグラウンド通信を制限しつつ、通話やメッセージの送受信といった基本機能だけは使える状態を維持します。
もう少し詳しく
フェールソフトは、システム障害時にサービス全体が完全にダウンすることを防ぎ、最低限の機能だけでも提供し続けることを目的とした設計思想です。大規模なオンラインシステム、クラウドサービス、通信インフラなどにおいて、完全にサービスが停止してしまうと、利用者のビジネスや社会生活に甚大な影響を及ぼし、企業としての信用失墜や巨額の損害賠償につながる可能性があります。そのため、フェールソフトの考え方は、現代のITインフラストラクチャにおいて極めて重要な概念となっています。
具体的には、システムを複数の独立したモジュールやサブシステムに分割し、一部のモジュールがダウンしても他のモジュールが独立して稼働できるようにする「疎結合」と呼ばれるアーキテクチャが採用されます。また、ロードバランサ(負荷分散装置)を用いて複数のサーバーに処理を振り分けているWebシステムにおいて、一部のサーバーが故障した際に、そのサーバーをネットワークから素早く切り離し、残りの正常なサーバー群だけでリクエストを処理し続ける仕組みもフェールソフトの典型的な一例です。この場合、システム全体の処理能力(スループット)は低下し、ユーザーから見た応答時間(レスポンスタイム)が長くなるかもしれませんが、サービス自体は停止せずに継続できるため、最悪の事態を回避できます。このように、機能や性能を落としてでも運転を続ける状態を「縮退運転(フォールバック)」と呼びます。
試験でのポイント
情報処理の試験対策として最も重要なのは、「フェールソフト」と「フェールセーフ」の明確な区別です。フェールソフトを問う問題文には、「機能を低下させて」「一部の機能を制限して」「縮退運転(フォールバック)を行い」「システムを全面停止させずに運転を継続する」といったキーワードが必ず含まれます。これらのキーワードを見つけたら、迷わずフェールソフトを選択できるようにしておきましょう。
よくある出題例として、「飛行機のエンジンが複数あるうちの1つが故障しても、残りのエンジンだけで飛行を続ける」「Webサイトで一部の画像サーバーがダウンした場合、画像は表示されないがテキスト情報だけでページを表示し続ける」「クラウドサービスで障害発生時に、無料プランのユーザーのアクセスを制限し、有料プランのユーザーの処理を優先してサービスを維持する」といったシナリオが挙げられます。
また、「フォールバック(縮退運転)」という用語自体が単独で問われることもあります。フェールソフトという設計思想を実現するための具体的な運用状態(アクション)がフォールバックであると結びつけて理解しておくと、応用的な問題にも対応しやすくなります。システムの「可用性(Availability)」を高めるための重要なアプローチとして整理しておきましょう。
関連する用語
関連する用語として「フェールセーフ」と「フォールトトレラント」があります。フェールセーフは障害時に安全を優先してシステムを停止させる思想です。一方、フォールトトレラントは障害が発生しても冗長化によってシステムを「全く影響なく(機能低下させずに)」継続させる設計であり、機能低下を許容してでも継続するフェールソフトとは明確に区別されます。