お問い合わせ

info@serverion.com

お電話ください

+1 (302) 380 3902

ロードバランサの冗長性によるゼロダウンタイム

ロードバランサの冗長性によるゼロダウンタイム

ダウンタイムはコストがかかります。. 大企業では、オフライン1分あたり$9,000、1時間あたり$540,000のコストがかかります。金銭的な損失に加え、1秒の遅延でもユーザーを離れさせ、稼働率の約束を守れないと信頼が損なわれ、SLA違反のペナルティが発生します。高可用性を実現するには ロードバランサの冗長性 こうしたリスクを回避する鍵となります。.

仕組みは以下のとおりです:

  • 冗長性 単一障害点を排除するために複数のロードバランサーを導入することを意味します。.
  • フェイルオーバーシステム 1 つのロード バランサに障害が発生した場合でも、トラフィックがシームレスにリダイレクトされることを保証します。.
  • 能動態と受動態 そして アクティブ-アクティブ セットアップは主な冗長モデルであり、それぞれ異なるニーズに適しています。.
  • ヘルスチェック、セッション永続性、状態同期などのツールにより、フェイルオーバー中のスムーズな操作が保証されます。.

ブリティッシュ・エアウェイズの障害から世界的なソフトウェアクラッシュまで、実例が冗長性の重要性を浮き彫りにしています。適切な戦略を策定することで、混乱を回避し、稼働率を維持し、企業の評判を守ることができます。.

38 単一障害点と冗長性(ロードバランサの基礎フルコース)

ロードバランサの冗長性の仕組み

アクティブ-パッシブとアクティブ-アクティブのロードバランサ冗長性の比較

アクティブ-パッシブとアクティブ-アクティブのロードバランサ冗長性の比較

ロードバランサーの冗長性は、問題を検知しトラフィックを自動的にリダイレクトすることで、サービスの中断を防ぎます。様々な冗長性モデルを詳しく見ていきましょう。ヘルスチェックと同期によって、どのようにスムーズな運用が維持されるのかを見ていきましょう。.

アクティブ-パッシブ冗長性とアクティブ-アクティブ冗長性

アクティブ・パッシブ冗長性, プライマリロードバランサがトラフィックを管理し、バックアップがスタンバイ状態のまま、プライマリに障害が発生した場合に即座に引き継ぐ準備を整えます。このアプローチでは、多くの場合、ステートフルフェイルオーバーが使用されます。ステートフルフェイルオーバーは、アクティブなユーザーセッションをリアルタイムで監視し、接続を切断することなくシームレスな移行を実現します。.

一方で、 アクティブ-アクティブ冗長性 利用可能なすべてのノードにトラフィックを分散します。この構成は、リソース使用率を最大化するため、トラフィック量の多い環境に最適です。ただし、1つのノードに障害が発生した場合、残りのノードがすべての負荷を処理する必要があり、既にキャパシティに近づいている場合は負荷がかかる可能性があります。アクティブ/パッシブ構成ではこの問題は回避できますが、フェイルオーバー時には単一のアクティブノードのキャパシティに制限されます。.

特徴 能動態-受動態 アクティブ-アクティブ
トラフィック処理 プライマリがすべてのトラフィックを処理 ノード間で分散されたトラフィック
フェイルオーバータイプ 障害発生時にスタンバイが起動 トラフィックはアクティブノードに移行します
拡張性 1ノードの容量に制限 ノードを追加することで拡張可能
最適な用途 災害復旧、メンテナンス 交通量の多い環境

ヘルスチェックとフェイルオーバーメカニズム

ヘルスチェックは、ロードバランサーとサーバーの応答性を監視するために不可欠です。ヘルスチェックには2つの形式があります。

  • アクティブヘルスチェック: これらは、通常 5 ~ 30 秒間隔で定期的なプローブ要求 (多くの場合、「ハートビート」と呼ばれる) を送信し、システムの健全性を確認します。.
  • パッシブヘルスチェック: これらはライブユーザートランザクションを監視し、追加のトラフィックを生成せずに障害を検出します。.

問題が検出されると、フェイルオーバーメカニズムが作動し、トラフィックを正常なリソースにリダイレクトします。フェイルオーバー中の停止時間は、DNSのTTL(Time-to-Live)設定とヘルスチェック間隔によって異なります。迅速な復旧のために、クライアントが最新のIPアドレスを迅速に受信できるよう、DNS TTLを30~60秒に設定することをお勧めします。.

接続ドレイン 突然の中断を防ぐ上で重要な役割を果たします。このプロセスにより、進行中のセッションは一定期間(通常300秒)かけて自然に終了し、新しい接続は正常なノードにルーティングされます。.

状態同期とセッション持続

フェイルオーバーはトラフィックをリダイレクトするだけでなく、セッションの継続性も維持する必要があります。これを実現するには、ロードバランサーの構成を冗長ノード間で同期させる必要があります。最新のクラウドロードバランサーはステートレスサービスとして動作し、アプリケーションレベルのデータを保存または複製しませんが、負荷分散ルール、ヘルスプローブ、バックエンドプールのメンバーシップなどの構成設定は複製します。この同期により、アベイラビリティゾーン間の一貫性が確保されます。.

"ロードバランサーは、アプリケーションデータを保存または複製しないネットワークパススルーサービスです。ロードバランサーでセッション永続性を有効にしても、ロードバランサーには状態が保存されません。 – Azureドキュメント

セッションの永続性 同じクライアントからのリクエストが常に同じバックエンドインスタンスにルーティングされることを保証します。これは通常、セッション状態を保存するのではなく、5タプルフローハッシュ(送信元IP、ポート、プロトコル、宛先IP、宛先ポート)などのハッシュアルゴリズムを使用して実現されます。.

冗長性がシームレスに機能するには、プライマリロードバランサーとバックアップロードバランサーの設定が同一である必要があります。SSL証明書、セキュリティポリシー、トラフィック管理設定は、どちらのロードバランサーがアクティブであっても一貫した処理を保証するために一致させる必要があります。Terraformなどのツールを使用すれば、この同期を自動化できるため、フェイルオーバー時のエラーリスクを軽減できます。.

よくある障害シナリオと冗長性による解決方法

最も信頼性の高いインフラストラクチャでも障害が発生しますが、冗長性により、運用がスムーズに継続されます。.

ハードウェアおよびソフトウェアの障害

ハードウェアは予期せず故障することがあります。 停電, 冷却システムの故障、 そして ハードウェアの摩耗 アベイラビリティゾーン内のロードバランサーノードがダウンする可能性があります。ソフトウェア側では、次のような問題が考えられます。 プロセスクラッシュ, カーネルパニック、 または SNATポート枯渇 同様に深刻なサービス中断を引き起こす可能性があります。.

ゾーン冗長性 これらの課題に対処するには、物理的に分離された複数のアベイラビリティゾーンにロードバランサノードを分散させます。あるゾーンでハードウェア障害が発生した場合、他のゾーンのノードがその負荷を担い、トラフィックの流れを維持します。高可用性を維持するには、負荷に対応できるよう複数の正常なバックエンドインスタンスを常に準備しておくことも不可欠です。.

SNATポート枯渇などのソフトウェアの問題では、ポート使用状況の監視が不可欠です。一見正常に動作しているように見えるロードバランサーであっても、接続用のポートが不足すると障害が発生する可能性があります。解決策としては、手動でポートを割り当てるか、NATゲートウェイを使用してこれらのボトルネックを回避することが挙げられます。ポートとネットワークの健全性を継続的に監視することで、このような障害の拡大を防ぐことができます。.

これらの戦略は、ネットワークと地理的な課題に対処するより広範なソリューションの基盤となります。.

故障の種類 具体的なシナリオ 冗長性ソリューション
ハードウェア 物理ノード障害/電源喪失 マルチノードクラスタ / ゾーン冗長展開
ソフトウェア ロードバランサプロセスのクラッシュ ヘルスプローブを使用したアクティブ/パッシブ構成によるフェイルオーバー
設定 SNATポート枯渇 手動ポート割り当て / 送信ルール
一時的 断続的な API/ネットワークの障害 クライアント側再試行ロジック / 指数バックオフ

ネットワーク冗長性

ネットワークレベルの問題もサービスを中断させる可能性があります。接続の問題により、アベイラビリティゾーン全体が孤立し、ユーザーが正常なバックエンドサーバーにアクセスできなくなる可能性があります。ネットワークパスにおける単一障害点は、広範囲にわたる影響を及ぼす可能性があります。.

ゾーン間の負荷分散 各ロードバランサノードが、ゾーンに関係なく、登録されたすべてのターゲットにトラフィックをルーティングできるようにします。これにより、1つのゾーンでネットワーク障害が発生した場合でも、トラフィックの不均一な分散を防止できます。さらに、複数のリージョン(通常は3つ)からのヘルスチェックにより、ネットワーク接続のより正確な状況把握が可能になります。.

フェイルオーバー比率 この設定は、トラフィックをバックアッププールに再ルーティングするタイミングを決定します。例えば、比率を0.1に設定すると、プライマリインスタンスの正常な状態が10%未満になった場合にのみフェイルオーバーが実行されます。これにより、軽微なネットワーク障害発生時の不要なフェイルオーバーを回避しつつ、大規模な障害発生時の保護も維持できます。.

地理的冗長性

自然災害、電力網の障害、インフラの問題などが原因で地域的な停電が発生すると、特定のエリアのすべてのリソースが停止する可能性があります。.

グローバルロードバランサ 単一のエニーキャストIPアドレスを使用して、トラフィックを最も近い正常なリージョンにルーティングするソリューションを提供します。TTL設定とクライアント側のキャッシュに依存するDNSベースのフェイルオーバーとは異なり、エニーキャストルーティングはネットワークレベルで瞬時に動作します。これにより、トラフィックは遅延なくリダイレクトされます。さらに、リージョン外部ロードバランサは独立して動作するため、1つのリージョンで障害が発生しても、インフラストラクチャ全体に波及することはありません。.

オーバープロビジョニングパターン 1つのリージョンがオフラインになった場合でも、他のリージョンがトラフィックの増加に対応できるようにします。リージョン間で余裕を持ったキャパシティを維持することで、自動スケーリングによる遅延を解消し、障害発生時でも安定したパフォーマンスを維持できます。Terraformなどのツールは、SSL証明書、セキュリティポリシー、トラフィック管理設定を全リージョン間で同期するプロセスを自動化し、一貫性と信頼性を確保します。.

ゼロダウンタイムロードバランサアーキテクチャの構築

ダウンタイムゼロのロードバランサーを構築するには、明確な稼働時間目標の設定、適切な冗長性モデルの選択、そしてフェイルオーバープロセスの厳格なテストが必要です。これらの要素は、以下で説明するように、信頼性の高いアーキテクチャの基盤を形成します。.

稼働時間目標とSLAの設定

目標稼働時間はアーキテクチャの礎であり、あらゆる決定に影響を与えます。可用性が「9」増えるごとに、例えば 99.9%99.99% 稼働時間 – 複雑さとコストが増大します。背景:

  • 99.9% SLA 年間約 8.76 時間のダウンタイムが許容されるため、社内ツールには十分な可能性があります。.
  • 99.99% SLA これを年間約 52.6 分に短縮します。これは、顧客向けアプリケーションの一般的なベンチマークです。.
  • 99.999% SLA ダウンタイムを年間わずか 5 分に制限し、複数のリージョンにわたるアクティブ/アクティブ冗長性を必要とします。.

これらの稼働時間目標は、ロードバランサーの設計に直接影響します。約50%の企業が、1時間あたり$100万を超えるダウンタイムコストを報告しており、SLAコミットメントとインフラ投資の整合性は譲れない課題です。.

適切な冗長性モデルの選択

選択は アクティブ-アクティブ そして 能動態-受動態 冗長性はシステムのニーズと回復目標によって異なります。.

  • アクティブ-アクティブ冗長性 ミッションクリティカルなシステムに最適です。複数のインスタンスが同時にトラフィックを処理するため、RTO(目標復旧時間)はほぼゼロになります。例えば、Netflixはこのアプローチを採用し、複数のAWSリージョンにマイクロサービスをデプロイしています。同社の「Chaos Monkey」ツールは、フェイルオーバーの準備をテストするために本番環境のサービスをランダムにシャットダウンし、2億3000万人以上の加入者に途切れることのないサービス提供を保証しています。.
  • アクティブ・パッシブ冗長性 短時間の中断を許容できるシステムに適しています。この場合、フェイルオーバー時にスケールアップできるよう、ウォームスペアが準備されます。. コールドスペア, はコスト効率が高いものの、障害発生時に起動リソースが必要となるため、復旧時間が長くなります。例えば、Code.orgはAWS Application Load Balancerを使用して、主要なオンラインコーディングイベント中に発生した400%のトラフィック急増にうまく対応しました。これは、適切な構成によって、極度の需要下でも高可用性が実現できることを実証しています。.

冗長モデルを選択したら、ストレス下でもシステムが期待どおりに動作することを確認するために継続的な監視が不可欠になります。.

障害の監視とテスト

理論的な設計と回復力のあるアーキテクチャの違いは、継続的な監視とプロアクティブなテストにあります。基本的なTCPチェックを超えた実装を行ってください。 深部健康プローブ データベース接続や外部APIなどの重要な依存関係を検証します。 /健康 アプリケーションのエンドポイントで、内部システムが機能していることを確認してから200 OKステータスを返します。グローバルな到達可能性を確保するため、少なくとも3つのリージョンからヘルスチェックを実行してください。.

ポート割り当てに注意し、必要に応じて手動でポートを割り当てるか、NATゲートウェイを設定してください。DNS TTLは30~60秒程度に低く設定し、最大停止時間はDNS TTLとヘルスチェック間隔に異常しきい値を乗じた値と等しくなるようにしてください。.

Azure Chaos Studioのようなカオスエンジニアリングツールは、ゾーンの停止やインスタンスの終了といった現実世界の障害をシミュレートして、フェイルオーバーメカニズムをテストできます。 フェイルバックプロセス – 復旧後、トラフィックがプライマリノードにシームレスに戻ることを保証します。さらに、部分的な障害発生時の「再試行ストーム」を回避するため、クライアントの再試行ロジックにランダムジッターを用いた指数バックオフを実装します。.

どうやって Serverion 高可用性をサポート

Serverion

グローバルデータセンターネットワーク

Serverionは、世界中に戦略的に配置されたデータセンターネットワークを運営し、地理的な冗長性を確保することで、データセンター全体の停止を回避しています。これらの地域にロードバランサーを配置することで、トラフィックは最も近い正常なデータセンターに自動的にルーティングされます。例えば、ニューヨークのユーザーは、必要に応じてバージニア州の施設にリダイレクトされる可能性があります。 アクティブ-アクティブ 複数の地域が同時にトラフィックを処理するセットアップ、または 能動態-受動態 Serverionのインフラストラクチャは、障害発生時に引き継ぐスタンバイ機能を備えた構成を採用しており、手動によるDNS更新を必要とせずにスムーズなユーザーリダイレクトを実現します。この設計は冗長化戦略とシームレスに統合され、地域全体で中断のないサービスを提供します。.

冗長アーキテクチャ向けホスティングソリューション

Serverionは、高可用性アーキテクチャをサポートするために特別に設計された幅広いホスティングソリューションを提供しています。スケーラブルなVPSオプションには完全なルートアクセスが付属しており、カスタムロードバランシング構成の作成に最適です。より高い帯域幅と専用リソースを必要とするアプリケーション向けに、専用サーバーには専用のIPv4アドレスが用意されており、大量のトラフィックを効率的に処理できます。.

ハードウェアの配置を厳密に制御する必要がある場合、Serverionのコロケーションサービスでは、複数の施設に機器を分散させることができます。これにより、単一障害点が排除され、負荷分散ノードを複数のデータセンターに分散できます。このアプローチは、スタックのあらゆるレベルでのパフォーマンスとカスタマイズが重要なアクティブ/アクティブ構成に特に効果的です。.

ゼロダウンタイムをサポートする機能

ロードバランサーの冗長性を維持するには、連鎖的な障害を防ぐための強力な基盤インフラストラクチャが必要です。ServerionのDNSホスティングは、低いTTL設定を備えており、フェイルオーバー時に稼働中のサーバーへのトラフィックの迅速なリダイレクトを保証します。DDoS防御システムは、攻撃トラフィックを複数のノードに分散させ、サービスの中断につながる過負荷を防ぎます。.

Serverionは、信頼性をさらに高めるために、安全な接続のための手頃な価格のSSL証明書と、プロアクティブなヘルスモニタリングのための24時間365日サーバー管理を提供しています。コネクションドレインなどの機能により、アクティブユーザーはメンテナンス中でもセッションを中断することなく終了できます。また、10秒ごとに実行される自動ヘルスプローブは、問題を迅速に検出し、フェイルオーバープロセスを開始します。これらのツールを組み合わせることで、シームレスでダウンタイムのないエクスペリエンスを実現します。.

結論

ロードバランサーの冗長性を確保することは、サービスの中断を防ぐために不可欠です。アーキテクト兼アドバイザーのデイブ・パッテン氏は簡潔に次のように述べています。

"「高可用性 (HA) と災害復旧 (DR) の設計は、単なる技術的な必要性ではなく、戦略的な必須事項です。」"

アクティブ/パッシブまたはアクティブ/アクティブ構成を通じて単一障害点を排除することで、ハードウェア、ネットワーク、またはデータセンターの障害時でもサービスを稼働し続けることができます。.

冗長性の中心には、いくつかの重要な実践があります。 仮想IP シームレスなフェイルオーバー、システムの健全性を継続的に監視して潜在的な問題を早期に発見すること、そしてインフラストラクチャを複数のゾーンまたはリージョンに分散させることを実現します。例えば、VRRPベースのフェイルオーバーでは、中断をわずか1秒にまで短縮できるため、エンドユーザーにはほとんど気づかれません。99.99%の稼働時間を目指すシステムは、冗長性によって、大きな中断を、顧客が気付かないほどの軽微で管理可能なイベントに変えることができることを示しています。.

Serverionのグローバルネットワークは、このアプローチの好例です。データセンターは複数の地域に分散しており、地理的な冗長性を実現しています。VPSプラットフォームでフルルートアクセスを備えたカスタムロードバランシング構成を管理する場合でも、高トラフィックのニーズに対応する専用サーバーを導入する場合でも、コロケーションサービスを使用して複数の施設にハードウェアを分散する場合でも、Serverionのインフラストラクチャはゼロダウンタイムを最優先に構築されています。DNSホスティングはフェイルオーバー時の迅速なトラフィックリダイレクトを保証し、組み込みのDDoS防御機能は、冗長システムを圧倒する可能性のある攻撃トラフィックから保護します。.

真に回復力の高いアーキテクチャには、自動ヘルスチェック、コネクションドレイン、継続的な監視が含まれます。これらを導入することで、メンテナンスウィンドウによる業務の中断はなくなり、ハードウェア障害はシステムがシームレスに処理する日常的な問題となります。このような計画により、ユーザーはバックグラウンドで何が起こっていても、一貫したサービスを享受できます。この戦略は、ダウンタイムの削減だけでなく、企業の信頼性と信頼性に対する評判をさらに高めます。.

よくある質問

アクティブ/パッシブとアクティブ/アクティブのロードバランサ冗長性の違いは何ですか?

冗長性に関しては、次の 2 つのアプローチが一般的です。 能動態-受動態 そして アクティブ-アクティブ セットアップ。.

アクティブパッシブ構成プライマリロードバランサ すべてのトラフィックを管理しながら、 スタンバイユニット プライマリが故障した場合に備えて、スタンバイユニットはアイドル状態のまま待機します。この設定はシンプルで管理も容易ですが、フェイルオーバープロセス中に短時間の中断が発生します。欠点としては、スタンバイユニットが通常動作中に使用されないままになることがあり、リソース活用の機会を逃しているように感じる場合があります。.

一方、 アクティブ-アクティブ構成 含まれる 複数のロードバランサ 複数のロードバランサーが同時に連携してトラフィックを処理します。このアプローチは、利用可能なリソースを最大限に活用し、レイテンシを削減し、1つのロードバランサーがオフラインになった場合でも、中断を最小限に抑えてスムーズな移行を実現します。ただし、設定が複雑になり、セッションデータの同期やIPアドレスの共有などの機能によって一貫性を保ち、潜在的な問題を回避する必要があります。.

Serverion は両方のモデルをサポートしており、アプリケーションの要求に応じて、アクティブ/パッシブのシンプルさとアクティブ/アクティブのより高いパフォーマンスと信頼性のどちらかを柔軟に選択できます。.

ロードバランサーのヘルスチェックとフェイルオーバーシステムはどのようにしてダウンタイムを防ぐのでしょうか?

ロードバランサーのヘルスチェックは、TCPハンドシェイクやHTTPリクエストなどの小さなプローブを送信することで、バックエンドサーバーを常に監視し、正常に動作していることを確認します。サーバーが期待通りに応答した場合、そのサーバーはローテーションに残り、トラフィックを処理します。ただし、複数のチェックが連続して失敗した場合、そのサーバーはテストに再び合格するまで一時的に削除されます。このプロセスにより、正常に動作しているサーバーのみがトラフィックを処理できるようになり、サービス中断の可能性が低減されます。.

フェイルオーバーメカニズムは、問題発生時にトラフィックをリダイレクトすることでこれらのヘルスチェックを補完します。 能動態-受動態 セットアップでは、プライマリサーバーがオフラインになった場合、トラフィックはバックアップサーバープールに移行します。一方、 アクティブ-アクティブ 複数のサーバーが同時にトラフィックを処理し、障害が発生したサーバーからの負荷は正常なサーバー間で自動的に分散されます。これらのシステムを組み合わせることで、ロードバランサーはサービスをスムーズに実行し続けることができ、次のようなプラットフォームで安定した運用が可能になります。 Serverion 信頼性の高いパフォーマンスを提供し、ユーザーのダウンタイムを回避します。.

地理的な冗長性は中断のないサービスを保証するためにどのように役立ちますか?

地理的冗長性とは、ロードバランサーとサーバーを複数の異なる地域にあるデータセンターに分散させることで、サービスを円滑に運用し続けることを意味します。この構成により、停電、ネットワーク障害、さらには自然災害などの問題が1つのサイトで発生した場合でも、サービスが停止することはありません。トラフィックは正常に機能しているリージョンに自動的にリダイレクトされるため、ユーザーは中断のないアクセスを享受できます。.

Serverionは、世界中にデータセンターを運営することで、このコンセプトを具体化しています。同社のインフラストラクチャは、ワークロードを複数の地理的ゾーンに分散することを可能にします。ある拠点がオフラインになった場合、システムはトラフィックを即座に別の拠点に切り替え、今日のアプリケーションに求められる信頼性の高い稼働時間を確保します。.

関連ブログ投稿

ja