24時間365日の連続稼働が求められる大規模システムにおいて、高可用性の確保は極めて重要なテーマとなります。
どれほど優れたシステムであっても、単一の機器の故障によってサービス全体が停止する事態は避けなければなりません。
このようなリスクを排除するために、サーバーや電源などの構成要素をあらかじめ多重化しておく冗長化設計が不可欠です。
システムを構成する個々の要素に予備を用意し、障害発生時に備える思想が基本となります。
具体的な冗長化の手法として、複数のアクティブなサーバーで処理を分散しつつ、1台が停止しても他方が業務を引き継ぐアクティブ・アクティブ構成があります。
また、通常時は待機用のサーバーを起動しておき、本番環境の異常検知時に切り替えるアクティブ・スタンバイ構成を選択する事例も多いです。
クラウド環境においては、異なるデータセンター群であるマルチAZを巧みに活用し、地域的な災害にも耐えうる強固なインフラを構築する手法が一般的となっています。
さらに、障害を検知した際に人の手を介さず自動で経路やシステムを切り替えるフェイルオーバーの仕組みが欠かせません。
この自動復旧を正しく機能させるには、日頃からデータの同期をリアルタイムで行い、切り替え時のデータ消失を防ぐ設計が必要です。
単に機材を増やすだけでなく、復旧プロセス全体の自動化を綿密に検証しておく必要があります。
システムの規模に応じた最適な可用性目標を設定し、コストとのバランスを見極める視点が重要です。