COLUMN
コラム
2021年10月05日
#フェイルオーバー – 知ったかテックワード!君もIT博士
カテゴリー:知ったかテックワード
タグ:システム運用
「フェイルオーバー」(Failover)は、稼働していたシステムが障害などで中断された場合に、予備システムに自動的に切り替えることだよ。また、本番システムが災害などで利用できなくなったとき、予備機に切り替えればDR対策(Disaster Recovery:ディザスターリカバリー)も実現できる。
予備システムを用意しておくことで、本番システムの故障や障害があっても処理を止めることなく利用し続けることができるから、可用性を向上させることができる。お客様の満足度も高まるって寸法だね。
フェイルオーバーを行う場合、システムの冗長化・多重化が必要になる。
この場合の冗長化は、長くなるとか余計なものを加えるといった意味ではなく、予備システムを用意するって意味だから気を付けてね。
冗長化の方式
システムの冗長化には、次のように複数の方式がある。
- ホットスタンバイ:本番システムと同じように予備システムを常時稼働させておいて、障害時に短時間で切り替える
- ウォームスタンバイ:機器本体やOSなどは起動しておくが、本番システムと同期しておかない。障害時は、処理を引き継ぐ作業が必要になる
- コールドスタンバイ:予備システムは起動していない停止した状態で待機している。障害時は、予備システムの起動・引継ぎ作業が必要になる。
—
ちなみに、故障した本番システムを修理して、フェイルオーバーした予備システムから元へ戻すことは「ファイルバック」(Failback)って言うんだよ。
こうした冗長化方式には、利点と欠点がある。
ホットスタンバイのように、予備システムを常時稼働させておく方式では、すぐに予備機に切り替えるメリットがある。でも、予備機の稼働コストとデータの同期が必要になるから、割高になりがちだ。
コールドスタンバイのように、予備システムは起動していない停止した状態で待機している方式では、障害が起きてからシステムの起動やデータの引継ぎをすればいいから、データを同期する仕組みは簡単になるし、コストもあまりかからない。でも、予備機を起動するまで時間がかかってしまうんだ。
システムの重要度やコストとのバランスを取ることが欠かせないね。
おまけのコント
ウサギ:フェイルオーバーって、なに?
カエル:「フェイル」(Fail)は「失敗する」「故障する」という意味。
「フェイルオーバー」(Failover)は、システム障害が起きたときに、自動的に予備システムに切り替えることだね。
失敗を上書きする感じかなぁ。
ウサギ:なるほど。失敗は成功のもと。失敗は発明の母だから。フェイルオーバーは失敗のおバア。
カエル:失敗のおバア!じゃあ、障害が起こると?
ウサギ:予備のおジイに切り替わる。
おジイ:はいはい、予備のおジイが出てきたよ。
カエル:え、これ誰?大丈夫なの?
ウサギ:なんか、変なものを召喚しちゃったナ。
おジイ:長いこと予備として待機していたんで、すっかりおジイになってしまったヨ。
ウサギ:予備が出てきたってことは、オレたち失敗してるのかな?
おジイ:心配ない。細かいことは気にするな。テイク・イット・イー爺!
- カテゴリー
- タグ
- システム運用(16)
- TypeScript(1)
- WebAssembly(2)
- ウォーターフォール開発(2)
- 業務システム(28)
- CSS(2)
- GraphQL(1)
- プログラミング(31)
- スタートアップ(11)
- Nexaweb(1)
- BaaS(10)
- データベース(5)
- SPA(2)
- 基本用語(26)
- Case study(5)
- Keyword(10)
- FaaS(1)
- システム開発(69)
- スクラム(1)
- フロントエンド(38)
- AI(26)
- アジャイル開発(18)
- Supabase(1)
- イノベーション(5)
- Database(2)
- 月額制(1)
- PaaS(3)
- ACF(1)
- BookReview(3)
- サービス開発(5)
- React(3)
- Firebase(1)
- クラウドサービス(12)
- low-code(2)
- バックエンド(8)
- ナレッジマネジメント(1)
- ChatGPT(1)
- Vue.js(2)
- Tailwind CSS(1)
- DBaas(2)
- プロジェクト管理(13)
- セミナー(2)
- Web(21)
- 失敗事例(2)
- Hexabase_health(1)
- 生成AI(7)
- 受託開発(1)
- Kubernetes(3)
- WebComponents(1)
- 通知(1)
- API(6)
- Next.js(1)
- フレームワーク(3)
- ローコード開発(4)
- ノーコード開発(1)
- JavaScript(2)
- Hexabase(12)
- LLM(3)
- 画像生成(1)
- DX(34)