Heroku無料枠のスリープを回避する

Heroku の無料枠で動いているアプリケーションは 30 分間接続がないとスリープしてしまい、次に立ち上げたときに時間がかかってしまいます。が、実は回避する方法もあります。

スポンサーリンク

Heroku の無料枠の制限

一応説明しておくと、クレジットカードもしくはデビットカードを登録した無料アカウントでは、月 1,000dyno 時間まで無課金でアプリケーションを動かすことができます。

感覚的に 1dyno = 1 コアだと考えていいので、一つのアプリケーションを一か月動かしたら大体 720dyno 時間を消費します。

スリープを回避する方法

アプリが眠らないようにするためにすべきことは簡単です。30 分経つ前に叩き起こせばいいんです。

Web アプリケーションの場合は URL に接続するだけです。

URL に定期的に接続する方法はいくつかあると思いますが、今回は Heroku で完結させるために Heroku Scheduler アドオンを用います。

Heroku Scheduler の設定

まず、プロジェクトにアドオンを追加します。このアドオンはこの程度の処理であれば、無料で使うことができるものです。

その後 Heroku のサイトを見ると、プロジェクトのトップページのアドオンに Heroku Scheduler が出ているはずです。そこから GUI での設定画面に移動できます。

Web アプリケーションに接続するよう、コンテンツの取得などに使う curl を用います。

これを 10 分おきに実行するように設定しておけば、スリープしません。

注意点

スリープしないということは常に dyno 時間を消費し続けるので、二つ以上のアプリに設定すると共倒れします。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.