Google Cloudのコンピューティングにバッチ(Batch)が追加されていたのでさっくりと使ってみた
投稿者:ソリューション担当
Google Cloudは日々アプデが入っています。
利用する側は最新機能に追いつくのに精一杯であったり、「なんやこれ!?」といった機能もあったりします。
今回は7/14にたまたま画面上から見かけたコンピューティングの「バッチ」を使ってみます
いつ追加された?
ソフトウェアやサービスが新しいバージョンで作成された際に提供されるリリースノートがあります。
Google Cloudではリリースノートに下記のような情報が記載されています。
- 今後のアップデートや製品の修正
- 製品サポートの扱いがGA(正式サポート)になったかどうか
- 製品の脆弱性対応状況
バッチに関しても例に漏れずリリースノートが作成されていました。
Batch is now available in Preview! For more information about using Batch, see the documentation.
公式ドキュメントもあるので早速見てみましょう。
製品としてはプレビュー扱い(Google Cloudの利用規約としてSLAサポートをしない製品)として出ているそうです。
実際に試してみる(準備パート)
ではドキュメントの「Before you begin」にそってやってみましょう。
1.In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
まずはGoogle Cloudのプロジェクト選択です。
ここは各々のプロジェクトを選択してください。
問題なければ次に進みます。
2.Make sure that billing is enabled for your Cloud project. Learn how to check if billing is enabled on a project.
続いてプロジェクトに対して課金設定が有効化になっているか確認します。有料サービスを利用する際には必須の設定となります。
ちなみに、Google Cloudでは新規利用の場合クレジットカード登録で$300分無料で利用できます。
詳細はこちらのリンクからご確認ください。
問題ないので次に進みます。
3.If you want to use the command-line examples in this guide, do the following:
こちらはGoogle Cloudが提供するSDKを導入していない場合はインストールしてくださいといった解説となります。
今回はインストールしていることを前提とするためスルーします。
4.Make sure Batch is enabled for your project. To start using Batch with a project, do the following:
どうやらBatch APIと呼ばれるAPIの有効化が必要なようです。
画面上からは左上のナビゲーションメニュー選択後、「コンピューティング→バッチ」を選択します。
初回選択時はBatch APIの画面が出てくるので有効化します。
有効化完了まで数分です。
有効化完了後画面が切り替わります。新しい画面ってのはなんでもいいですね
公式ドキュメントとしては、Compute Engineのデフォルトサービスアカウントに下記権限がいるようです。
- roles/batch.agentReporter
- roles/storage.admin
IAMの画面で見るとこんなかんじです
ユーザには下記権限が必要です
- roles/batch.jobsAdmin
- ジョブの作成削除実施。バッチ一覧や詳細も確認可能
- roles/batch.jobsViewer
- バッチ一覧や詳細確認
IAMの画面でみるとこんなかんじです
実際に試してみる(作成パート)
権限とAPI有効化完了です。
バッチジョブを作成してみましょう。
作成内容は公式ドキュメントにある「Create a basic job」を参考にしています。サンプルスクリプトジョブの作成までを行います。
画面左上にある作成を選択します
各種設定内容が出てきます。
それぞれ見てましょう(記載されている内容を翻訳したりしているので若干ニュアンス違ったりしているかもしれないです)
Details
- JobName
- ジョブの名前。デフォルトは
job-xxxxxx
といった形で記載(xxxはランダムな文字列) - 今回は
example-basic-job
で定義
- ジョブの名前。デフォルトは
- リージョン
- ジョブ作成リージョン。現在は画像の通りasia-northeast1や2では利用できないっぽいです
- 今回はデフォルトリージョンである
us-central1
を選択します
- VM provisioning model
- どうにもジョブはGCEを作成して実施するようです。GCEをプリエンプティブルインスタンスで作成するか聞かれています。選択肢はStandardとSpotです
- 今回は
Standard
で試してみましょう。ちょっとリッチです
- Task count
- おそらくジョブの実行回数ですね。1から10000の間で記載します
- 今回は
4
を指定。4タスクやっちゃいます
- Parallelism
- 同時実行タスク数を定義するようです。1から1000まで選択可能です。
- 今回は
2
を指定。並列実行のテストですね
設定後の画像はこんな感じです
Task details
実行するジョブのコンテナイメージorスクリプトを記載するようです。
今回は手軽にスクリプトでやってみましょう。
Scriptを選択して、スクリプト記載欄に下記サンプルスクリプトを貼り付けます
echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks.
設定後の画像はこんな感じです(スクリプト貼り付けただけですが…
ちなみにですが、Container image URLを選択した場合は下記項目が表示されます。
- Container image URL
- コンテナイメージを指定します。パブリックで公開されているイメージもしくはArtifactRegistryにあるイメージを選択します
- Entry point
- コンテナのエントリポイントコマンドの代わりにジョブが実行するコマンドを指定するようです
- ここでのコマンドはよくある
/bin/bash
とか/bin/sh
とかのやつかと思います
- Override container image’s CMD command
- チェックボックスでのオプションです。コンテナイメージのCMDコマンドの代わりに実行するコマンドを指定するようです
Task resources
バッチを動かすための設定のようです
メモリとコアを指定します
- Cores
- 動作するVMインスタンスリソースのコアを指定します。0.5 ~ 224 vCPUの間で選択可能なようですね
- 今回はデフォルト値の
1 vCPU
を指定します
- Memory
- 動作するVMインスタンスリソースのメモリを指定します。0.5 ~ 896 GBの間で選択可能なようです。メモリそんな使うバッチあるんか?って感じもありますが指定幅がでかいのはええことです。
- 今回はデフォルト値の
0.5 GB
を指定します
設定完了後作成を選択します。
実際に試してみる(動作確認パート)
作成で正常にできれば 【ジョブ名】 created
と表示されます。一安心ですね
実際のジョブの画面です。Machine typeとかの詳細はgcloudコマンドで対応できるとのことです。
ジョブ名を選択すると詳細画面が表示されます
作成後しばらくすると、ジョブ実行中にステータスが変更されます。
放置しているとステータスが「完了しました」となります
詳細確認のため、Cloud Loggingを見てます。
Logs欄にあるCloud Loggingリンクを選択します
タスクを4回実行とあったため、正常に4回実行された結果が出力されていますね
まとめ
バッチジョブを画面ポチポチして手軽に作成できました。
アップデートが入り他サービス含めて色々と連携できるようになると利用用途が更に増えると思います。
皆様も是非試してみてください