HerokuでWebアプリケーションを立ち上げた場合に、無料枠で作成すると30分でサービスがスリープします。
その後アクセスすると、ページが開くまでに時間がかかってしまいます。
スリープを回避しておけば、いつアクセスしてもすぐにレスポンスが返ってくるようになります。
今回はNew Relicというサービスを使用して、スリープしてしまうのを回避する方法を紹介します。
無料のHerokuに割り当てられる時間やスリープについて
2021年9月現在で、Herokuに登録すると初めは無料で550時間割り当てられます。
デプロイしたHerokuが稼働することで時間が減っていきます。
複数デプロイして、それぞれ稼働すると、合算した稼働時間が割り当てられている時間から減っていきます。
この時間は毎月消費した分、回復して割り当てられます。
時間がなくなるとアクセスできなくなります。
スリープすると、そこからは消費されなくなります。
1ヶ月は720時間(30日 × 24時間 = 720時間)になるので、登録した状態でスリープなしで稼働すると、時間がなくなってしまいまいます。
クレジットカードを登録しておくと、使用できる時間が1000時間まで増えます。
なので、スリープを回避して無料枠のまま使う場合はクレジットカードを登録しておいた方がいいです。
登録していない場合は、月の後半で動かなくなってしまいます。
クレジットカードを登録する場合は、Herokuにログインして「Account Settings」のメニューから、Billingタブを選んで登録することができます。
New Relicに登録して回避する
無料で使用することができます。公式サイトは下記になります。

今回はNew Relicから、Herokuにデプロイしたアプリケーションにping
を投げてスリープするのを回避します。
New Relicのアカウントを登録する
New Relicのトップページから「Sign up」ボタンをクリックして、ユーザーを作成します。
ユーザー名とメールアドレスを入力します。
メールを送信したという画面になるので、メールをチェックします。
メールのリンクをクリックすると、パスワード入力画面になるのでパスワードを入れて、「Save Password」ボタンをクリックします。
後はデータセンターをアメリカまたはヨーロッパから選びます。「Save」ボタンをクリックすると登録完了です。
New Relicを使って、Herokuにpingを投げる
登録後に下記のような画面になりますが、無視して大丈夫です。
https://one.newrelic.comに移動します。
下記のような画面になるので、「add more data」をクリックします。
「Simulate traffic」の「New Relic Synthetics」を選択します。
「Availability」を選択します。
わかりやすい名前と、スリープを回避したいHerokuのURLを入力します。
入力したら「Select Locations」ボタンをクリックします。
Loactionを選んで、「Save monitor」ボタンをクリックすると設定完了です。
設定完了後、ダッシュボードの「Synthetic monitors」から対象を選択すると下記のようにSuccess rate(成功率)が表示されて、動いていることが確認できます。
これでHerokuのアプリケーションに対して、15分おきにpingを飛ばしてくれるのでスリープしなくなります。
終わりに
以上で、Herokuがスリープしないように設定が完了しました、簡単に設定ができたかと思います。
Heroku側では、「Account Settings」のメニューから、Billingタブから消費した時間を確認することができます。
何時間かおきに確認すると、減っていっているのがわかります。
コメント