Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Batch (Google Cloud) 使ってみた

haya_shio
December 15, 2022

Batch (Google Cloud) 使ってみた

haya_shio

December 15, 2022
Tweet

More Decks by haya_shio

Other Decks in Technology

Transcript

  1. 自己紹介 氏名: 塩谷 勇人 所属: 株式会社セゾン情報システムズ 6年目 主な業務: パッケージエンジニア [HULFT

    for IBMi / Mainframe] 今年度からGoogle Cloud Partner Top Engineer を目指し、活動しております! Qiita ユーザID: @ha_shio
  2. Batch とは ◼概要 Batch は、Compute Engine 仮想マシン(VM)インスタンスでバッチ処理ワーク ロードのスケジューリング/キューイング,実行を行えるフルマネージドサービス です。Google Cloud上にスケーラブルかつフルマネージドなバッチコンピュー

    ティング環境を簡単に作成することができます。 Google Cloud Next’22 にて、一般公開(GA)が発表されました。 ◼料金 Batch の使用に追加料金はかかりません。ジョブの実行に必要な基盤となるリ ソースのコストのみが課金されます。 ◼ドキュメント 入門ガイドとAPIとリファレンスなどが公開されております。 参考: プロダクトの詳細-Batch
  3. 特徴 ◼特徴 ・フルマネージドサービス ・汎用のバッチジョブ サービスであり、最新のサービス ・リソース(仮想VMなど)を自動的にプロビジョニングして管理 ・並列実行やスケジューリングにより、大規模な処理が可能 ◼ユースケース 公式から公開されているユースケースでは、下記のような利点が示されておりま した。

    ・パイプラインの効率、スループット、および信頼性 ・大量のデータを分析するために必要なコンピューティング リソースを 迅速に確保することが容易 ・シンプルかつ柔軟なプロビジョニング モデル ・機械学習やメディア処理などの規模が非常に大きな処理に最適 参考: プロダクトの詳細-Batch
  4. Batchの構成 Batchは、下記の3要素を持ちます。 Batch を使用すると、それぞれがタスクの実行に必要なリソースを 自動的にプロビジョニングして使用するジョブを作成して実行できます。 引用元: Batch-概要 要素 概要 ジョブ

    計算ワークロードをユーザーの操作なしで完了する、スケジューリ ングされたプログラムを指します。 通常、単一のシェル スクリプトや複雑なマルチパート計算となり ます。 タスク ジョブの一部として定義され、ジョブの実行時に実行されるプログ ラムによるアクションを指します。 リソース ジョブの実行に必要なインフラストラクチャです。 各バッチジョブは、ジョブの指定要件とロケーションに基づいて、 Compute Engine VM のリージョン マネージド インスタンス グ ループ(MIG)で実行されます。
  5. ジョブ作成 ◼ジョブの作成 <指定するもの> ・ジョブ名 ・リージョン/ゾーン ・VM provisioning model (Standard/Spot※) ※プリエンプティブル

    VM ・マシンの属性 ・実行タスクの詳細 (コンテナ/Scriptジョブ) ・ジョブのタスクの数 ・同時実行するタスク数 ・各タスクに必要な VM リソースの量
  6. 実行してみた ◼ ガイドに記載のある、基本的なスクリプト ジョブを実行してみました [概要] > Hello world! と自ジョブのタスク数を出力する >

    総タスク数は4, 並列実行数は2 ◼ 実行結果の確認 ジョブリストからステータス、 結果を確認できます。(右図参照) ◼ ジョブの作成方法 ・画面UIから作成する ・コマンドラインから発行する ・RESTを用いる ・ガイドでも紹介されているワークフローを利用する
  7. Batch をつかってみて Google Cloudにて、スクリプトジョブが非常に容易に実行できました。 よくバッチ処理に用いられている サーバレスサービス(Cloud Functions など) では、リソースの 上限や実行時間の制限が存在するため、バッチジョブで膨大な処理/データを扱いたい場合は、

    Batch が有力な選択肢となりそうです。 個人的には、スポット VMの利用(通常のVMと比べ、最大で90%のコスト削減見込み)が可能であ ることで、より様々な用途での利用を検討できそうだな、と感じました。 Google Cloudにて何かしらのシステムを構築/運用する際に、選択肢の1つとしてあげられるよう に知見を深めていきたいです。 以上、ありがとうございました。
  8. プリエンプティブル仮想マシン(VM) とは プリエンプティブル VM インスタンスは、標準 VM の料金よりもはるかに低価格(60~91% 割 引)で利用できます。 ただし、他の

    VM に割り当てるためにコンピューティング容量を再利用する必要がある場合、 Compute Engine はこのインスタンスを停止(プリエンプト)する可能性があります。 https://cloud.google.com/compute/docs/instances/preemptible?hl=ja Spot VM は、プリエンプティブル VM の最新バージョンです。新規および既存のプリエンプ ティブル VM は引き続きサポートされ、プリエンプティブル VM では Spot VM と同じ料金モデ ルが使用されます。ただし、スポット VM には、プリエンプティブル VM でサポートされてい ない新機能があります。たとえば、プリエンプティブル VM は一度に最大 24 時間しか実行でき ませんが、Spot VM には、ランタイムを制限しない限り、最大ランタイムはありません。 詳しくは、Spot VM と Spot VM の作成方法をご覧ください。