高可用性 こうかようせい
簡単に言うとこんな感じ!
「システムをできる限り止めない」ための設計思想だよ!たとえばコンビニのATMが24時間使えるのは、機器が二重化されていて一部が壊れても動き続ける仕組みがあるから。それが高可用性ってこと!
高可用性とは
高可用性(High Availability/HA) とは、システムやサービスが障害・メンテナンス・障害などがあっても、可能な限り止まらずに稼働し続けられる性質のことです。「いつでも使える状態を維持する」ことを設計の中心に置いた考え方で、企業の基幹業務システムやECサイト、金融システムなど「止まると損失が大きい」場面で特に重視されます。
高可用性を実現するためには、単一障害点(SPOF: Single Point of Failure)をなくすことが基本です。サーバーが1台だけなら、それが壊れた瞬間にサービスは止まります。そこで複数台を用意して冗長化し、1台が落ちても残りが自動的に引き継ぐ(フェイルオーバー)仕組みを作ります。
実務では「稼働率99.9%」「99.99%」などの数字で語られることが多く、この目標値はSLA(サービスレベル合意)として契約に盛り込まれることもあります。「ナインズ(Nines)」という業界の通称で呼ばれ、9が多いほど高い可用性を意味します。
稼働率「ナインズ」の実態
高可用性の水準は「9が何個並ぶか」で表現されます。数字で見ると、わずかな差が大きなダウンタイムの差になることがわかります。
| 稼働率 | 通称 | 年間ダウンタイム(目安) | 主な用途例 |
|---|---|---|---|
| 99% | Two Nines | 約87.6時間 | 社内の非重要システム |
| 99.9% | Three Nines | 約8.7時間 | 一般的なWebサービス |
| 99.99% | Four Nines | 約52分 | ECサイト・業務システム |
| 99.999% | Five Nines | 約5分 | 金融・通信インフラ |
覚え方:「9が1個増えるたびに約10倍シビアになる」
「ナインを1つ増やすと、許容ダウンタイムがざっくり10分の1になる」と覚えておくと便利です。99.9%(年8時間)→ 99.99%(年52分)→ 99.999%(年5分)、という具合です。
高可用性を実現する主な手法
- サーバー冗長化:同じ役割のサーバーを複数台用意し、1台が壊れても自動切り替え
- ロードバランサー:複数サーバーに処理を分散させ、特定1台への負荷集中を防ぐ
- データベースのレプリケーション:DBも複数台持ち、マスター障害時はスレーブが昇格
- 地理的分散(マルチリージョン):データセンターを地理的に分散し、地域災害に備える
- ヘルスチェックと自動復旧:監視ツールが異常を検知し、自動でフェイルオーバーを実行
歴史と背景
- 1960年代:IBMのメインフレームが企業向けに冗長電源・冗長ストレージを実装。高可用性の概念が生まれる
- 1980年代:タンデムコンピューターズ(現HP)が「ノンストップシステム」を製品化。金融・航空向けに普及
- 1990年代:インターネットの普及でWebサービスが登場。「24時間365日止まらないサービス」が求められるように
- 2000年代:仮想化技術(VMwareなど)の普及でフェイルオーバーが低コスト化。中堅企業でもHAが現実的に
- 2010年代以降:クラウド(AWS・Azure・GCPなど)がマルチAZ・マルチリージョン構成を標準提供。高可用性がクラウドのデフォルト設計になる
高可用性 vs 関連概念の整理
高可用性は「障害対策」の文脈でよく似た言葉と混同されやすいです。整理しておきましょう。
| 概念 | 目的 | キーワード |
|---|---|---|
| 高可用性(HA) | 止まらないこと | 冗長化・フェイルオーバー・稼働率 |
| 災害復旧(DR) | 災害後に復旧できること | バックアップ・RTO・RPO |
| フォールトトレランス | 障害があっても無停止で継続 | 二重化・完全冗長・NASAの宇宙機など |
| 負荷分散(LB) | パフォーマンスの均等化 | ロードバランサー・スケールアウト |
HA と DR はよく組み合わせて設計されますが、HA は「止まる時間を最小にする」、DR は「止まった後にどう戻すか」という違いがあります。
下図は、高可用性を実現する典型的なアーキテクチャ(アクティブ-スタンバイ構成)の概念図です。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 5798 | VRRP(Virtual Router Redundancy Protocol)— ルーターの冗長化プロトコル |
| IEEE 802.1AX | リンクアグリゲーション(複数の物理リンクを束ねて冗長化) |
| ISO/IEC 25010 | ソフトウェア品質モデル(信頼性・可用性の定義を含む) |
| ITIL v4 | サービス可用性管理のフレームワーク(SLA設計の指針) |