検索
特集/連載

「League of Legends」運営元が月間2PBのログを8割削減 監視データの半分は無駄?ツールの“使い放題”がむしろ問題に

ログ収集はシステム監視に欠かせないが、データ量が膨れ上がると費用爆発の引き金になりかねない。Riot Gamesはベンダーの料金引き上げによって数百万ドル規模の支出増に直面した。この危機をどう乗り越えたのか。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

関連キーワード

データ | ログ管理 | 運用管理


 オンラインゲーム「League of Legends」(リーグ・オブ・レジェンド)などを運営するゲーム会社Riot Gamesは、システムの監視や分析に用いるテレメトリー(指標)データの費用爆発という課題に直面していた。同社は月間3.8P(ペタ)Bにも及ぶメトリクスとログを、外部のオブザーバビリティシステムに取り込んでいたが、そのうち40〜60%はダッシュボードやアラートで利用されていない無駄なデータだった。

 Riot Gamesは従来、データ取り込み量に上限のない固定料金契約を結んでいた。しかし契約更新に伴い、ベンダーから50〜100%の料金引き上げを提示され、数百万ドル単位の費用増が避けられない事態に陥った。どれだけ監視データを送信しても定額である契約下では、開発者が不要なデータを減らす動機が生まれず、費用対効果への意識が希薄になっていたことが根本的な原因だ。

 この危機を打破するため、Riot Gamesは監視ツールをクラウド型のシステム監視サービス「Datadog」に移行するとともに、社内のSRE(サイト信頼性エンジニアリング)チーム内に費用最適化の専門チームを設立した。各サービスからの出力データを根本から見直すことで、月間のログ取り込み量を2.3PBから350TBへと約80%削減することに成功。ランレート(予測年間/月間換算費用)を15%引き下げ、想定された巨額の支出増を回避している。

 「無制限使い放題」のわなから抜け出し、劇的なデータ削減を実現したRiot Games。その裏には、技術的な制御と組織文化の変革を両立させた独自の戦略があった。

メトリクスの大半は「異常なし」を記録しているだけだった

 Riot Gamesが取り組んだ施策の中核は、不要なデータが外部ベンダーのシステムに到達する前に遮断する仕組みの構築だ。

 従来は各サービスが独自の判断で膨大なメトリクスやログを送信していた。新たな監視標準では、新サービスに対するデフォルトのデータ収集を「eBPF」によるインフラレベルの監視のみに制限した。eBPFはExtended Berkeley Packet Filterの略で、OSの中核であるカーネル内において、安全に監視プログラムを実行する技術を指す。eBPFを活用することで、開発者が個別にプログラムを実装しなくても、通信の遅延やエラー率といった必須のパフォーマンス指標をカーネルレベルで自動的に取得できるようになる。

 開発者が独自のカスタムメトリクスを追加したい場合、テスト用の開発環境ではデータ送信量に上限を設け、本番稼働中のシステムではデフォルトで送信をブロックする設定にした。本番システムでの収集を有効にするにはプルリクエスト(プログラムの変更内容を通知し、レビューと反映を依頼する手続き)の作成を必須とし、SREチームがコードレビューを実施する。この監査プロセスにおいて、タグの組み合わせによってデータ量が爆発的に増加するカーディナリティー(データに含まれる一意の値の種類の多さ)の問題がないかどうか、費用対効果に見合うデータかどうかを事前に精査して無駄を省く。

 ログに関しても、第一の防波堤として、各サーバとDatadogの中間にデータパイプライン構築ツール「Vector」を配置した。新規サービスのログはVectorの段階で1%にサンプリングして間引き、不要なログの送信を防いでいる。これらの厳しいゲートキーパー制度によって、データが際限なく増え続ける構造を断ち切ることに成功した。

 既存サービスの無駄を省く上でも、SREの介入は大きな効果を生んだ。「PacketCOP」と呼ばれる、悪意あるトラフィックからゲームサーバを保護する同社独自のセキュリティコンポーネントの事例が象徴的だ。数万台のデバイスの全ネットワークインタフェースを監視していたため、カーディナリティが数百万規模に膨れ上がり、監視費用の大きな要因となっていた。

 SREチームがこのデータ構造を分析した結果、送信されているメトリクスの大半が「0」(異常なし)を示す値であることを突き止めた。Vectorで値が0のメトリクスを破棄する設定を追加するだけで、監視の精度を落とすことなく、このコンポーネントにおけるデータ量を99.9%削減する結果をもたらしている。

 「自分たちのログは最適化されているため一切減らせない」と主張する開発チームに対しては、最も費用がかかっている上位10件のログ出力を金額換算して提示した。「具体的な値段」を見せられた開発者は即座にソースコードを修正し、デバッグ用のログ出力を停止するなどして、対象サービスのデータ通信量を瞬時に80%削減するとともに、運用管理の手間も大幅に省いたという。

 技術的な制御に加えて、事業部門ごとに支出の透明性を高め、説明責任を持たせる取り組みも実施した。Riot GamesのSREチームは財務部門と協力し、プログラミング言語「Python」を用いて、DatadogのAPIから利用状況のデータを抽出して社内の構成管理情報と連携させるデータ抽出プログラムを構築した。

 このプログラムによって、インフラ費用と監視費用を「どの部門のどのサービスが、どのログやメトリクスにどのくらい費やしているか」という細かさで一覧できるダッシュボードを作成した。このデータを基に毎月ビジネスレビューを開催し、利用量の多いチームに対しては、SRE担当者が具体的な最適化の改善案を提示してバックログ(実装すべき機能のリスト)に登録させる運用が定着している。

 ここで特徴的なのは、所有者が特定できない「未分類の費用」が発生した場合、全てSREチームの予算から差し引かれるルールを設けた点だ。これによって、SREチームにもコンピューティングリソースのタグ付けやマッピングを徹底させる強力な動機付けが働き、精度の高い費用追跡システムが維持されている。

 システム構成の変更や意図しない負荷による突発的な支出増を防ぐため、データ取り込み量やカーディナリティーの急増に対するアラート網も整備した。

 ゲーム業界特有の課題として、本番稼働と同等以上のトラフィックを発生させる大規模なロードテスト(システムに高い負荷をかけて耐久性を測る試験)がある。Riot Gamesでは過去に、週末のロードテストで設定に不備があり、2日間で通常の2カ月分に相当する大量のエラーログが出力され、高額な請求につながる事故が発生したことがあった。アラート網の構築後は、こうした異常なデータ送信を夜間であっても即座に検出し、データ転送の経路を強制的に遮断できる権限をSRE担当者に持たせることで、毎月数万ドル規模の無駄な支出を未然に防いでいる。

 Riot Gamesの事例は、監視ツールの費用増という課題に対し、単なるベンダーの切り替えではなく、データの生成段階から監査と統制を実施するアーキテクチャの刷新が不可欠であることを示している。経営層からの支出削減の要求(トップダウン)と、現場の開発者への教育と支援(ボトムアップ)の両輪を回すことで、SRE担当者は単なる運用担当者から、企業の利益を守る信頼されるパートナーへと役割を進化させている。

 本稿は欧州で開催された技術カンファレンス「SREcon25 Europe/Middle East/Africa」における、Riot Gamesのマックスフィールド・スチュワート氏のセッション「Taming the Cost of Telemetry」の内容を基に構成した。

Copyright © ITmedia, Inc. All Rights Reserved.
本記事は制作段階でChatGPT等の生成系AIサービスを利用していますが、文責は編集部に帰属します。

ページトップに戻る