Cloud Runを
実行基盤として読む
コンテナをHTTPサービスまたは一回限りのJobとして動かし、運用単位を小さくする。
TL;DR
- コンテナイメージを実行するマネージド基盤。
- ServiceはHTTP待受、Jobは終了する処理。
- 負荷に応じてインスタンス数を変えられる。
01 コンテナをサービスにする
Artifact Registryなどのイメージを指定し、サービスアカウント、環境変数、ネットワークと一緒にCloud Runへ渡す。アプリを動かす箱と、箱を増減する基盤を分けて考える。

02 アクセスに合わせて増減する
リクエストがない時間と、アクセスが増えた時間では必要な実行数が違う。状態をコンテナ内に閉じず、DBや外部サービスへ逃がす発想が重要になる。

注意: 同時実行数、タイムアウト、DB接続数を一緒に検討する。
03 ServiceとJobを使い分ける
APIはリクエストを待つService、DBマイグレーションや定期バッチは終わったら停止するJobにする。実行権限とログも分けやすくなる。

結論
- HTTPはService、終了する処理はJob。
- コンテナとサービスアカウントを単位にする。
- 接続・秘密情報は別サービスで管理する。