プログラミング

Herokuを無料プランで運用する場合はサーバーのスリープを防止しよう

個人開発者はよくお世話になっているであろう「Heroku」ですが、無料プランで運用するには不便な部分もあります。

それは30分間サーバーにアクセスがない場合、サーバーがスリープしてしまうことです。

サーバーがスリープしてしまうと、サーバーを復帰させるために5~10秒ほど待たなければならなくなります(その間は画面が真っ白)。

maechan
maechan
なんてこったい

これでは非常に使いづらいですが、このスリープを防止する方法は存在します。

今回はその方法をご紹介します。

Herokuのサーバーのスリープを阻止する方法

Herokuのサーバーのスリープを阻止するには、「New Relic」というサービスを使用します。

New Relicはアプリケーションの運用監視を行うクラウドサービスで、サーバーの状況をリアルタイムでモニタリングできます。

New Relicは、定期的にサーバーへ問い合わせをしてモニタリングを行なっています。その問い合わせはサーバーへのアクセスになります。

つまり、その問い合わせを30分以内の間隔で行えばサーバーはスリープさせずに運用できるということです。

maechan
maechan
やったね

New Relicのインストール

嬉しいことに、New RelicはHerokuのアドオンで提供されています。

maechan
maechan
Herokuちゃんステキ

Herokuのダッシュボードから運用しているアプリケーションを選択し「Resources」ページに遷移、Add-onsメニューから「New Relic」を検索します。

プランは「Wayne – Free」を選択します。こちらは無料プランになります。

アドオンが追加されました。

New Relicの設定

New Relicのインストールが完了したので、お次は設定です。

追加されたアドオンをクリックすると、New Relicのページに遷移します。

そのページにアプリケーションの各運用メニューが表示されているので、そこから「SYNTHETICS」を選択します。

ここから5つの設定をしていきます。

maechan
maechan
長いけどかんばってね。あとちょっと

New Relic 5つの設定

まずは「1. Choose your monitor type」ですが、これはモニタータイプです。ここは「Ping」を選択します。

次は「2. Enter the details」ですが、これは実際に監視するアプリケーションの設定です。

1つ目の項目欄はアプリケーションの名前を入力(任意の名前でOK)し、2つ目の項目欄には監視するアプリケーションのURLを入力します。3つ目の項目欄は空欄で構いません。

そして「3. Select monitoring locations」はロケーションの設定です。これは「Tokyo,JP」を選択します。

最後「4. Set the schedule」はアプリケーションを監視する間隔の設定です。30分より小さく設定する必要があるため「15 min」を選択し、「5. Get notified」はサーバーでアラートを検知した時に連絡を受信するメールアドレスを設定します。

設定が終了したら「Create my monitor」をクリックするとアプリケーション監視の設定が完了します。

気をつけるべき点

ただこの方法、気をつけるポイントがあります。

それは1アプリだけ運用している場合に限るということです。Herokuは月1000時間まで無料稼働枠を設けているのですが、その1000時間というのは全アプリの稼働時間の合計なのです。

例えばアプリを3つ運用している場合、その3つのアプリの稼働時間を合わせた時間が1000時間未満であれば無料ということです。

2つ以上のアプリを常時稼働させておく場合は、今のところ他のアプローチを取るしかないようです。

maechan
maechan
これは、うん、仕方ない

おわり

これで無料プランでHerokuを運用できるようになりました。

こちらからは以上です。

記事内の写真出典元

Rachael Gorjestani – Unsplash

ABOUT ME
maechan
ベンチャー、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。