【システム構成】片肺飛行で生き残れ!「フェールソフト」の粘り強さ|情報処理問題1000本ノック
システムが壊れたとき、全部をあきらめて止めるのか、それとも機能制限してでも動かし続けるのか。ビジネスを止めないための設計思想「フェールソフト」を攻略しましょう。
1. 【 問題 】:システム故障時の動作設計思想(フェールソフト)
【 問題 】 コンピュータシステムにおいて、構成要素の一部に予期せぬ故障(フォールト)が発生した際、システム全体を完全に停止させるのではなく、故障した部分を切り離して残りの正常な部分だけで処理を続行し、機能や処理能力は一時的に低下(縮退運転)しても、最低限必要なサービスを維持しようとする設計思想はどれでしょうか?
① フェールセーフ (Fail Safe)
② フェールソフト (Fail Soft)
③ フォールバック (Fallback / 縮退運転)
④ フールプルーフ (Fool Proof)
2. 正解:
正解: ② フェールソフト (Fail Soft)
3. 解説:「安全に止める(セーフ)」か「性能を落としてでも続ける(ソフト)」か
2台のサーバーで負荷を分散しているシステムなどで、1台が煙を吹いて倒れたときの挙動のルールを定めたのがフェールソフトです。
・動き:システムの一部が壊れたことを検知すると、被害が全体に広がらないようにその故障部位を即座に「切り離し」ます。そして、「100%のスピードは出せないけれど、50%の能力でなんとか稼働を続ける」という制御を行います。 ← ココが問題の正解!
・キーワード(フォールバック):この、フェールソフトの思想に基づいて「機能を縮小してでも運転を続ける状態」そのもののことを、IT用語で「フォールバック(Fallback)」または「縮退運転(しゅくたいうんてん)」と呼びます。この2つは表裏一体の概念です。
★ ① フェールセーフ:フェールソフトと名前が最も似ており、試験で一番激しく激突するキーワードです。こちらは「壊れたら、何よりも安全(Safe)を最優先して、システムをあえて『安全な状態に停止・遮断』させる」という思想です。人命や大事故を防ぐためのもので、踏切や鉄道の信号機(壊れたら必ず赤信号になって電車を止める)が代表例です。
★ ③ フォールバック:フェールソフトという「思想・方針」に従って行われる、具体的な「縮退運転という動作(状態)」を指す言葉です。今回は設計思想(〜ソフト、〜セーフの枠組み)を問う問題であるため、より適切なのは②になります。
★ ④ フールプルーフ:システムが壊れたときではなく、システムを使う「人間がバカなこと(Fool:誤操作)をしても、システム側でそれを防ぐ(Proof)」という事前対策の設計思想です(例:クラッチを踏まないとエンジンがかからない車など)。
1. 理解のコツ: 「2つのエンジンを持つ飛行機(双発機)」に例えてみましょう。
・飛行中に右のエンジンが故障したとします。このとき、故障した右エンジンへの燃料を遮断して切り離し、残った左エンジン1つだけでパワーを落として最寄りの空港まで飛び続ける(片肺飛行)。この、満身創痍でも完全墜落(全停止)を避ける柔軟で粘り強い思想がフェールソフトです。
・もしここで「エンジンが壊れたから危ない!今すぐ両方のエンジンを止めて着陸だ!」と、安全のために動きを完全停止させるのがフェールセーフです。飛行機でそれをやったら墜落するので、飛行機やWebサービス(ECサイトの注文機能だけ生かして検索を止める、など)ではフェールソフトが好まれます。
2. 試験対策の視点: 「故障部分を切り離す」「完全には停止させない」「処理能力を落として継続(縮退運転)」という、部分運用のフレーズがあれば「フェールソフト」が一択です。ITパスポートから基本情報、応用情報の午前試験では、「フェールセーフ(安全停止)」と「フェールソフト(機能縮小継続)」の文章をわざと逆に入れ替えたひっかけ選択肢が本当にによく作られます。「セーフ=安全(停止)」「ソフト=柔らかく(継続)」と脳内で英語のニュアンスと結びつけておくと、一瞬で罠を回避できます。
4. まとめ
「トラブル時にすべてを諦めてシャットダウンするのではなく、壊れた部分をスマートに切り離し、残されたリソースで泥臭くサービスを生き残らせる高信頼化設計思想」。これがフェールソフトです。24時間365日の稼働が求められる現代のクラウドシステムや基幹インフラにおいて、システムの全滅を防ぐための最も重要な防衛ラインとなっています。