厳しい現代において、失敗しないIT資源・システム・装置のサポートが必要です。それらはあらゆる手段で機能し続けなければなりません。
重要な業務には、このようなITコンポーネントが成功の鍵となります。継続した性能と稼働を保証するのがHA、すなわち高可用性です。さっそくこの手法を見ていきましょう。
組織では、さまざまなシステムが利用されます。中には主要な業務を自動化するものもあり、また重要な業務フローの管理に使われるものもあります。成長目標を持つ企業にとって、期待を裏切らず十分な性能を発揮するシステムであることが大切です。
HAまたはHigh Availabilityは、このようなIT資源を指す用語です。サーバ、コンピュータ装置、ネットワーク、アプリ、クラスタ、さらにはサードパーティーツールなど、停止せずに機能し続けるものがこれに該当します。一般的には、長期間にわたり使われ、最適化され、安全性が確保されたIT資源です。
ここで注目すべきは、可用性が時間に依存する点です。ここでは、2つの時間に関する指標が用いられます:
#1. サービスの利用可能な時間
#2. 各装置やシステムが適切な応答を返すまでの時間
HAは、これらの時間基準に対して質の高い性能を発揮するシステムを意味します。
これは、1組にまとめられたサーバ群が共通の指示に従って動作する仕組みを指します。各サーバが障害の発生したサーバを自動で機能するサーバに置き換えるため、フェイルオーバークラスタとも呼ばれます。
HAクラスタ内の各サーバは共有ストレージと共通の目的を持っています。ただし、これらのサーバは別のネットワーク上で動作する場合もあります。同じ目的のもと、各サーバは同一の作業負荷で業務を遂行します。
一般的なHAクラスタの主な機能は以下の通りです:
一般に、IT管理者はクラスタの状態を監視するため、オープンソースのツールを採用します。これらのツールは、クラスタ内の各機器へデータパケットを継続的に送信し、応答時間を観察します。
システムの複雑性が増すと、高可用性の維持は困難になります。機能する部品や稼働中のコンポーネントが多いシステムでは、追跡が難しい障害箇所が複数存在します。資源の可用性だけでなく、品質にも注意を払う必要があります。
常に稼働していても性能が不十分なアプリは、企業にとって好ましくありません。HAは資源の可用性と性能の両立を重視する必要があります。
次に、HAソリューションの限界について理解します。ITシステムが決して停止しないと仮定するものではありません。最善策を講じても、100%のシステム可用性は保証できません。システムの継続稼働を延ばす努力はしますが、100%には至りません。
HAの導入は、企業にとって多くのメリットがあります。戦略的に活用すれば、貴社の各種業務を幅広く支援できます。特に以下の点で重要です:
その仕組みを3つのステップで説明します:
標準要求を上回るハードウェアとソフトウェア資源を予備として用意し、特定の資源に障害が発生すると即座に機能する予備資源が投入されます。
定期的にシステムの健康チェックを実施し、問題を早期に発見して停止を防ぎます。
事前に最適化された自動切替戦略を構築し、主システムに障害が発生した場合、自動で予備システムへ切り替えます。
これらを正しいタイミングで実施するため、HAには綿密なテストが求められます。ネットワークインフラ、データ、ハードウェア、ソフトウェアなど、重要な要素を全て考慮する必要があります。
これらを総合的に管理することで、HAは以下を確実にします:
HAの導入だけでは全ての問題が解決するわけではありません。正しく実装され、機能していることが不可欠なため、HAを採用する企業は定期的な測定を行う必要があります。
一般的には、一定期間におけるシステムの稼働時間で測定されます。一般的な計算式は:
可用性 = (1か月の分数 - 停止時間の分数) × 100 / 1か月の分数
さらに詳しい情報を求める場合は、
以下の指標を参照することで、即時のHA効果を測定できます:
最大の生産性を目指す企業は、HAを採用することが不可欠です。導入に向け、以下のステップを参考に進めてください。
基本は、コアからHAを適用することです。HAシステムは、最小限のコストで最高の性能基準を達成できるよう構築する必要があります。
次に進む前に、貴社がシステムの稼働にどれだけ依存しているかを明確に把握してください。
使用するハードウェアは高い耐性を持ち、最適なコストで品質を実現できるものが望ましいです。ここでは、ホットプラグ可能・交換可能なハードウェアが最も推奨されます。
HAシステムの導入後、設計したシステムは即時の動作確認を含む複数の検証テストを実施する必要があります。
適切な指標を用いて、HAシステムの性能を追跡してください。不明な変動があれば、速やかに確認することが求められます。
性能データを継続的に収集し、システムの動作や効率を監視することで、HAが要求に応じて改善されているか確認できます。
ITコンポーネントの健全性を維持する際、これらの用語はよく耳にするでしょう。共通点はあるものの、全く同じものではありません。HAは常時のシステム稼働を確保することに注力するのに対し、冗長化はシステムの信頼性を高めるための仕組みです。
HAは、資源の余剰確保、テストの実施、フェイルオーバー戦略の構築などで目的を達成します。一方、冗長化は、重要なITコンポーネントの複製を作成することに注力します。
冗長化とは、システムの信頼性を向上させるため、重要な構成要素や機能を複製することを指します。通常、バックアップやフェイルセーフの形で実施され、システム性能の向上にも寄与します。
HAは冗長化がなくてもシステムの継続性を確保できますが、冗長化だけでは効果は限定的です。障害検知の仕組みが必要となります。
主に、冗長化はITエコシステムのハードウェアに焦点を当てますが、HAはソフトウェア面に重点を置いています。
HAはあらゆる障害や停止に対応しますが、冗長化は主に障害発生を抑制する対策となります。
HAと同様に、ディザスタリカバリは企業がIT資源を最大限に活用できるよう支援するプロセスですが、アプローチは異なります。
HAは予防的な手法で、そもそも障害が発生しないよう管理します。しかし、何事も100%の保証はできません。
障害が発生すると、ディザスタリカバリが介入し、影響を受けたサービスをできるだけ早く復旧させます。
ディザスタリカバリはHAよりも広い範囲を対象とし、HAがソフトウェアに限定されるのに対し、物理的、仮想的、あらゆるダメージに対応します。
ディザスタリカバリは対症療法と捉え、HAは予防策です。HAは災害を未然に防ぐために用いられ、ディザスタリカバリは攻撃や障害発生後に実施されます。
また、状況の評価方法にも違いがあります。HAはすべてが正常で十分な資源がある前提で対応しますが、ディザスタリカバリは全てが影響を受けていると判断し、対策が必要とされます。
また、HAはMTRSやMTBFの指標に重点を置くのに対し、ディザスタリカバリはRPOやRTOに注目します。
設計面でも大きな違いがあり、HAは十分な余剰資源を確保してシステムの継続性を担保します。
一方、ディザスタリカバリは過去の失敗から学び、同じ問題が再発しないよう対策を講じる点に特徴があります。例えば、ファイアウォールが原因でサーバが停止した場合、ディザスタリカバリは改善されたファイアウォールを備えたサーバ構築に重点を置きます。
完璧なITシステムの健全性を実現するためには、HAとフォールトトレランスの実装が不可欠です。高可用性については既に説明しましたので、次にフォールトトレランスについてまとめます。
フォールトトレランスとは、システム障害が発生しても機能を維持する能力を意味し、ソフトウェアがエラーを検出して回復する手段を持つことを示します。
フォールトトレランスはハードウェアとソフトウェアの両面を管理しますが、高可用性は主にソフトウェアに重点を置いています。
両者は動作原理が異なります。フォールトトレランスは、ハードウェアの故障を早期に検出するため、専用のハードウェアを用いて不良部品を即時に交換します。
一方、HAは各種手法を組み合わせ、余剰資源によって不具合が発生した場合に迅速に交換できる体制を整えます。
中断や運用コストに関して、フォールトトレランスは完全な中断ゼロを目指す反面、高い運用費用が発生します。HAは多少のサービス中断があるものの、運用費用は抑えられます。
Kubernetesの高可用性や、その他多くのユーザーが同時に利用するHA対応システムでは、ロードバランサが重要な役割を担います。負荷を均等に分散することで、単一サーバへの負担を避けます。
これはハードウェアでもソフトウェアでも可能で、特定のアルゴリズムに基づいてトラフィックの分散方法が決定されます。最も推奨されるアルゴリズムは以下の3つです:
理想の結果を得るためには、HAを適切に実装する必要があります。以下は専門家が推奨するHAのベストプラクティスです:
デジタルサービスや製品が成功を左右する時代です。不十分な性能のシステムでは成長は望めません。企業は、できる限り長時間稼働するシステムやITインフラを確保する必要があります。
100%の稼働は難しいと理解されていますが、HAサーバと正しい実装により99.99%の稼働を実現できる点は大きな利点です。この手法を採用することで、ブランドイメージ、性能、運用費用などの改善が期待できます。
最新情報を購読