フェイルオーバー(Failover)とは、稼働中の機器やシステムに障害が発生した際に、自動的に予備の系統へ切り替えて、サービスを止めずに動作を継続させる仕組みのことです。利用者が気づかないうちに、裏側でバトンタッチが行われています。
現実世界に例えると、フェイルオーバーは舞台の主役が体調を崩した際、すぐに控えの役者が代わりを務めるようなものです。観客が違和感を覚えないうちに、舞台そのものは止まることなく進み続けます。
フェイルオーバー図解
フェイルオーバーの仕組み
フェイルオーバーを実現するには、「ヘルスチェック」と呼ばれる仕組みで、機器が正常に動作しているかを常に監視し続ける必要があります。異常が検知されると、あらかじめ用意されていた予備の機器へ、処理が自動的に引き継がれます。
アクティブ・スタンバイ方式とアクティブ・アクティブ方式
| 方式 | 内容 |
|---|---|
| アクティブ・スタンバイ | 普段は待機している予備機に、障害時だけ切り替える |
| アクティブ・アクティブ | 複数の機器を普段から同時に稼働させておく |
フェイルバックという後始末
障害からの復旧後、切り替え先で動いていた処理を、元の機器へ戻す作業は「フェイルバック」と呼ばれます。切り替えたままにしておくか、元に戻すかは、システムの構成や運用方針によって判断が分かれます。
DNSを使った切り替えとロードバランサーによる切り替え
フェイルオーバーの方法にはいくつか種類があり、ドメイン名の参照先を切り替える方法と、ロードバランサーが振り分け先を自動で変更する方法が代表的です。前者は反映までにやや時間がかかる場合があり、後者はより即座に切り替わる傾向があります。
スプリットブレインという注意点
複数の機器がお互いの状態を正しく把握できなくなり、それぞれが「自分が本番系だ」と誤認してしまう「スプリットブレイン」という問題が起こることがあります。整合性の取れないデータが発生する原因になるため、設計上の注意が必要です。
切り替えにかかる時間
フェイルオーバーが完了するまでの時間は、システムの構成によって、ほぼ一瞬で済む場合もあれば、数十秒から数分かかる場合もあります。求められる復旧の速さに応じて、適切な仕組みを選ぶ必要があります。
身近な活用場面
ネットショッピングサイトや金融機関のシステムなど、停止が許されないサービスの多くで、フェイルオーバーの仕組みがあらかじめ組み込まれています。利用者が障害の発生にまったく気づかないケースも少なくありません。
まとめ
フェイルオーバーは、障害の発生を前提としたうえで、サービスを止めないための「もしも」への備えです。冗長化された仕組みがあってこそ実現できる、安定運用を支える重要な技術です。


コメント