すべての記事

大規模なライブオッズ: OddFeedsがFourAで2.5億リクエストのフィードを運用する方法

OddFeedsがFourA上で、月間2.5億以上のリクエストと50TBの通信を伴うスポーツのライブオッズフィードを運用し、成功したリクエストにのみ料金を支払う仕組みを解説します。

OddFeedsは、スポーツオッズのライブフィードを運用している。数十の情報源からリアルタイムでベッティングオッズを収集し、継続的に更新される1つのストリームとして配信する。

そのストリームは、オッズを読み取ってアービトラージの機会を見つけるスポーツアービトラージプラットフォームであるOddStormに供給される。アービトラージはシビアだ。価格の到着が1秒遅れたり、わずかに間違っていたりすることは、単に見栄えが悪いだけではない。それは何百万もの誤ったアービトラージに変化する。そのため、このフィードには決して妥協できない厳しい要件が1つある。すべての情報源にわたり、継続的に高速かつ正確であり続けることだ。

どちらもスポーツデータおよびアービトラージグループであるOddStorm.Companyに属している。ここでは、OddFeedsがFourA上でパイプラインをどのように実行しているかを説明する。

月間2億5000万以上のリクエスト。約50テラバイトのトラフィック。1、2秒ごとの再スキャン。失敗したリクエストのクレジット消費はゼロ。

1、2秒ごとの市場スキャン

オッズは常に変動するため、OddFeedsは数十の情報源にわたって1、2秒ごとにそれらを再読み込みする。このペースでは、数字はすぐに膨れ上がる。月に2億5000万件以上のリクエスト、約50テラバイトのトラフィックだ。これらの情報源の多くは厳格なボット管理の背後にあり、ほとんどのスクレイピング環境ではここで資金を浪費し始める。

通常のアプローチがここで破綻する理由

この量になると請求額は複利的に増え、ツールの課金方法に依存する。試行ごとに課金されるものもあり、ブロックされるたびに無駄な出費となる。数億回のリクエストになると、失敗した試行だけで有効な支出を上回る可能性がある。また、帯域幅で課金されるものもある。トラフィックが大きくなるまでは安く見えるが、1GBあたり0.30ドルの場合、月間50テラバイトだとブロックを1つも考慮する前に月額15,000ドル、年額180,000ドルの計算になる。どちらのモデルにしても、最も厳しい情報源を読み込むには実際のブラウザとクリーンなネットワーク経路が必要であり、すべてのリクエストでそれを行うのは遅く、コストがかかる。毎秒市場を読み取るパイプラインに、これらのコストを負担する余裕はない。

成功したものにのみ支払う

FourAでは、失敗したリクエストのクレジットコストはゼロだ。配信された有効なレスポンスのみが課金される。この1つのルールが請求の形を変える。ブロック、タイムアウト、再試行のコストは積み上がらず、OddFeedsが実際に受信したデータにコストが連動する。この規模になると、失敗のコストをゼロにすることは、予測可能な月額コストと、情報源ごとに変動するコストの違いになる。

機能する最も軽量な方法を使用する

FourAはすべてのリクエストを同じ方法で送信するわけではない。簡単な情報源は、軽量なリクエストエンジンによって直接読み取られる。情報源がブロックした場合、アンブロッカーをオンにしたプロキシエンドポイントが、ブラウザを使用せずに独自に大多数のアンチボット防御をクリアする。保護された情報源の大部分ではそれで十分であり、コストを低く抑えることができる。

ブラウザエンジンを必要とするのは最も取得が困難なソースのみであり、それも一度きりです。実際のブラウザと同様にサイトを読み込み、有効でクリアなセッションを確立します。そのセッションは軽量なエンジンに引き継がれ、わずかなコストで最新のオッズを数千回取得するために再利用されます。

つまり、コストのかかる処理はまれにしか発生せず一度支払うだけで済み、その後は長期にわたる低コストな読み取りに分散されます。以下のチャートは、そのような困難なセッションの1つを示しています。セッション確立のためのコストの高い単一のリクエストの後、低コストの更新が長く続いています。

Credits per request across one sessionOne browser solve, then the request engine replays the cleared session.010203030 cr2 cr eachrequest 1later in the sessionBrowser solveCheap replayAverage cost / request

URLを受け取りコンテンツを返すFourAのワンショットendpointであるAutoは、OddFeedsが新しいソースをマッピングする際のディスカバリーに使用されます。本番パイプラインは、レコードあたりのコストを低く抑えるようにオーケストレーションされており、コアのrequest、proxy、およびブラウザendpointを直接駆動します。

ソースのブロックに対する信頼性の維持

ソースの挙動は異なります。特定の国にのみオッズを提供するものもあります。アクセスごとにチャレンジを要求するものもあります。FourAは各requestを適切な出口と適切なエンジンにルーティングするため、ソースごとに人が調整し直すことなくフィードが継続的に流れます。目的は単に巧妙さを追求することではありません。周囲のソースが変化し続ける中でも稼働し続け、正確さを保つ、確固たるデータパイプラインを構築することです。

結果

OddFeedsは、1〜2秒ごとに更新されるライブオッズフィードを月間2億5000万request、50テラバイト以上で運用しており、そのコストは試行やブロックの回数ではなく、成功したデータ量に応じてスケールします。困難なソースも一度解決すればその後は低コストで読み取ることができ、失敗にコストはかかりません。これが、この規模のフィードを高速かつ手頃な価格で維持できる理由です。

同じインフラストラクチャでのパイプライン構築

FourAはOddFeedsが稼働するプラットフォームです。成功したrequestにのみ支払い、困難なソースを一度解決すれば、失敗によって請求が増加することなくスケールできます。無料で始めるまたは料金を見る