6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node-RED(enebular) を heroku で稼働させるときに、heroku を眠らせない(addons 無しで)

Last updated at Posted at 2019-01-22
  • 2019/01/22 タイトルを更新

知識材料

前提条件

利用環境

  • enebular
  • heroku

今回のゴール

heroku 無料プランは

30 分間何も操作が行われなかった場合はスリープ状態に移行

という制限があります。
世の中には、これを回避する方法が溢れていましたが、heroku にデプロイした Node-Red 自身が、簡単に回避策を実装出来そうなので試しました。

スリープ検証

heroku にデプロイしたアプリケーションを放置すると、スリープするのかどうかを検証しました。検証には heroku cli を使用します。

heroku ps -a [アプリ名] で、デプロイ済みアプリケーションの状況が確認できます。

アプリケーションが開始した時間と、今までの経過時間が表示されます。また、補助情報として heroku のログも見ておきます。
実装前起動

30分以上放置した後、再び heroku ps で、アプリケーションの状況を確認します。

実装前スリープ

放置後、約30分でスリープ状態 [idle] になりました。

実践

flow 作成

AllView

heroku にデプロイした時にスリープしてほしくないフローの端に、上記赤枠のノードを配置し、接続します。

[inject] -> [http request] -> [(debug) 無くても可]

[inject] ノード設定

「繰り返しフィールド」を、下記のように設定

  • 指定した時間間隔
  • 時間間隔 15分

inject-node

[http request] ノード

URL フィールドに、heroku にデプロイしたアプリケーションの URL を指定します
http-request-node

実行と結果

【1】作成した flow を heroku にデプロイします。デプロイ後に heroku ps で、アプリケーションの動作状況を確認します。
実装後起動

【2】30分以上放置した後、再び heroku ps で、アプリケーションの状況を確認します。

実装後スリープ

【3】30分以上経過しても、スリープ状態 [idle] に遷移しませんでした。

実装後スリープ2

【4】4時間経過までは見届けました。

まとめ

heroku addons を利用すればどんなアプリでもスリープ回避できますが、node-red だと自前でお手軽にスリープ回避できることを体験できました。ちょっと応用すれば、自前で死活監視もできるかと思います。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?