Yahoo が Managed Service for Apache Spark のフレキシブル VM でリソースを最適化している方法
Akshay Jain
Senior Software Engineer, Yahoo
Surjit Singh
Data & AI Engineer, Google Cloud
※この投稿は米国時間 2026 年 9 月 5 日に、Google Cloud blog に投稿されたものの抄訳です。
Yahoo は、数億人のユーザーを金融、スポーツ、エンターテイメントのプラットフォームに接続するグローバルなメディアおよびテクノロジー企業として、分析ワークロードを高速で継続的に実行する必要がある大規模なデータ インフラストラクチャを運用しています。期限が重視されるデータ環境では、固定の仮想マシン(VM)構成に依存すると、システムが脆弱になります。特定のマシンシェイプがリージョンの容量制限に直面すると、Managed Service for Apache Spark(旧称 Dataproc)でのクラスタ プロビジョニングが遅延し、重要なデータ パイプラインが停止する可能性があります。
Yahoo は、Managed Service for Apache Spark クラスタでフレキシブル VM を利用し、許容可能な VM シェイプのランク付けされたリストを定義することで、これらのリソースの変動に自動的に対応しています。これにより、システムはリージョン ゾーンを動的に検索し、手動による介入なしでパイプラインの実行を維持できます。リージョン全体で容量を検索するには、自動ゾーン プレースメントも有効にする必要があります。
この最適化は、オンプレミスの Hadoop とビッグデータ資産を Google Cloud に直接移行する、Yahoo のより広範なデータ モダナイゼーションの取り組みを基盤としています。これらのレガシー ワークロードを移行することで、チームは動的なリソースの柔軟性を備えた、大規模なバッチ分析とストリーミング分析を実行できるクラウド基盤を確立しました。

この投稿では、Managed Service for Apache Spark でフレキシブル VM インスタンスのランキングを構成し、容量の制約を自動的に管理してパイプラインの実行を維持するための技術的なブループリントをご紹介します。
静的構成の運用上のトレードオフ
特定のゾーンで固定された単一のマシンタイプを使用してクラスタを構成すると、リージョン ゾーンの容量が変動した場合に制約が生じ、クラスタのプロビジョニングに影響する可能性があります。カスタムの再試行ロジックや手動による介入によってこれらの容量の変動を管理するのではなく、柔軟な構成を使用することで、インフラストラクチャを自動的に適応させることができます。柔軟な構成により、複数の VM シェイプを受け入れ、選択したリージョン内のゾーン全体で検索を行うことで、プロビジョニングを合理化し、大規模な分析ワークロードをより適切にサポートできます。
柔軟なクラスタを構成するためのルール
柔軟な構成をデプロイするには、一連の設計上の選択を調整する必要があります。
-
自動ゾーン プレースメントを有効にする: Managed Spark がリージョン全体で利用可能な容量を検索できるように、リージョン(--region=${REGION})または空のゾーン文字列(--zone="")を渡す必要があります。
-
コアとメモリの均一性を維持する: Managed Spark クラスタで自動スケーリングを使用する場合、フレキシブル リスト内のすべてのマシンタイプは、異なる VM ファミリーのものであっても、同様のコア数とメモリサイズを共有する必要があります。プライマリ ワーカーとセカンダリ ワーカーで CPU とメモリの比率を統一すると、最小の比率によって有効なコンテナのサイズが決まるため、パフォーマンスの低下を防ぐことができます。
-
コンポーネント プロパティを調整する: Managed Spark は、VM のコアとメモリに基づいてシステム プロパティを計算します。マシンシェイプを混在させる場合、YARN と Spark のリソース割り当てをワーカーの想定される動作に合わせるために、プロパティの明示的なオーバーライドが必要になることがあります。
フレキシブル VM が大規模なワークロードをサポートする 2 つの方法
大規模なデータ環境の場合、柔軟な構成は次の 2 つの方法で運用をサポートします。
-
クラスタ作成の成功率の向上: 優先 VM タイプが利用不可の場合に失敗せず、Managed Spark がランク付けされたリストから代替の VM タイプを選択してプロビジョニングを継続します。
-
リージョン リソースの使用効率の向上: 自動ゾーン プレースメントでは、リージョン全体が検索され、容量が検出されるため、需要が高い期間のプロビジョニングの摩擦が軽減されます。
gcloud の例
API の例
この容量ポリシーは、Dataproc API の instanceFlexibilityPolicy フィールドを使用して、自動化されたパイプラインまたは Managed Service for Apache Airflow DAG に組み込むこともできます。
この API ポリシーは、同じ目標を達成します。つまり、優先するシェイプを確立し、有効なフォールバックを文書化し、自動化スクリプトを中断することなく、Managed Spark がリソースの制約を解決できるようにします。
インフラストラクチャ ポリシーの確立
この規模のデータを管理するには、固定された単一のマシンタイプに依存するのではなく、明確なリソース ポリシーを標準化する必要があります。構成基準では、以下を規定する必要があります。
-
セカンダリ ワーカーの優先 VM ファミリーとフォールバック VM ファミリー。
-
柔軟なプロビジョニングを可能にするためのデフォルトの自動ゾーン プレースメント。
-
自動スケーリングを使用する場合のコアとメモリの同一構成。
-
コンテナのサイズを予測可能に保つためにすべてのワーカー グループで統一された CPU とメモリの比率。
-
異なるマシンライン間で一貫したランタイム動作を保証するための、YARN または Spark プロパティの明示的なオーバーライド。
-
Spot または弾力性の高い容量で実行される Spark ワークロード向けのシャッフル セーフ パターン。
柔軟な構成を採用することで、インフラストラクチャのリソース不足が解消され、予測可能なフォールバック プランが適用されるため、重要なデータ パイプラインを稼働させ続けることができます。
Yahoo の影響と結果
Yahoo は、Managed Service for Apache Spark にフレキシブル VM を実装することで、リージョンの容量不足が原因で発生していたクラスタ プロビジョニングの失敗を 85% 削減することに成功しました。この柔軟な構成により、データ インフラストラクチャは容量の制約に自動的に対処し、手動による介入を必要とせずにリソースを正常にプロビジョニングできます。その結果、Yahoo はワークロードを継続的に実行できるようになり、大規模なデータ パイプライン全体でダウンストリーム処理の遅延を防止しています。
「Yahoo で大規模なデータ分析を管理するには、復元力のある自動化されたインフラストラクチャが必要です。Managed Service for Apache Spark のフレキシブル VM に移行したことで、当社のアプローチは一変しました。特定のマシンシェイプが容量の制約に直面したときに処理が停止するのではなく、クラスタがランク付けされたフォールバック オプションに自動的に切り替わるようになりました。これにより、プロビジョニングの失敗を 85% 削減し、グローバル メディア プラットフォームをスムーズに運用し続けるために必要な信頼性を確保できました。」- Yahoo!、シニア ソフトウェア デベロッパー エンジニア、Akshay Jain 氏
柔軟なインフラストラクチャの戦略上のメリット
柔軟なコンピューティング スタックを採用することで、環境を運用ニーズに適応する動的なリソースプールへと変革できます。固定された単一のマシンタイプ構成に縛られないため、供給の変動に関係なく、ワークロードが必要なコンピューティングに確実にアクセスできるようになります。この移行により、ワークロードの入手可能性と信頼性が最大限に高まるだけでなく、古いタイプの VM を信頼性の高いフォールバック オプションとして維持しながら、新しい世代の VM を優先できるため、シームレスなハードウェアのモダナイゼーションが促進されます。
復元力のあるデータ パイプラインを構築する
流動的なコンピューティング戦略に移行することで、リージョン リソースが変化しても、重要な分析を継続できます。インフラストラクチャの最適化を今すぐ始める方法を以下に示します。
-
ワークロードを検証する: 特定の VM ファミリーやゾーンに緊密に結合されているアプリケーションを特定し、実行可能な代替ハードウェア シェイプをマッピングします。
-
リソース ポリシーを標準化する: Managed Spark のフレキシブル VM のドキュメントを読んで、優先 VM ファミリーとフォールバック VM ファミリーを確立します。
-
財務戦略を調整する: ワークロードが代替マシンタイプに動的に移行する場合に、フレキシブル確約利用割引(フレキシブル CUD)を利用して費用の予測可能性を維持します。
-
クレジットを獲得する: 新規のお客様は、Managed Service for Apache Spark や他の Google Cloud プロダクトを無料で試すことができる $300 分のクレジットを獲得できます。
- Yahoo、シニア ソフトウェア エンジニア Akshay Jain 氏
- Google Cloud、データ / AI エンジニア Surjit Singh
