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のログを確認したところ、定期リクエストを送っている間はコールドスタートは発生していないことが確認できた。


Related #gcp

GCP VMインスタンスのSSHポートを変更した

Network Internet Egress from Americas to EMEA

[Action Required] Free Container Scanning ends

お試しで使っていたコンテナイメージの脆弱性スキャンを無効にした

GCPの無料インスタンスがF1-microからE2-Microに変わった

メールが来ていたのを見落としていた

[Action Required] Internal error has affected services in Cloud Run that use Cloud Load Balancing

デフォルトURLで利用している場合は対応不要

ローカルディレクトリをCloud Storageに同期する

gsutil rsyncを利用した