Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に
Googleは、Dockerコンテナをサーバレスで実行するサービス「Cloud Run」の新機能として、非同期処理などを可能にする「CPU allocation on Cloud Run」機能をプレビューとして発表しました。
非同期処理などが難しかったCloud Run
サーバレスコンピューティングでは一般に、何らかのイベントやリクエストをトリガーにインスタンスが起動し、処理が終わるとインスタンスが終了します。
Google CloudのCloud Runではこうした処理をDockerコンテナで実現するサービスです。HTTPやgRPCなどによるリクエストによってあらかじめ用意されていたDockerコンテナが起動し、レスポンスを返したところでDockerコンテナが終了してCPUの割り当てが解放されるようになっています。
そのため、Cloud Runでは処理を非同期にしてレスポンスを先に返し、そのあとで処理を行うといった非同期処理やバックグラウンドタスクによる処理は難しいものとなっていました。
例えば、なんらかの画像ファイルを受け取り、先にレスポンスを返しつつ、非同期処理でそのサムネイルを作ってストレージに保存するといった処理はできませんでした。
処理が行われているあいだCPUが割り当てられる
今回発表されたCloud Runの新機能「CPU allocation on Cloud Run」では、DockerコンテナにつねにCPUを割り当てる設定が可能になりました。
これにより、Dockerコンテナで何らかの処理が行われているあいだはCPUがつねに割り当てられるため、レスポンスを返した後でもDockerコンテナ内で処理が継続できるようになり、非同期処理やバックグラウンド処理が可能になりました。
例えば、GoのGoroutinesやNode.jsのasyncなど、非同期処理を活用したアプリケーションが実行できるようになります。
また、これに合わせてCloud Runの料金にも、CPU allocationでつねにCPUを割り当てた場合に対応した料金が設けられるようになっています。
あわせて読みたい
CentOS 8とバイナリ互換のRHELクローン「MIRACLE LINUX 8.4」が無償公開へ。今後のバグフィクスやアップデートも無償。CentOS 8の代替を狙う
≪前の記事
オラクル、Oracle JDKを再び無料提供へ、本番環境でも利用可。昨日リリースのJava 17から