Heroku デプロイについて

最近、Herokuデプロイ機能を使う機会があったので、その魅力と手順について詳しくご紹介したいと思います。

Herokuデプロイとは

Herokuデプロイとは、enebular上で編集したNode-REDのフローをHerokuのPaaS上で提供されるDynoというLinuxコンテナ上にデプロイし、実行できるようにする機能です。

Herokuがアプリケーション開発に必要なサーバー環境やインフラをすべて提供してくれますので、Node-REDユーザーは、フローの開発に集中できます。

enebularのクラウド実行環境との違い

enebularでは、Web flow editorやenebular editorというローカルエディターの2種類のNode-REDのフローエディターを使うことができますが、あくまで編集のためとなり、ずっとそのフローを動作し続けることはできません。そのため、Node-REDのフローを実行するため環境として「クラウド実行環境」が提供されています。

詳しくは、チュートリアルなどのドキュメントを参照していただきたいのですが、注意すべき点が1つあります。それは、クラウド実行環境で動かすためには、LCDPノードというノードでフローの前後をはさむ必要があります。つまり、LCDP inノードで始まり、LCDP outノードで終わる必要があります。

一方、Herokuデプロイでは、LCDPノードは不要です。

Heroku デプロイのメリット

Node-REDユーザーには、なじみのある方法でフローの作成が可能です。

Herokuデプロイであれば、Node-REDのInjectノードの繰り返し実行機能が使えます。一方、クラウド実行環境ではinjectノードによる繰り返し実行は使えませんが、スケジュールトリガー機能を用意しているため繰り返し実行自体は可能となっています。

また、Heroku デプロイであれば、Dashboardノードが使用できます。Node-REDで簡単にフォーム画面やグラフなどを描画することができます。残念ながら、その仕様上、クラウド実行環境ではDashboardノードは使用することができません。

Herokuデプロイの方法

Heroku デプロイを使うには、Herokuの契約を済ませておく必要があります。アカウントを作成し、クレジットカードの登録が必要です。

実際にデプロイしてみましょう。

詳しい手順は、ドキュメントを確認してください。

手順の中で、デプロイ先となるHerokuアプリをHerokuボタンから作成しますが、今回試したところ、以下の構成で作成されました。

  • Web : Basic dynos
  • Heroku Postgres : Essential 0

料金の確認

請求書を見てみると、途中でアプリを削除したため、以下の通りでした。

まとめ

Herokuデプロイを使うと、Node-REDのフローを簡単に永続的に実行できます。ただし、HerokuデプロイではHerokuのDynoとAddonのHeroku Postgresの料金が発生するため、費用の確認が必要です。クラウド実行環境は、2024年5月30日時点においては、enebularで無料で1プロジェクト2個まで作成可能です。作りたいフローの要件に応じて使い分けをしていただければと思います。