Managed Service for Apache Spark には、以前の「Managed Service for Apache Spark on Compute Engine」(クラスタ デプロイ)と以前の「Managed Service for Apache Spark」(サーバーレス デプロイ)のプロダクト オプションが含まれるようになりました。
サーバーレス デプロイとクラスタ デプロイはどちらも、OSS 互換でデータ形式を完全にサポートする、スケーラビリティが高くプロダクション レディで安全なマネージド Spark 環境を提供しますが、基盤となるインフラストラクチャの管理方法とリソースの課金方法が異なります。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 は、Spark-jobs-as-a-service を提供し、フルマネージドの Google Cloudインフラストラクチャで Spark を実行します。ジョブの実行時間に応じて料金が発生します。
- クラスタのデプロイ: Spark-clusters-as-a-service を提供し、Compute Engine インフラストラクチャで Managed 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 17、21 |
サポートされている以前のバージョン |
| 起動時間 | 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 ジョブと、複数のチームやプロジェクト向けの永続クラスタをサポートします。
- 多様なオープンソース エコシステム: Hive、Pig、Presto などの Hadoop エコシステム ツールを実行するデータ処理パイプラインを Spark ワークロードで実行するための統合環境を提供します。
- セキュリティ コンプライアンス: 個人を特定できる情報(PII)や保護医療情報(PHI)の保護など、特定のセキュリティ標準やコンプライアンス標準を満たすようにインフラストラクチャを制御できます。
- インフラストラクチャの柔軟性: Spot VM を提供し、予約と Compute Engine リソース容量を再利用してリソース使用量のバランスを取り、クラウド インフラストラクチャ戦略を促進します。
まとめ
Managed Service for Apache Spark クラスタとサーバーレス デプロイのどちらを使用するかは、ワークロードの要件、運用上の設定、必要な制御レベルによって異なります。
- Managed Service for Apache Spark サーバーレスを選択する: 使いやすさ、断続的なワークロードに対する費用対効果、インフラストラクチャ管理のオーバーヘッドを排除して新しい Spark アプリケーションの開発を加速できる機能が求められる場合。
- 最大限の制御が必要な場合、Hadoop または Spark ワークロードを移行する必要がある場合、永続的でカスタマイズされた共有クラスタ環境が必要な場合は、Managed Service for Apache Spark クラスタを選択します。
このセクションに記載されている要素を評価したら、Spark を実行する最も効率的で費用対効果の高い Managed Service for Apache Spark デプロイを選択して、データの可能性を最大限に引き出します。