サーバーフェイルオーバーでは、プライマリーサーバーに障害が発生した場合、バックアップサーバーが役割を引き継ぐように構成されます。サーバーフェイルオーバーの仕組みと、災害復旧においてサーバーフェイルオーバーが重要である理由をご覧ください。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
サーバーフェイルオーバーとは、プライマリーサーバーがオフラインになったときに、自動的に引き継ぐバックアップサーバーを準備しておくことです。サーバーフェイルオーバーは、予備の発電機のように機能するものです。ビルや家庭で停電になったとき、予備の発電機によって一時的に電力を復旧させることができます。それと同じように、サーバーフェイルオーバーでは、プライマリーサーバーに障害が発生した場合、セカンダリーサーバーが引き継ぎます。サーバーフェイルオーバーの目的は、ネットワークやWebサイトのフォールトトレランス(部品の1つに障害が発生したときに動作を継続させる能力)を向上させることです。
サーバーの主な役割は、他のコンピューターと共有するためのコンテンツやデータを保存することです。サーバーにはさまざまな種類がありますが、Webサーバーは、Webサイトやアプリケーションの動作を維持するため、おそらく最もよく知られているサーバーです。Webサーバーに障害が発生すると、リクエストを処理できなくなるため、クライアントにデータを提供できなくなります。サーバーのフェイルオーバーを行わない場合、故障したサーバーは読み込みエラーやサイトの停止を引き起こす可能性があります。
サーバーは以下のような様々な理由で故障することがあります:
サーバーがいつ、どのように故障するかは誰も完全に予測することはできませんが、IT部門のリーダーはサーバーの故障は避けられないものであることを認識しています。フェイルオーバーは、完全な機能停止の防止に役立つバックアッププランです。
フェイルオーバーは、しばしば負荷分散と呼ばれるプロセスと密接に関係します。ロードバランサーは、複数のサーバーにトラフィックを分散させることで、アプリケーションの可用性とパフォーマンスを向上させるものです。リクエストがトラフィックを処理できるサーバーに割り当てられるようにするために、多くのロードバランサーはサーバーの健康状態を監視し、フェイルオーバーを実装しています。
サーバーの冗長性とは、プライマリーサーバーをサポートするバックアップサーバーが何台あるかという指標です。たとえば、サイトが1台のサーバーでホストされ、バックアップがない場合は、冗長性がありません。フェールオーバーを設定すると、サーバに冗長性が生まれ、可用性が向上して停止を回避することができます。「可用性」とは、サイトまたはアプリケーションがオンラインである時間の長さを表すものです。
「フェイルオーバー」および「スイッチオーバー」という用語は、時々混同されることがあります。フェイルオーバーでは、冗長化されたサーバーへの移行が自動的に行われます。スイッチオーバーも同様のプロセスですが、セカンダリサーバーへの移行が手動で行われるため、短時間のダウンタイムが発生します。フェイルオーバーでは自動的に行われるため、通常、セカンダリーサーバーへの切り替えに伴うダウンタイムは発生しません。
サーバーのフェイルオーバーが機能するためには、サーバーが問題を感知して必要な時に引き継げるように接続されている必要があります。心電図が人の心拍を追跡するように、物理的な「ハートビート」ケーブルを使用するとサーバーを接続して監視することができます。サーバーの監視は、インターネットを経由して行うこともできます。
例として、Cloudflare Load Balancingは定期的にHTTP/HTTPSリクエストをサーバープールに送り、そのステータスを監視しています。HTTP/HTTPSチェック時にサーバーが不健全またはオフラインであることが判明した場合、Cloudflareはトラフィックを利用可能なサーバーに迂回させます。
構成によって、フェイルオーバーの動作は若干異なります。サーバーフェイルオーバーの構成は、「アクティブ-アクティブ」または「アクティブ-スタンバイ」のいずれかです。
アクティブ-スタンバイには、プライマリサーバーと1台以上のセカンダリサーバーが存在します。2台のサーバーで構成される場合、セカンダリーサーバーはプライマリーサーバーを監視しますが、それ以外は非アクティブのままです。セカンダリーサーバーがプライマリーサーバーの何らかの変化を検知すると役割を引き継ぎ、プライマリーサーバーの復旧作業が必要であることをデータセンターに通知します。プライマリーサーバーが復旧すると、再びプライマリーサーバーに切り替わり、セカンダリーサーバーはスタンバイ状態に戻ります。このように、プライマリーサーバーが動作を再開することをフェイルバックと呼びます。
これに対し、2つのサーバーで構成されるアクティブ-アクティブでは、両方のサーバーがアクティブな状態を維持する必要があります。アクティブ-アクティブ構成では、サーバーが同じように構成され、処理内容を共有するため、一般的に負荷分散と関連付けられます。アクティブ-アクティブ構成でサーバーに障害が発生すると、トラフィックは稼働中のサーバーにルーティングされます。
フェイルオーバーが設定されていない場合、1台のサーバーの障害でサイトがオフラインになってしまうため、サーバーのフェイルオーバーは重要です。
サーバーの可用性は、業界にさまざまな影響を与えます。例えば、eコマースやゲーム会社は、サイトが正常に動作することに完全に依存しています。他の業界(B2B SaaS企業など)では、業務に必要な情報にアクセスできないと、エンドユーザーに混乱を与えるリスクがあります。医療や救急のような緊急のニーズに対応する業界では、可用性は譲れません。
可用性とは別に、フェイルオーバーはほとんどの災害復旧計画の重要な要素です。災害復旧計画には、バックアップの失敗、ネットワークのダウン、停電などのシナリオが含まれています。災害復旧により、企業は事業の継続性を維持し、ダウンタイムに伴う収益の損失を回避することができます。
フェイルオーバークラスターとは、フェイルオーバを可能にするために連携する2台以上のサーバーのグループを指します。フェイルオーバークラスターは、高可用性(HA)や継続的可用性(CA)を実現するためのサーバーの冗長性を作ります。
可能な限り少ないダウンタイム(99.999%の稼働率)を目指すシステムではHAが考えられます。仮にHAシステムでダウンタイムが発生しても、数秒から数分程度である必要があります。行政サービスなど規制の厳しい業界では、コンプライアンス上、高可用性の基準を満たすことが求められる場合があります。
一方、CAシステムは、ダウンタイムを全く発生させないように構成されています。ダウンタイムがないということは、メンテナンス中であっても、ユーザーは常にサイトやアプリケーションに接続することができるということです。例えば、時間的制約の大きいオンライン証券取引などの分野では、CAが必要とされる場合があります。CAシステムは、サーバーから、物理的な場所、電源アクセスに至るまで、あらゆる障害点を考慮しなければならないため、構築と維持がより複雑なものになります。
フェイルオーバーの構成は微妙に異なる動作をすることがあるため、フェイルオーバーが発動する速度が異なる場合があります。ロードバランサーの中には、システムがサーバーの健康状態を監視し、必要に応じて素早くフェイルオーバーできる高速フェイルオーバーを提供するものがあります。HAやCAを実現するためには、高速フェイルオーバーが不可欠です。
Cloudflare Load Balancingは、サーバーを積極的に監視し、問題を検出すると即座にトラフィックを迂回させることで高速フェイルオーバーを実現し、ダウンタイムをゼロにします。詳細についてはCloudflare Load Balancingをご覧ください。