こんばんはエンジニアの眠れない夜です。
Cloud Run は一定時間アクセスがないとサービスが停止してしまい、起動するのに時間がかかってしまいます。
そこで、常にウォーム状態(待機中)を維持できたら良いのに…
と思っている方におすすめの方法をご紹介します。
Cloud Run をウォーム状態(待機中)にするには、インスタンスの最小数を「1」にするという方法があります。
しかし、この方法だと必ずインスタンスが最低1つ起動しているので、インスタンスの料金が常に発生してしまいます。
これでは起動していない時はサーバー代が発生しないというクラウドランのうまみが半減してしまいます。
そこで、これとは別の方法を紹介します。
cron で定期的にアクセスする
Cloud Run は一定時間アクセスがないと自動的にコールド(完全に停止した状態)になってしまうという特徴があります。
※ どれくらいアクセスが無いと停止するかは公表されていません。
そのため定期的にクラウドランにアクセスしていればサービスが完全に停止してしまうことはありません。
cron を使って定期的にサイトにアクセスし続ければサービスが停止することはありません。
「* * * * * curl サイトのアドレス」
これをcronに設定するだけです。
しかし、この設定の弱点はcronを設定しているパソコンが停止するとスケジュールしたタスクが終了することです。
そこで、解決方法は次のモニタリングの稼働時間チェックを使う方法です。
モニタリングの稼働時間チェックを使う
Google クラウドの「モニタリング」の「稼働時間チェック」を開いてみてください。
これはサービスが正常に稼働しているかどうかをモニタリングする機能です。
Google のサーバーから定期的に特定のアドレスにアクセスして、死活監視を行います。
「稼働時間チェックの作成」を押して、タイトルを設定します。
それからターゲットのところに自分がアクセスしたいホームページの URL をセットします。
アクセスする頻度もここで設定できます。念のため一番短い1分を設定しておきます。
次へを押して、TEST、CREATEと進んでいくと設定は完了です。
これでクラウドランのサービスに定期的に自動でアクセスされるのでサービスが完全に停止してしまうのを防げます。
費用はどれくらい?
定期的にアクセスがあるので費用が少なからず発生します。
しかし、1ヶ月で数円〜数十円です。
アクセスがあった一瞬だけしか費用は発生しないのでアクセスしているページが異常に重くなければほとんどお金はかかりません。
費用が心配で限りなく安くしたい場合は稼働時間チェック専用のページを設けて限りなく軽く処理できるようなページにしておくというのも一つの方法です。
Cloud Run は限りなく費用をかけずに新しいサービスを世に送り出せる非常に便利なサービスです。
ぜひ皆さんもCloud Run を使って新しいアイデアをかたちにして世に送り出してください!
コメントを残す