San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
DevSecOps

高可用性とは? 定義、アーキテクチャ、ベストプラクティス

厳しい現代において、失敗しないIT資源・システム・装置のサポートが必要です。それらはあらゆる手段で機能し続けなければなりません。

重要な業務には、このようなITコンポーネントが成功の鍵となります。継続した性能と稼働を保証するのがHA、すなわち高可用性です。さっそくこの手法を見ていきましょう。

著者
高可用性とは? 定義、アーキテクチャ、ベストプラクティス

高可用性の定義

組織では、さまざまなシステムが利用されます。中には主要な業務を自動化するものもあり、また重要な業務フローの管理に使われるものもあります。成長目標を持つ企業にとって、期待を裏切らず十分な性能を発揮するシステムであることが大切です。

HAまたはHigh Availabilityは、このようなIT資源を指す用語です。サーバ、コンピュータ装置、ネットワーク、アプリ、クラスタ、さらにはサードパーティーツールなど、停止せずに機能し続けるものがこれに該当します。一般的には、長期間にわたり使われ、最適化され、安全性が確保されたIT資源です。

ここで注目すべきは、可用性が時間に依存する点です。ここでは、2つの時間に関する指標が用いられます:

#1. サービスの利用可能な時間

#2. 各装置やシステムが適切な応答を返すまでの時間

HAは、これらの時間基準に対して質の高い性能を発揮するシステムを意味します。

高可用性クラスタとは何か

これは、1組にまとめられたサーバ群が共通の指示に従って動作する仕組みを指します。各サーバが障害の発生したサーバを自動で機能するサーバに置き換えるため、フェイルオーバークラスタとも呼ばれます。

HAクラスタ内の各サーバは共有ストレージと共通の目的を持っています。ただし、これらのサーバは別のネットワーク上で動作する場合もあります。同じ目的のもと、各サーバは同一の作業負荷で業務を遂行します。

一般的なHAクラスタの主な機能は以下の通りです:

  • 常にサーバネットワークの利用可能性を確保する
  • 機能しなくなったサーバを自動で次の機能するサーバに置き換える
  • 障害発生箇所を排除する
  • 停止の可能性を最小限に抑える
  • ノードがすぐに利用可能となるよう継続的なテストを実施する

一般に、IT管理者はクラスタの状態を監視するため、オープンソースのツールを採用します。これらのツールは、クラスタ内の各機器へデータパケットを継続的に送信し、応答時間を観察します。

システムの複雑性が増すと、高可用性の維持は困難になります。機能する部品や稼働中のコンポーネントが多いシステムでは、追跡が難しい障害箇所が複数存在します。資源の可用性だけでなく、品質にも注意を払う必要があります。

常に稼働していても性能が不十分なアプリは、企業にとって好ましくありません。HAは資源の可用性と性能の両立を重視する必要があります。

次に、HAソリューションの限界について理解します。ITシステムが決して停止しないと仮定するものではありません。最善策を講じても、100%のシステム可用性は保証できません。システムの継続稼働を延ばす努力はしますが、100%には至りません。

High Availability Cluster - Workflow
High Availability Cluster - Workflow

高可用性 (HA) の重要性

HAの導入は、企業にとって多くのメリットがあります。戦略的に活用すれば、貴社の各種業務を幅広く支援できます。特に以下の点で重要です:

  • サービスや製品が常に機能することで市場での存在感が向上する
  • 障害を早期に検出・対処することでアプリの性能が向上する
  • データ損失のリスクを低減する
  • 障害回避により運用コストを大幅に削減できる

高可用性はどのように動作するか

その仕組みを3つのステップで説明します:

  • Step 1

標準要求を上回るハードウェアとソフトウェア資源を予備として用意し、特定の資源に障害が発生すると即座に機能する予備資源が投入されます。

  • Step 2

定期的にシステムの健康チェックを実施し、問題を早期に発見して停止を防ぎます。

  • Step 3

事前に最適化された自動切替戦略を構築し、主システムに障害が発生した場合、自動で予備システムへ切り替えます。

これらを正しいタイミングで実施するため、HAには綿密なテストが求められます。ネットワークインフラ、データ、ハードウェア、ソフトウェアなど、重要な要素を全て考慮する必要があります。

これらを総合的に管理することで、HAは以下を確実にします:

  • 将来のトラブルを引き起こす障害箇所が残らない
  • 信頼性のある完全自動のフェイルオーバー戦略が構築される
  • 迅速な障害検出が行われる

高可用性はどのように測定するか

HAの導入だけでは全ての問題が解決するわけではありません。正しく実装され、機能していることが不可欠なため、HAを採用する企業は定期的な測定を行う必要があります。

一般的には、一定期間におけるシステムの稼働時間で測定されます。一般的な計算式は:

可用性 = (1か月の分数 - 停止時間の分数) × 100 / 1か月の分数

さらに詳しい情報を求める場合は、

以下の指標を参照することで、即時のHA効果を測定できます:

  • MTBF(故障間平均時間)を追跡し、連続する障害間の予測時間を確認する
  • MDT(平均停止時間)で、システムの停止時間の平均を把握する
  • RTO(復旧目標時間)は、障害後にシステムが停止する最大時間を示す
  • 最後に、RPO(復旧点目標)を追跡することで、障害時に失われうるデータ量を確認する

高可用性を達成する方法

最大の生産性を目指す企業は、HAを採用することが不可欠です。導入に向け、以下のステップを参考に進めてください。

  1. Step #1 - HAに十分注力して戦略を立案する

基本は、コアからHAを適用することです。HAシステムは、最小限のコストで最高の性能基準を達成できるよう構築する必要があります。

  1. Step #2 - 明確な成功指標を設ける

次に進む前に、貴社がシステムの稼働にどれだけ依存しているかを明確に把握してください。

  1. Step #3 - ハードウェアの整合性を確保する

使用するハードウェアは高い耐性を持ち、最適なコストで品質を実現できるものが望ましいです。ここでは、ホットプラグ可能・交換可能なハードウェアが最も推奨されます。

  1. Step #4 - フェイルオーバーシステムのテストを行う

HAシステムの導入後、設計したシステムは即時の動作確認を含む複数の検証テストを実施する必要があります。

  1. Step #5 - リグレッションモニタリングを実施する

適切な指標を用いて、HAシステムの性能を追跡してください。不明な変動があれば、速やかに確認することが求められます。

  1. Step #6 - 定期的に評価する

性能データを継続的に収集し、システムの動作や効率を監視することで、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つです:

  • Least Connection(最小接続方式):一定期間内で最も活動が少ないサーバを選択
  • Round Robin(ラウンドロビン):最初に利用可能なサーバに順番にリクエストを転送
  • Source IP Hash(ソースIPハッシュ):着信トラフィックのIPアドレスを参考にリクエストの送信先を決定

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

理想の結果を得るためには、HAを適切に実装する必要があります。以下は専門家が推奨するHAのベストプラクティスです:

  • 機能しない障害ポイントやノードが見つかった場合、直ちに解消する
  • 定期的にデータのバックアップを取り、ディザスタリカバリを円滑にする
  • 常にロードバランシングを採用し、各サーバに均等に負荷を分散する。これにより障害のリスクが低減する
  • バックエンドのデータベースサーバもHAシステムに組み込む。データベースの高可用性は、障害時のデータ保全を保証する
  • すべての資源を一箇所に集中させず、可能な限り地理的に分散する
  • 初期段階でエラーを検出できる迅速なシステムを構築する
Best Practices for High availability
Best Practices for High availability

結論

デジタルサービスや製品が成功を左右する時代です。不十分な性能のシステムでは成長は望めません。企業は、できる限り長時間稼働するシステムやITインフラを確保する必要があります。

100%の稼働は難しいと理解されていますが、HAサーバと正しい実装により99.99%の稼働を実現できる点は大きな利点です。この手法を採用することで、ブランドイメージ、性能、運用費用などの改善が期待できます。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック