最近、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ノードで終わる必要があります。
![](/wp-content/uploads/2024/06/image-1024x597.png)
一方、Herokuデプロイでは、LCDPノードは不要です。
![](/wp-content/uploads/2024/06/image-2.png)
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
![](/wp-content/uploads/2024/06/image-3-1024x189.png)
料金の確認
請求書を見てみると、途中でアプリを削除したため、以下の通りでした。
![](/wp-content/uploads/2024/06/c30ce3866aaae4edd38f871f060b3fbd-1024x846.png)
まとめ
Herokuデプロイを使うと、Node-REDのフローを簡単に永続的に実行できます。ただし、HerokuデプロイではHerokuのDynoとAddonのHeroku Postgresの料金が発生するため、費用の確認が必要です。クラウド実行環境は、2024年5月30日時点においては、enebularで無料で1プロジェクト2個まで作成可能です。作りたいフローの要件に応じて使い分けをしていただければと思います。