Google Cloudは先日、HTTPリクエストに応答しないスクリプトやジョブを実行するサーバーレスオプションCloud Run jobsのGA公開を発表した。新しい実行環境は、CPU、ネットワーク性能の向上、ネットワークファイルシステムのサポートを提供する。
HTTPリクエストを処理するCloud Runサービスとは異なり、Cloud Runジョブはタスクの実行のみを行い、パラメータを受け取らない。Google I/Oでプレビューとして紹介されたCloud Runジョブは、バッチデータ変換、データベース移行、ナイトリーレポート、ランツーコンプリートジョブを実行するように設計されており、レガシースクリプトのサーバーレス環境への移行を支援する。GoogleのグループプロダクトマネージャーであるKarolina Netolicka氏と、プロダクトマーケティングマネージャーのBex Hear氏は次のように説明する。
Cloud Runは当初、ウェブサイトやAPIを提供するニーズに合わせて設計され、ユーザーはHTTPリクエストやイベントに応答する"サービス" を実行できました。 しかしCloud Runの利用者はHTTPリクエストのパラダイムに適合しない他のワークロードを実行するサーバーレス環境の使用方法を望んでいたのです。
タスクをスケジュールするオプションを提供しているクラウドプロバイダーはGoogleだけではない。Capital Oneの著名なエンジニアであるShekhar Jha氏は、AWS ECSとGoogle Cloud run jobsを比較している。
Googleは、CPUとネットワークのパフォーマンスを向上させ、ネットワークファイルシステムをサポートし、既存のアプリケーションの移行を容易にする新しい実行環境をリリースした。Cloud Runは、Cloud Filestore、自己管理型NFSサーバー、およびCloud StorageバケットをローカルファイルシステムとしてマウントできるオープンソースのアダプターであるFUSEをサポートしているのだ。Netolicka氏とHeart氏は、補足している。
第2世代の実行環境は、すべてのLinux機能と完全に互換性があるため、既存のコンテナをCloud Runに移行することが容易になります。つまり以前はシステムコールの問題で実行できなかったソフトウェアが、第2世代のCloud Runのでは実行可能となるのです。
Komboの共同創業者兼CTOであるNiklas Higi氏は、新機能に関するビデオにコメントし、いくつかの制限事項について強調している。
私たちが抱えていた長期的なタスクのユースケースにCloud Runジョブを使用できず、GKEクラスタを管理しK8Sジョブの作成に頼らざるを得ませんでした。これは、ジョブの個々の実行にパラメータを渡す方法がないことと、最大実行時間が1時間までという、2つの制限によるものです。
Cloud Run Jobsのデフォルトのタイムアウト設定は10分で、最大1時間まで延長可能だ。ジョブには明示的なタイムアウトはなく、すべてのタスクの完了にのみ依存する。料金表によると、毎月最初の240,000 vCPU秒と450,000 GiB秒が無料となる。