高可用性 (HA)
High availability ha
システムが継続的に稼働できるよう冗長性とフェイルオーバーを実装し、ダウンタイムを最小化する設計手法です。
高可用性(HA)とは?
高可用性(HA)は、システムが継続的に稼働するよう設計・運用する考え方です。 ハードウェア障害やソフトウェア問題が発生しても、サービスが止まらないよう複数の機器やプロセスを用意し、自動的に予備に切り替わる仕組みを持たせます。医療システムや金融取引では患者や顧客に直結する影響があるため、特に重要な概念です。
ひとことで言うと: スマートフォンを複数持つことで、1つが壊れても他の機種で連絡が取れる状態を、コンピュータシステムで実現したものです。
ポイントまとめ:
- 何をするものか: システム障害時も機能が停止しないよう設計します。
- なぜ必要か: ビジネス損失や安全性の低下を防ぎます。
- 誰が使うか: 金融機関、医療機関、通信事業者などです。
なぜ重要か
冗長性なしでシステムを運用した場合、サーバー1台の故障がサービス全体の停止につながります。2020年のAWSの大規模障害では、複数の企業が完全にサービス停止に陥りました。これを防ぐため、HAシステムでは複数のサーバーを並列に稼働させ、1台が故障しても他が引き継ぎます。金融分野では1分のダウンタイムで数百万円の損失が出ることもあり、99.99%の稼働率(年間約52分のダウンタイムのみ)を目指します。企業の信頼性、ブランド価値、顧客満足度の維持には、HAの構築が不可欠です。
仕組みをわかりやすく解説
HAの実装には3つの主要な要素があります。まず冗長性で、重要なコンポーネント(サーバー、ネットワーク、ストレージ)を複数用意します。N+1冗長性とは、通常運用に必要な数に加えて1つ追加で用意することです。次にヘルスチェックで、各コンポーネントが正常に動作しているか常に監視します。異常を検出したらフェイルオーバーで、自動的に予備機に切り替わります。例えば複数のウェブサーバーの前にロードバランサーを配置し、1台が故障すると検出されたら、そのサーバーへのリクエストを他のサーバーに振り分けることで、ユーザーには影響がありません。
データベース層でもレプリケーションで複数のサーバーにデータを同期し、障害時も データ喪失を防ぎます。
実際の活用シーン
オンラインバンキングシステム 複数のデータセンターにサーバーを分散配置。1つのデータセンター全体が機能停止しても、他のデータセンターが取引を継続。顧客はいつでも資金移動や残高確認ができます。
医療電子カルテ 患者情報は最重要資産です。通常のサーバーに加えて同期バックアップを別施設に配置。メインシステム障害時も緊急手術の患者情報がすぐに確認でき、医療の質が低下しません。
モバイルキャリアの通信ネットワーク 基地局の故障、光ファイバーの切断など日常的に障害は起きます。複数ルートで通信経路を冗長化し、ユーザーには無感知で迂回路に切り替わります。
計算方法
可用性(%)は次の式で計算されます:
可用性(%) = ((総時間 - ダウンタイム) / 総時間) × 100
例えば、1年(365日 = 525,600分)で10分のダウンタイムがある場合: 可用性 = ((525,600 - 10) / 525,600) × 100 = 99.998%
実務では「ファイブナイン」という言い方があります。これは99.999%で、年間約26秒のダウンタイムのみを許容する水準です。
目安・ベンチマーク
可用性とダウンタイムの関係:
| 可用性 | 年間ダウンタイム | 月間ダウンタイム | 目標レベル |
|---|---|---|---|
| 99% | 約3.6日 | 約7時間 | 初級 |
| 99.9% | 約8時間 | 約43分 | 標準(SLA一般的) |
| 99.99% | 約52分 | 約4分 | 高可用性 |
| 99.999% | 約26秒 | 約26秒 | 超高可用性(金融など) |
ベンチマーク値は業界により異なります。eコマースなら99.9%で十分ですが、金融取引では99.99%以上を求められることが多いです。
メリットと注意点
HAシステムの利点は明白で、ビジネス継続性が確保されるため収益損失が最小化されます。また、顧客信頼が維持され、ブランド価値が守られます。一方、コストは高く、複数サーバーの購入、運用、監視に投資が必要です。また、複雑さが増すため、設計ミスや運用ミスのリスクがあります。さらに、冗長性があっても「全体停止」の可能性は完全には排除できず、複数の障害が同時に発生すれば対応できないことを理解する必要があります。
関連用語
- 冗長性 — HA実装の根本です。
- フェイルオーバー — 障害検出時に予備に切り替わるプロセスです。
- ロードバランシング — 複数サーバーへの負荷分散に使われます。
- レプリケーション — データベースの冗長化に活用されます。
- ディザスタリカバリー — 大規模障害時の復旧計画でもHAの考え方が使われます。
よくある質問
Q: 99.99%の可用性を達成するにはどうすればいいですか? A: 複数の独立したコンポーネント(サーバー、ネットワーク、ストレージ)すべてをN+1以上冗長化し、自動フェイルオーバーを実装し、定期的に障害復旧訓練を実施する必要があります。
Q: HAと災害対策(DR)の違いは? A: HAはコンポーネント障害への対応で、通常は同一キャンパス内で実装します。DRはデータセンター全体の喪失などの大規模災害に対応し、地理的に離れた別施設が必要です。
Q: 既存システムにHA機能を後付けできますか? A: 可能ですが、アーキテクチャ全体の見直しが必要なため、初期設計での組み込みが効果的かつコスト効率的です。