高可用性(HA)とは、通常は内蔵のフェイルオーバー メカニズムを使用して、ダウンタイムやシステム障害を生じさせることなく、継続的に動作できるシステムの能力を指します。高可用性システムは、予期しないイベントが発生した場合でも確実に動作するように設計されています。

高可用性が重要な理由

HAの主な目的はダウンタイムを回避することです。ダウンタイムとは、システム、サービス、アプリケーション、クラウド サービス、または機能が利用できない、もしくは正常に機能しない期間のことです。ダウンタイムは、収益の損失、生産性の低下、および企業の評判の低下につながります。そのため、HAは次の点で重要です。

  • ビジネス継続性 – HAにより、重要なシステム、機能、および機能が常に期待どおりに実行されるようになります。HAシステムは障害から迅速に復旧できるため、組織は顧客へのサービス提供を期待どおりに(できれば目立った機能停止なしで)継続できます。
  • ユーザー エクスペリエンスの向上 - 高速で信頼性の高いシステムは、顧客満足度を維持し、収益の損失、データの侵害、生産性の低下などの悪影響を回避する上で役立ちます。
  • 競争上の優位性 – 可用性が高いことは、競合他社よりも高速で信頼性の高いサービスを提供することで、組織を差別化するのに役立ちます。これは、全体的な品質と顧客満足度への取り組みを示すものです。

高可用性の種類

HAにはいくつかの種類があり、必要な冗長性のレベル、必要な障害耐性の種類、保護されているシステムの種類に基づいて分類できます。一般的には、次の種類のHAがあります。

  • アクティブ/パッシブ – バックアップ システムはパッシブ モードまたはスタンバイ モードに維持され、プライマリ システムに障害が発生した場合にのみアクティブになります。このフェイルオーバー保護方法では、バックアップ システムに切り替えるために手動での介入が必要になる場合があります。
  • アクティブ/アクティブ – 複数のシステムがアクティブに実行され、ワー​​クロードを共有します。1つのシステムに障害が発生した場合、他のシステムが自動的にワークロードを引き継ぎます。このタイプのHAでは、システム間でより複雑な構成と調整が必要になりますが、手動オプションよりもパフォーマンスと拡張性が向上します。

次の図は、2台のNGINX Plusサーバで構成されるアクティブ/パッシブHAクラスタを示しています。NGINXは、アクティブ/アクティブおよびその他のHA構成もサポートしています。

 

 

図

高可用性の実装方法

冗長性とフェイルオーバー メカニズムにより、単一障害点が防止され、コンポーネントの障害によってシステム、アプリケーション、または機能全体の動作が妨げられることがなくなります。一般的なメカニズムには次のものがあります。

  1. 冗長コンポーネント - システム内に複数のサーバ、ネットワーク接続、ストレージ システム、および電源装置を導入します。1つのコンポーネントに障害が発生した場合、中断することなく別のコンポーネントが引き継ぎます。
  2. 監視とアラート – パフォーマンスと可用性を継続的に監視します。機能停止やその他の問題が検出されると、アラートが生成されます。システム管理者は問題を迅速に特定して解決できるため、ダウンタイムのリスクが軽減されます。
  3. ロード バランシング - 1台以上の専用サーバが(バックエンド)システムのグループに対するリクエストをインターセプトし、トラフィックを分散してパフォーマンスを最適化します。1つのバックエンド システムに障害が発生した場合、ロード バランサは受信したリクエストを他のシステムに自動的にリダイレクトします。
  4. フェイルオーバー メカニズム - アクティブ/パッシブまたはアクティブ/アクティブ構成、あるいはフェイルオーバー クラスタリングを導入して、1つのシステムに障害が発生した場合でも、最小限の中断で別のシステムが引き継ぐことができるようにします。
  5. システムのバックアップおよびリカバリ – 障害が発生した場合に、データとアプリケーションを迅速に復元できるようにします。システムはハイブリッド、異なる場所にあるもの、クラウドベース、または障害発生後に迅速にオンラインになるものになります。

高可用性をサポートする方法

HAを提供するために導入する必要のあるサービスとリソースは、システムのタイプ、HAのタイプ、および組織の特定の要件によって異なります。サポート要素には次のものが挙げられます。

  • テクニカル サポート – HAシステムに関するサポートを必要とする組織にとっての第一防衛線です。専任のサポート担当者が、問題のトラブルシューティング、診断、解決を支援します。また、高いレベルの可用性を維持するためのベスト プラクティスに関するガイダンスも提供します。
  • メンテナンスとアップグレード – 運用性と安全性を維持するには、HAシステムを定期的にメンテナンスし、利用可能な最新バージョンのソフトウェアを実行する必要があります。
  • 災害復旧計画 – システムを迅速に復旧する必要がある組織にとっては極めて重要です。事前に手順を決定して文書化していれば、システム管理者は緊急時に解決策を覚えたり、その場で考えたりする必要がありません。
  • ドキュメントとトレーニング – システム管理者がHAシステムの管理方法を理解するのに役立ちます。ドキュメントには、ベスト プラクティス、チュートリアル、トレーニング セッションなどが含まれる場合があります。

高可用性に関するベストプラクティス

ベスト プラクティスに従うと、運用パフォーマンスが向上し、コストのかかるダウンタイムを最小限に抑えられます。これらの一般的なベスト プラクティスは、組織のシステム、場所、および目標とする結果に合わせてカスタマイズできます。

  • 冗長性を組み込む – ハードウェア コンポーネントからネットワーク接続まで、システムのあらゆるレベルが強化されるため、1つのコンポーネントに障害が発生しても、システムは期待どおりに動作します。
  • トラフィックのロード バランシング - 受信リクエストを複数のシステムに分散することで、1つのシステムに障害が発生した場合でも、まだ動作しているシステムが処理を引き継ぐことができます。
  • パフォーマンスと可用性を監視する – 継続的な監視とアラートにより、問題の特定と解決にかかる時間を短縮できます。
  • フェイルオーバー メカニズムを頻繁にテストして検証する – 定期的にテストを実施して、中断が発生した場合でもフェイルオーバー メカニズムが確実に機能を引き継ぐことができるかどうかを判断します。
  • バックアップとリカバリの手順 – 障害が発生した場合に、データとアプリケーションを迅速に復元できるようにします。
  • システムを定期的にアップグレードして維持する – これにより、アプリケーションとシステムの運用性と安全性が確保されます。
  • 人員のトレーニング – 特にHAの担当者や担当チーム向けに、定期的なテストと手順の強化を標準的な運用手順に含める必要があります。
  • クラウド ソリューションを検討する – クラウド ストレージと災害復旧により、障害が発生した場所に関係なく、システムを継続して運用できます。
  • セキュリティを監視する – 攻撃者や権限のないユーザーによるデータの侵害やシステムへのアクセスを防止する対策を実施します。