要約

  • Cloud Runの最小インスタンスは応答遅延を減らすために温かい容量を保ち、待機中も課金される。Googleは個々のインスタンスがいつでも再起動され、最低数はベストエフォートの目標だと説明する。
  • インスタンス単位の課金はリクエスト外でもCPUを使えるようにするが、待機中のコンテナも停止され得る。SIGTERMを処理した場合の猶予は10秒だ。

空席をなくしても、同じ係員が残るわけではない

最初のリクエストを待たせたくないサービスは、コンテナを温めておける。リクエスト単位の課金なら待機中は低い料金、インスタンス単位なら起動から停止まで通常の料金がかかる。支払いの対象は、すぐ応答できる容量である。

その容量を占めるプロセスには別の時計がある。Googleの文書は最小インスタンスの再起動がいつでもあり得ると明記する。設定値も努力目標で、地域の容量不足、設備の再配置、アプリの障害、割り当て上限や請求制限で一時的に割り込む。高可用性のために3台以上を勧めていても、特定の一台のメモリを仕事の終点まで守る約束ではない。

インスタンス単位課金は、応答後もCPUを割り当てる。短いバックグラウンド処理には役立つ。しかし温められた待機コンテナも停止され得る。SIGTERMを受けたとき、処理を終えるか状態を保存する猶予は10秒。続きが必要な仕事には永続記録と再試行が要る。GoogleはCloud Tasksの再試行を案内し、単一の長寿命プロセス向けには再起動方針を持ち最大7日間連続稼働できる別のCloud Run instance資源を示す。

予算担当者は何を買うかを分けて考えたい。最小インスタンスは応答時間を扱う。仕事の完了は再試行記録と状態管理で扱う。Googleは主に暇な単一プロセスでは別のinstance資源の方が安い場合もあると述べるが、実際の価格は負荷と料金項目次第だ。個別の答えには再起動、処理時間、復旧、応答遅延と請求の記録が必要になる。

出典