一目でわかる!5大安全設計アーキテクチャ

設計思想 一言で言うと 身近な例
🚫 フールプルーフ そもそもミスさせない 電子レンジの扉インターロック、USB Type-C
🛑 フェイルセーフ 壊れたら安全側に止まる 踏切の遮断機、エレベーターの非常ブレーキ
⚡ フェールソフト 壊れたら機能縮小で継続 エンジン1基停止でも残りで飛行継続
🔄 フォールトトレラント 壊れても予備で正常維持 RAID、冗長電源、航空機の3重油圧系統
🔬 フォールトアボイダンス そもそも壊れない設計 半導体クリーンルーム、宇宙機の放射線耐性設計

1. フールプルーフ(Fool Proof)──「ミスが起きない」を実現する

フールプルーフとは、「人間が間違った操作をしようとしても、そもそも物理的に実行できない」設計のことです。
身近な例を挙げれば、誰しも毎日フールプルーフの恩恵を受けています。

対象 フールプルーフの仕組み
電子レンジ 扉を開けた状態では、いくらスタートボタンを押してもマイクロ波が出ない(物理インターロック)。
ATMのカードと現金 カードを抜き取るまで、現金の取り出し口が開かない(取り忘れ防止)。
SIMカード / USB Type-C 逆向きには刺さらない形状、あるいは裏表どちらでも挿入可能なシンメトリー構造。
Webフォームの入力制限 電話番号欄に全角文字を入力しても送信ボタンが押せず、即座にエラーが出るバリデーション。

「間違えないように注意深く入力してください」と注意書きを書くのは下策です。
「間違った値はそもそもシステムが受け付けない」ように制限をかけるのが、上流の設計思想です。

2. フェイルセーフ(Fail Safe)──「壊れたら安全側に倒れる」

フールプルーフが「ミスをさせない」設計だとすれば、
フェイルセーフは「ミスが起きても(あるいは機器が壊れても)、安全側に倒れる」設計です。

対象 フェイルセーフの仕組み
踏切の遮断機 信号システムが故障した場合、遮断機は「降りたまま」になる。開きっぱなしにはならない。
エレベーターのブレーキ ワイヤーが切れた場合、ブレーキが自動的にロックされて急降下を防ぐ。
ガスコンロの立ち消え安全装置 炎が消えるとセンサーが検知し、自動的にガスの供給を遮断する。
Webシステムの自動ロールバック デプロイ直後にエラー率が閾値を超えた場合、自動的に前のバージョンに戻る。

🛡️ フールプルーフ vs フェイルセーフ(一言で)

フールプルーフ = ミスが「起きない」ようにする(予防)
フェイルセーフ = ミスや故障が「起きても被害を最小化」する(損害制御)

3. フェールソフト(Fail Soft)──「壊れても機能を縮小して継続する」

フェイルセーフが「止まることで安全を守る」のに対し、
フェールソフトは「一部の機能を犠牲にしてでも、全体としてのサービスを継続する」設計です。

「止められない」システムにこそ、この思想が必要になります。

対象 フェールソフトの仕組み
旅客機のエンジン 双発機のエンジン1基が停止しても、残り1基で安全に目的地または代替空港まで飛行を継続できる(ETOPS運航)。
大規模Webサービス 検索機能が障害を起こしても、閲覧・購入機能は維持する(機能単位のサーキットブレーカー)。
自動車のリンプモード エンジンの異常を検知すると、速度を制限しつつも最寄りのサービス拠点まで自走できるモードに移行。
スマートフォンの省電力モード バッテリー残量が少なくなると、バックグラウンド更新やGPSを停止し、通話とメッセージだけを維持。

ポイントは、「何を捨てて何を守るか」を事前に設計していることです。
障害が起きてから慌てて「どうする?」と議論するのではなく、あらかじめ優先順位を決めておく。
これはビジネスにおけるBCP(事業継続計画)の考え方そのものです。

4. フォールトトレラント(Fault Tolerant)──「壊れても予備に切り替え正常維持」

フェールソフトが「機能を縮小して継続する」のに対し、
フォールトトレラントは「故障が起きてもユーザーが気づかないレベルで正常動作を維持する」設計です。

要するに「予備(冗長系)」を持つことです。

対象 フォールトトレラントの仕組み
RAID(ディスクの冗長化) ハードディスクが1台故障しても、残りのディスクからデータを完全に復元でき、サービスは中断しない。
航空機の3重油圧系統 3系統のうち2系統が故障しても、残り1系統で操縦を継続できる。
データセンターの冗長電源 商用電源が停電しても、UPS→自家発電機の2段構えで電力供給を維持。
心臓ペースメーカー 主回路が故障しても、バックアップ回路が自動的に起動して生命を維持。

💡 フェールソフト vs フォールトトレラント

フェールソフト = 壊れたら機能を削って継続(ユーザーは劣化を感じる)
フォールトトレラント = 壊れても予備に切り替え正常維持(ユーザーは気づかない)

コストは後者が圧倒的に高いため、「ここだけは絶対に止められない」という最重要コンポーネントに集中投資します。

5. フォールトアボイダンス(Fault Avoidance)──「そもそも壊れない」を追求する

最後にして最上流の設計思想です。
フォールトアボイダンスは、「故障そのものを起こさせない」ために、設計・製造・運用のあらゆる段階で品質を徹底する考え方です。

対象 フォールトアボイダンスの仕組み
半導体製造のクリーンルーム 微細なホコリひとつが不良品を生むため、空気中のパーティクル数を極限まで管理。
宇宙機の放射線耐性設計 宇宙空間の放射線でメモリのビットが反転する現象(SEU)を防ぐため、専用の耐放射線チップを使用。
自動車の耐久テスト 何万kmもの走行シミュレーションを設計段階で行い、故障が起きる前に部品設計を改善。
ソフトウェアの静的解析 コードを実行する前に、自動ツールでバグや脆弱性を検出する。「走らせてから直す」のではなく「走らせる前に潰す」。

この思想は、前編で紹介したハインリッヒの法則(氷山の水面下にある300件のヒヤリ・ハット)と深く結びついています。
ヒヤリ・ハットが起きる「環境」そのものを改善し、そもそも異常が発生しない状態を作り上げる──それがフォールトアボイダンスの究極の目標です。

5つの設計思想はどう組み合わせるのか?

これら5つの設計思想は「どれか1つを選ぶ」ものではなく、多層的に組み合わせることで真価を発揮します。

🛡️ 5大安全設計アーキテクチャの防御レイヤー

🔬 フォールトアボイダンス(そもそも壊れない設計・製造) 🔄 フォールトトレラント(予備に切替え正常維持) ⚡ フェールソフト(機能縮小で継続) 🛑 フェイルセーフ(安全側に停止) 🚫 フールプルーフ (そもそもミスさせない)

内側から外側へ、防御の層を重ねていく設計思想

最も内側のフールプルーフでミスの発生を阻止し、それでも発生したエラーをフェイルセーフで安全に停止させる。
停止が許されないシステムではフェールソフトで機能縮小し、さらにフォールトトレラントで冗長系に切り替え正常を維持する。
そしてそもそもの故障確率をフォールトアボイダンスで極限まで下げる。

この5層すべてが機能しているシステムこそ、「気をつけます」の精神論を超えた、真に信頼性の高いシステムなのです。