初学者向けNode-REDハンズオン・ワークショップ用開発環境構築方法【3選】

この記事はNode-RED Advent Calendar 2021の13日目の内容となります。

f:id:ueponx:20211209140017p:plain

これまでIBM Cloudではライトアカウントを使用することで、ハンズオン時に学生さん達がクレジットカードを持っていない場合でも、Node-REDを使用することができました。 しかしながら、夏ごろに状況が変わりクレジットカードの登録が必須(完全に必須ではありませんが)となり、一般の方々にワークショップを行うのが難しい状況になりました。

私たちも学生さん向けにNode-REDのワークショップを予定していたこともあり、なんとかこのような状況が回避できないか情報を集めたところいくつかの方法がありましたので、 それについて紹介をしたいと思います。使い方などに関してはそれぞれあると思いますが、そちらは別途リンクなどを掲載していこうかなと思います。

PCがあるのであればローカル環境にNode-REDをインストールするというのでもよいのでは?というご意見もあるかと思いますが、 LINE APIなどを使用したサービスを行う場合には、アクセスするためにHTTPSの使用が必須となります。 そのため、今回紹介するサービスでは構築後に作成したサーバーへのアクセスがHTTPSでアクセスが可能であるということをポイントにしています。

Katacodaを使用する

www.katacoda.com

Katacodaは1時間の使い切りの環境でk8sDockerのようなコンテナ技術やサーバー系テクノロジーを手軽に学べるクラウドサービスになります。

  • 長所:SNSアカウント(GitHub含)を持っていれば、Node-REDの開発環境が使用可能。
  • 短所:構築した環境が時限式

長所についてはNode-REDに限らず、Katacodaで構築された環境のすべてが使用できます。(その他の開発環境も利用できます) 短所についてはサービスを開始してから1時間後に構築した環境が停止します。ただ、作成したフローをローカルに保存しておき、 また新たにNode-REDの環境を構築すれば、フローの動作に関しては問題なく動作します。 時限式ということでセキュリティ的には少し甘いかもしれないので、ワークショップの内容で個人情報を取り扱うのことは避けたほうがいいかもしれません。

自分はこちらの環境を使用してワークショップを行いましたが、1時間という時間でしたが、比較的詰まることもなくワークショップの実施ができました。

環境構築用リンク

www.katacoda.com

Node-REDの環境は整えてくれますが、ターミナルからnode-redを実行する必要があるので注意です。

【例】Katacodaでのワークショップ例

qiita.com

時限式とはいうものの、フローを保存しておけば開発を継続することができるのは非常にいい利点だと思います。

私の会社ではセキュリティポリシーによってローカルに開発環境を構築することができないので、ちょっとした実験ではこちらの環境をつかって実験していたりします。

Herokuを使用する

jp.heroku.com

2つ目の方法はHerokuを使用する方法になります。以下のリンクをクリックすることで環境の構築を行うことができます。

こちらはHerokuの無料アカウントを使用することで環境を構築できます。

  • 長所:無料のHerokuアカウントを取得することで開発環境を構築できる
  • 短所:構築された開発環境へのアクセスがないと停止される(再アクセスすると再起動します)

Herokuの無料アカウントは構築した環境へのアクセスが30分以上ないと環境が停止してしまいます。 ただ、その状態であっても再アクセスをすることで環境は再起動し、アクセスを行うことができます。 また、環境は保存されているので、長期間寝かせても再度環境構築を行う必要がない点も利点といえるでしょう。

ワークショップをしているときアクセスが滞るということはあまりないと思いますので、この短所は割と問題ないかもしれません。 ただ、ハッカソンなどで別の作業などをしていると、反応が悪くなるので注意しておきましょう。

環境構築用リンク(Herokuアカウントを作成後にクリックしてください)

https://heroku.com/deploy?template=https://github.com/joeartsea/node-red-heroku

こちらを使用したワークショップに関してはアドベントカレンダー23日目の@ishii-gifuさんのherokuとNode-REDでLINEボットをつくろうで紹介があると思いますので、こちらにお任せしたいと思います。

Gitpodを使用する

こちらは前者2つのサービスの中間に位置するようなサービスかなと思います。サービスは時限式ではありますが、一か月での使用時間が決まっているというタイプのものになります。

www.gitpod.io

Gitpotの登録は必要ですが、GitHubなどのアカウントなどを使用することができます。また、環境の構築にはGitHubリポジトリを経由させているのでオリジナルのものをクローンして参照するようにすれば自分好みの環境にも変更できるでしょう。

GitPodは聞きなれないサービスかもしれませんが以下の様な特徴があります。

  • 長所:アカウント連携だけで利用できる (GitHub,GitLab,Bitbucket)、多くのプログラム言語をサポート、ターミナルが利用できる
  • 短所:50 時間/月(無料枠)

月に50時間ということであれば、ワークショップでも問題なく使用することができるかなと思いますので、もはや短所とはいえないかもしれません。

また、Node-REDではあまり関係ないかもしれませんが、ブラウザ内でIDE(開発環境)が起動できるというのも他との違いかなと思います。

以下のリンクをクリックすることでNode-REDの構築を行ってくれます。

環境構築用リンク

https://gitpod.io/#https://github.com/ueponx/gitpod-node-red-starter-simple

以下をクローンしてもらって、自分の環境に設定して

https://github.com/ueponx/gitpod-node-red-starter-simple

https://gitpod.io/#https://github.com/ueponx/gitpod-node-red-starter-simpleのように#以降を自分の設定したリポジトリすればOKです。

リンクをクリックすると以下のように表示されて

f:id:ueponx:20211209134254p:plain

IDEが表示されます。この操作で自動でNode-REDは起動しますが、ターミナル内にでてくるURL(https://127.0.0.1:1880/admin)をマウスオーバーしてリンク先に進めばブラウザにNode-REDのフローエディタが表示されます。

IDEの表示とターミナル

f:id:ueponx:20211210224446p:plain

ターミナル部分の拡大

f:id:ueponx:20211210223406p:plain

使用時間はこちらから参照できます。

f:id:ueponx:20211210223744p:plain

あと、残り時間が気になるときには作成したワークスペースは停止させておきましょう。そうすることで残り時間を減らすことはありません。

ワークスペースの停止方法

f:id:ueponx:20211210224100p:plain

おわりに

クレジットカードを持っていない学生さん達でも容易に体験できるNode-REDの開発環境構築方法を3つ紹介しました。大学などよってはAWSなど学生ライセンスが付与されていて環境を使えるかたもいると思いますが、多くの方にNode-REDを知っていただくにはこのような手もいいかなと思います。

個人的なまとめとしては、

  • はじめてNode-REDを触ってみる程度であればKatacoda
  • 少し複雑なサービスを定期的にで使用する場合はHeroku
  • 開発環境やターミナルなどもほしいようなサービスを作る場合はGitpod

のような感じでしょうか。異論は認めますw。

情報を教えていただいた、@tseigoさん、@ishii-gifuさんありがとうございました。