ブログに戻る

フォロー&ご登録

Fastly、高速パスフェイルオーバーテクノロジーにより配送の信頼性を向上

Lorenzo Saino

Director of Engineering, Fastly

Raul Landa

Principal Data Scientist

Fastly は壊れたインターネットパスからのトラフィックを検出、再ルーティングし、標準プロトコルを使ってダウンタイムを最小限に抑えます。しかし、それだけでは終わりません。 

この他に、標準プロトコルを補完するための独自メカニズムも開発しています。例えば、パフォーマンスが低下したエッジ接続を自動的に検出し、再ルーティングすることで、一時的なパフォーマンス低下イベント (インターネットウェザーとも呼ばれる) の影響を軽減する、高速パスフェイルオーバーテクノロジーなどです。では、その仕組みを詳しく見ていきましょう。

課題 : インターネットウェザーとボーダーゲートウェイプロトコル

Fastly POP はマルチホーム型で、複数のピアとトランジットプロバイダを使用してインターネットに接続されており、それぞれがボーダーゲートウェイプロトコル (BGP) を使って、到達可能なすべてのインターネットデスティネーションのリストを POP に広告を出します。各 POP は、これら BGP の到達可能性告知を数百万受信するため、各宛先にいくつかの異なるパスを計算することができます。

パス上のリンクが使用できなくなった場合、BGP はそのリンクを含むルートを撤回し、利用可能な代替パスが存在する場合は、ISP をトリガーして、トラフィックを再ルーティングして問題を回避します。ただし、実際にリンクの劣化を検出して対応する方法は存在しないため (深刻な輻輳状態でも)、BGP が使用できるメカニズムは非常に基本的なものに限られます。これには以下のような意味が考えられます。

  • パスが著しく劣化しているものの完全には故障していない場合、BGP ルートの撤回が全くトリガーされず、サービスプロバイダーがトラフィックを検出して手動で再ルーティングしなければならないことがあります。このプロセスは、プロバイダによって数分から数時間かかる場合があります。

  • BGP がパス障害を検出し対応したとしても、即座に解決する訳ではなく、障害が発生してから収束するまでに数秒から数分かかることもあります。その間に接続パフォーマンスが低下したり、完全にストールしてしまうこともあります。

障害が検出された場合でも、BGP が実行可能なアクションは非常に粗く、基本的なものに限られます。実際のところ、

  • BGP は宛先プリフィックス全体を移動する手段しか提供しないため、これが正常な接続に影響を与える場合もあります。たった1つのルートが何十万ものアクティブコネクションをカバーしており、いわゆる「悪天候」に見舞われているのはそのごく一部のみ、という場合もあります。

  • 一部のルートには、相当量のトラフィックが関連付けられていることもあります。これらの大きなフローを新しいパスに自動的に移動すると、振動やダウンストリーム輻輳などの望ましくない動作が発生する場合があります。このような大規模なフローを自動で新しいパスに移行させた場合、振動やダウンストリームでの輻輳など、望ましくない動作が発生してしまうこともあります。

このような欠点があると、次のような疑問が湧いてきます。一体どうすれば、BGP に頼らずに、パス劣化の兆候へ早期対応できるようになるのでしょうか。

解決策 : トランスポートレイヤーメトリクスを使用した障害検出メカニズム

インターネットはベストエフォート型ネットワークであるため、基盤となる IP ネットワーク上に信頼性の高い接続指向の抽象化を提供するには、TCP や QUIC などのトランスポートプロトコルが必要です。これらのプロトコルは、輻輳制御や損失回復などの問題を気にすることなく通信に使用可能なストリーム指向の API (ソケット)を、アプリケーションレイヤーで提供します。送信者は、転送中に失われたセグメントを再送し、エンドツーエンドパスに沿って輻輳が発生しないよう、送信するデータの正しい量を任意に計算するメカニズムを組み込んでいます。

これを実現するために、これらのプロトコルは比較的複雑なエンドツーエンドのパスパフォーマンスモデル (例えば平均往復時間、往復時間の変動や損失、接続がデータを送信しているか、どのくらい時間がかかっているかなど) を維持しているのです。これらのメトリクスを使ってネットワークパスの正常性を推測し、もしも現在のパスでパフォーマンス低下が見られる場合には、自動的にトラフィックを代替パスへ移行します。 

ここで重要なのは、パスが壊れていることをピアやトランジットプロバイダーが教えてくれるのを待つ必要はないということです。自分たちで判断して決めることが可能です。

この機能をルーティングアーキテクチャと組み合わせることで、エッジクラウドサーバーは、接続が前進しているかどうかを判断できるようになります。そしてこの情報を使って、使用するインターネットパスの状態を推測し、もし現在のパスに問題がある場合は代替パスを選択します。これによって、私たちのエッジサーバーは接続ごとにルーティングを決定して、フェイルオーバーの判断が正確にできるようになり、正常な接続に影響を与えることなく劣化した接続のみを再ルーティングすることが可能になります。

図1 : パフォーマンス低下シナリオでのパスフェイルオーバー

このメカニズムは、標準的なネットワーク監視テクノロジーでは正確な検出や緩和が困難な、極小規模のインターネットウェザーの状況を特定して緩和するのに非常に効果的です。 

このテクノロジーがリリースされて以来、1日につき最低1つ以上の POP に影響を与えるパフォーマンス低下イベントを (各イベントの期間中央値は約9.9分) 毎日平均約130件、軽減することができるようになりました。つまり、私たちの高速再ルーティングテクノロジーは、正常な接続を確立する可能性を7%向上させることができます。

図2 : フェイルオーバーメカニズムを使用した場合と使用しない場合の、ネットワークパスのパフォーマンス低下イベントにおける正常な接続の割合。

上のグラフは、フェイルオーバーメカニズムによって効果的に緩和されたパス上のパフォーマンス低下の例を示しています。どちらの線も、特定のサーバー上で確立された TCP 接続のうち、前方に進行している割合を示しています。赤い線は、フェイルオーバーメカニズムが有効化されている接続を表し、青い線は、パス選択に標準的な BGP メカニズムのみに依存している接続のコントロールグループを表しています。

午前7時47分 UTC までは、99.5%の接続が進行中です。午前7時47分 UTC には、パス劣化によって BGP に依存する接続が停止し始め、正常な接続の割合は96.5%に低下します。一方、フェイルオーバーメカニズムを使用している接続は、障害発生時に迅速に再ルーティングされるため、99%の接続が引き続き前進を続けています(ベースライン比で2.5%改善)。このイベントは約13分間続き、ピアやトランジットプロバイダから受信する BGP ルート更新の増加が確認され、最終的に解消された午前8時 UTC に終了しました。

結論 : クリエイティブなソリューションが高い可用性とパフォーマンスを実現する

これは、私たちがお客様のパフォーマンスと信頼性を向上させるために使用しているテクノロジーの1つにすぎません。ネットワークレイヤーでのリカバリに加え、トランスポートレイヤーでパフォーマンスの低いエッジ接続を自動検出して再ルーティングすることで、独自の POP 以外の問題(例 : インターネットウェザーなど)の影響を軽減し、エンドユーザーと Fastly 間のトラフィックの接続品質を継続的に向上させることが可能です。

しかも、この障害回復能力は私たちのプロダクションキャッシュフリート全体に含まれているため、すべてのお客様にご利用いただけます (追加費用はかかりません)。このフェイルオーバーメカニズムは、ネットワークをコントロールできない場所でも、お客様に高い可用性とパフォーマンスを提供するための強力で新しい方法を提供します。Fastly の最新アップデートはstatus.fastly.comでご覧いただけます。