Cloud Runのコールドスタートを避けるためにcurlで起こし続ける
Cloud Runを利用する際にコールドスタートを避けるため、定期的にリクエストを送ってインスタンスを起こし続ける対応を行った。
同一のGCPプロジェクトで完結させるのであればCloud Schedulerを使うのが手軽だが、Cloud Schedulerの無料枠がアカウント単位で3つまでとなっている。
個人プロジェクトなこともありコストを抑えたかったので、自宅のRaspberry Piからcronでcurlを実行することにした。
↓のように平日(月~金)の7時~20時まで1分おきにCloud Runにリクエストを送るようにした。
* 7-20 * * 1-5 bash -lc '/usr/bin/curl -s "https://example.a.run.app/" -o /dev/null'
Cloud Runのログを確認したところ、定期リクエストを送っている間はコールドスタートは発生していないことが確認できた。