Cloud Runの実行環境って、メモリやvCPUの数は設定できるけど、CPUスペックってどうなんだろう?
ということで、CPUスペックを見てみるコンテナをつくって動かしてみました。
コンテナでcat /proc/cpuinfo
大したものではないですけど、GitHubに上げました。草を生やすためです(笑)
Cloud Runでshell scriptを動かす時、Googleのドキュメントを見ると、Goで簡単なWeb Serverを動かしてそこからキックするようになっていました。
今回はお試しなので、その部分はnetcatでお手軽に。pipe関連でエラーが出るので、本番運用では難しいかな、お手軽なんだけど。
model nameは消してある
Cloud Runで動かして、表示されたURLを手元のマシンからたたいてみると、CPUの情報がでてきます。
- vCPU 1でも2 core割り当てなんだ
- model nameはunknownか
- 2.6GHzなの?
deploy しなおすと実行環境(host)が変わるみたいで、違うクロック数が表示されることもありました。
マシンスペックはガチャ?
AWSのECS+Fargateだと、あてがわれるマシンのCPUクロック数にはばらつきがあるようです。

Cloud Runも同じ感じでしょうか。
Webのフロント系なら気にならないことも多そうですが、バッチ系だと注意が必要なケースもありそうです。Cloud Runの実行時間が最大1時間なので、そこまでの時間を必要としないバッチ処理にも使えそうです。が、CPUクロック数の影響が大きい処理は、止めた方がいいのかもしれません。
お手軽Web Serverはどうすればよい?
おまけです。
AWS Lambdaの「おまじない」に比べれば、HTTPのリクエストを受ける口があればよいというCloud Runはすっきりしています。が、どうせなら、キックするだけなんだからシンプルな方法がないかなぁと欲が出てしまいます。netcatはちょっとやりすぎたかもしれませんが、メモリも喰わない、シンプルなWeb Serverが欲しいですね。
コメント