Cloud Run が発表されました。
特徴
大きな特徴はKNativeベースのサービスです。 ローカルでテストすることも可能ですし、Serverless 環境を GCP があらかじめ用意してくれているので実行が楽です。 また、 GKE 上で実行することが出来るので、 GKE をすでに使用している場合、リソースを効率的に活用できることが期待できます。
Quick Start をやってみる
Quick Start を3つあるうち、Quickstart: Deploy a Prebuilt Sample Container と Quickstart: Build and Deploy の2つ試してみました。3つめの Quickstart: Deploy to Cloud Run on GKE は GKE 上で動かすのですが、現在 GKE のクラスタを持っていないため省略しました。
Quickstart: Deploy a Prebuilt Sample Container
すでに用意されているコンテナを動かします。
特に問題なくするするっと出来ました。一点だけ Check Allow unauthenticated invocations
の部分はなぜかチェックできなく、一旦ログアウトしてもう一度ログインしたところチェックできるようになりました。 Allow unauthenticated invocations
をチェックしないとブラウザでの確認が困難なので注意が必要です。
初回デプロイは数分かかりましたが、2回目以降は数秒でデプロイが終わり立ち上がりも早く、実用的に感じました。
リージョンは日本に無いようですが、レスポンスタイムもそれほど気にならない (1秒程度) なので、ちょっとしたサービスを立ち上げるのならまったく問題ないかと思いました。
Quickstart: Build and Deploy
自分のローカル環境でサンプルプログラムと Dockerfile を用意して、Cloud Build で Docker Image を作成し、それを Cloud Run で実行します。
サンプルプログラムはいくつか用意されていて、Go を選択しました。 こちらも Windows 環境で少し不安でしたが、特に問題無く実行できました。
料金について
ちょっと試す分には、ほぼほぼ無料と思って良いです。ベータとはいえ安すぎる価格設定。
https://cloud.google.com/run/pricing
クォータや制限について
Timeoutが15分ですので、バッチ処理などには向かないかもしれません。
Request size と Response Size もそれぞれ 32 MB までなので、大容量のファイルアップロードやダウンロードは、一旦ストレージに逃がすなど工夫が必要そうです。
ただし、この辺の制限は on GKE で動かせば無さそうです。
コールドスタートについて
1時間ぐらいアクセスしないで再度アクセスしたところ、待たされる感覚はほぼ無し。どのくらいで止まるのか、それとも、起動がめっちゃ速いのか謎ですがかなりイイ感じです。
まとめ
KNative ベースで作成したサービスを出してきた GCP さすがだなぁという感じです。 Google Cloud Functions との棲み分けをどうしていくか今後気になりなる部分もあり、目が離せないと思いました。