Managed Service for Apache Spark のサーバーレス デプロイとクラスタ デプロイを比較する

Managed Service for Apache Spark に、以前の「Dataproc on Compute Engine」 (クラスタ デプロイ)と以前の「Google Cloud Serverless for Apache Spark」 (サーバーレス デプロイ)のプロダクト オプションが追加されました。

どちらのオプションも、OSS 互換でデータ形式を完全にサポートする、スケーラビリティが高くプロダクション レディで安全なマネージド Spark 環境を提供しますが、基盤となるインフラストラクチャの管理方法とリソースの課金方法が異なります。Spark ソリューションを選択する際は、次の機能とユースケースをご確認ください。

Managed Service for Apache Spark のサーバーレス デプロイの詳細については、 Managed Service for Apache Spark のサーバーレス デプロイの概要をご覧ください。

Managed Service for Apache Spark のデプロイを比較する

次の表に、Managed Service for Apache Spark のクラスタ デプロイとサーバーレス デプロイの主な違いを示します。

デプロイ サーバーレス クラスタ
処理フレームワーク バッチ ワークロードとインタラクティブ セッション: Spark Spark。その他のオープンソース フレームワーク(Hive、Flink、Trino、Kafka など)
サーバーレス ×
スタートアップ時間 50 秒 120 秒
インフラストラクチャの制御 ×
リソース管理 サーバーレス YARN
GPU のサポート はい
インタラクティブ セッション ×
カスタム コンテナ はい ×
VM アクセス(SSH) ×
Java のバージョン Java 17、21 Java 17 以前のバージョン

最適な Managed Service for Apache Spark デプロイを決定する

このセクションでは、Managed Service for Apache Spark の主な強みと主なユースケースについて説明します。これにより、Spark ワークロードに最適な Managed Service for Apache Spark デプロイ(クラスタまたはサーバーレス)を選択できます。

概要

Managed Service for Apache Spark のデプロイは、 制御の度合い、インフラストラクチャ管理、課金モードが異なります。

  • サーバーレス デプロイ: Managed Service for Apache Spark は 、フルマネージド Google Cloud インフラストラクチャで Spark を実行する Spark ジョブ アズ ア サービスを提供します。ジョブの実行時間に応じて料金が発生します。
  • クラスタ デプロイ: Compute Engine インフラストラクチャでマネージド Spark を実行する Spark クラスタ アズ ア サービスを提供します。クラスタの稼働時間に応じて料金が発生します。

これらの違いにより、Managed Service for Apache Spark の各デプロイは、次のユースケースに最適です。

デプロイ ユースケース
サーバーレス さまざまな専用ジョブ環境
スケジュールされたバッチ ワークロード
インフラストラクチャ管理よりもコード管理を優先
クラスタ 長時間稼働する共有環境
インフラストラクチャをきめ細かく制御する必要があるワークロード
レガシー Hadoop 環境と Spark 環境の移行

主な違い

機能 サーバーレス デプロイ クラスタ デプロイ
管理モデル フルマネージドでサーバーレスの実行環境。 クラスタベース。クラスタをプロビジョニングして管理します。
制御とカスタマイズ インフラストラクチャの制御が少なく、コードの送信と Spark パラメータの指定に重点を置いています。 クラスタ構成、マシンタイプ、ソフトウェアをより細かく制御できます。Spot VM を使用し、予約と Compute Engine リソース容量を再利用できます。CPU アーキテクチャなど、特定の VM シェイプに依存するワークロードに適しています。
ユースケース アドホック クエリ、インタラクティブ分析、新しい Spark パイプライン、リソースのニーズが予測できないワークロード。 長時間稼働する共有クラスタ、カスタム構成で既存の Hadoop ワークロードと Spark ワークロードを移行する、高度なカスタマイズが必要なワークロード。
運用上のオーバーヘッド オーバーヘッドが少ない。 Google Cloud インフラストラクチャ、スケーリング、プロビジョニングを管理し、NoOps モデルを有効にします。Gemini Cloud Assist を使用するとトラブルシューティングが容易になり、サーバーレス 自動チューニング により最適なパフォーマンスを実現できます。 クラスタの管理、スケーリング、メンテナンスが必要なため、オーバーヘッドが大きくなります。
効率モデル アイドル状態のコンピューティングのオーバーヘッドなし: ジョブの実行時にのみコンピューティング リソースが割り当てられます。起動とシャットダウンの費用はかかりません。効率向上のために共有インタラクティブ セッションがサポートされています。 ジョブとチーム間でクラスタを共有することで効率が向上します。共有、マルチテナンシー モデルを使用します。
ロケーション管理 Managed Service for Apache Spark は、追加費用なしでリージョン ワークロードをサポートし、信頼性と可用性を高めます。 クラスタはゾーンです。クラスタの作成時にゾーンを自動的に選択できます。
費用 消費されたリソースに基づいて、起動と停止を含まない Spark ジョブの実行時間に対してのみ課金されます。使用したデータ コンピューティング ユニット(DCU)とその他のインフラストラクチャ費用として課金されます。 ノード数に基づいて、起動と停止を含むクラスタの実行時間に対して課金されます。Managed Service for Apache Spark ライセンス費用とインフラストラクチャ費用が含まれます。
確約利用割引(CUD) BigQuery の費用ベースの CUD は、Managed Service for Apache Spark ジョブに適用されます。 Compute Engine CUD は、すべてのリソース使用量に適用されます。
イメージとランタイムの制御 ユーザーは、Managed Service for Apache Spark ランタイムのマイナー バージョンに固定できます。サブマイナー バージョンは Managed Service for Apache Spark によって管理されます。 ユーザーは、Managed Service for Apache Spark イメージのマイナー バージョンとサブマイナー バージョンに固定できます。
リソース管理 サーバーレス YARN
GPU のサポート はい はい
インタラクティブ セッション ×
カスタム コンテナ はい ×
VM アクセス(SSH) × はい
Java のバージョン Java 1721 以前のバージョンがサポートされています
スタートアップ時間 50 秒 120 秒

サーバーレス デプロイを選択する場合

Managed Service for Apache Spark のサーバーレス デプロイは、クラスタ管理の複雑さを抽象化し、Spark コードに集中できるようにします。そのため、次のデータ処理シナリオでの使用に最適です。

  • アドホック分析とインタラクティブ分析: Spark を使用してインタラクティブ クエリと探索分析を実行するデータ サイエンティストとアナリストにとって、サーバーレス モデルはインフラストラクチャに集中することなく迅速に開始できる方法です。
  • Spark ベースのアプリケーションとパイプライン: Spark で新しいデータ パイプラインまたはアプリケーションを構築する場合、Managed Service for Apache Spark はクラスタ管理の運用上のオーバーヘッドを削減することで、開発を大幅に加速できます。
  • 散発的または予測不可能な需要のワークロード: 断続的な Spark ジョブや、リソース要件が変動するジョブの場合、サーバーレス自動スケーリングと従量課金制の料金(ジョブのリソース消費に料金が適用されます)により、費用を大幅に削減できます。
  • デベロッパーの生産性に重点を置く: Managed Service for Apache Spark は、クラスタのプロビジョニングと管理の必要性を排除することで、ビジネス ロジックの作成を迅速化し、インサイトを迅速に取得し、生産性を向上させます。
  • オペレーションの簡素化とオーバーヘッドの削減: Managed Service for Apache Spark のインフラストラクチャ管理により、運用上の負担と費用が削減されます。

クラスタ デプロイを選択する場合

Managed Service for Apache Spark のクラスタ デプロイを使用して、Apache Spark やその他のオープンソース データ処理フレームワークを実行できます。 高度な制御と柔軟性を備えているため、次のシナリオで推奨されます。

  • 既存の Hadoop ワークロードと Spark ワークロードの移行: オンプレミスの Hadoop クラスタまたは Spark クラスタの への移行をサポートします Google Cloud。特に古い Spark バージョンを使用している場合は、コードの変更を最小限に抑えて既存の構成を複製します。
  • 高度なカスタマイズと制御: クラスタのマシンタイプ、ディスクサイズ、ネットワーク構成をカスタマイズできます。このレベルの制御は、複雑で長時間実行されるジョブのパフォーマンス チューニングとリソース使用率の最適化に不可欠です。
  • 長時間実行される永続クラスタ: 複数のチームとプロジェクトで、継続的で長時間実行される Spark ジョブと永続クラスタをサポートします。
  • 多様なオープンソース エコシステム: Hadoop エコシステム ツール(Hive、Pig、Presto など)を実行するデータ処理パイプラインを、Spark ワークロードとともに実行するための統合環境を提供します。
  • セキュリティ コンプライアンス: インフラストラクチャを制御して、個人情報(PII)や保護対象医療情報(PHI)の保護など、特定のセキュリティまたはコンプライアンス基準を満たすことができます。
  • インフラストラクチャの柔軟性: Spot VM を提供し、予約と Compute Engine リソース容量を再利用して、リソースの使用量のバランスを取り、クラウド インフラストラクチャ戦略を促進できます。

まとめ

Managed Service for Apache Spark のクラスタ デプロイとサーバーレス デプロイのどちらを使用するかは、ワークロードの要件、運用上の好み、必要な制御レベルによって異なります。

  • 使いやすさ、断続的なワークロードの費用対効果、インフラストラクチャ管理のオーバーヘッドを排除することで新しい Spark アプリケーションの開発を加速できるため、Managed Service for Apache Spark サーバーレス を選択します。
  • 最大限の制御が必要な場合、Hadoop ワークロードまたは Spark ワークロードを移行する必要がある場合、永続的でカスタマイズされた共有クラスタ環境が必要な場合は、Managed Service for Apache Spark クラスタ を選択します。

このセクションに記載されている要素を評価したら、最も効率的で費用対効果の高い Managed Service for Apache Spark デプロイを選択して Spark を実行し、データの可能性を最大限に引き出します。