まえちゃんろぐ

日々の生活の中での気付き、学んだこと、体験したことをアウトプットするブログ(雑記多めです)| プログラミング 本 ワークアウト 茶道

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

time 2017/12/16

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

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

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

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

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

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

sponsored link

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

New Relic」というサービスを使用します。

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

New Relicは定期的にサーバーへ問い合わせをしてモニタリングを行なっています。その問い合わせはサーバーへのアクセスになります。つまり、その問い合わせを30分以内の間隔で行えばサーバーはスリープさせずに運用できるということです。

New Relicのインストール

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

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

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

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

New Relicの設定

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

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

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

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

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

1つ目の項目欄はアプリケーションの名前を入力(任意の名前で問題ない)し、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つ以上のアプリを常時稼働させておく場合は、今のところ他のアプローチを取るしかないようです。

おわり

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

こちらからは以上です。

販売中チケット

プログラミング、Webサービスの作り方教えます

自分のスキルを販売しております。お困りの方はご遠慮なくご連絡頂ければと思います。

コメント

down

コメントする




お知らせ

スポンサードリンク

書いてる人

maechan

maechan

ベンチャー企業、フリーランス、スタートアップを経験。開発業務、人事業務に従事していました。現在は農業系スタートアップ企業でエンジニアとして働いています。リモートワークをしているノマドサラリーマンです。詳しいプロフィールはこちら。 [詳細]

販売中チケット

プログラミング、Webサービスの作り方教えます 一人で悩まず!お気軽にご相談ください!

その他のチケットはこちら

Instagram