LoginSignup
6
10

More than 5 years have passed since last update.

Amazon Linux にNode-REDを入れる手順

Last updated at Posted at 2017-12-27

あえてのAmazon Linux

IoTやデータ連携でお馴染みになった「Node-RED」、チュートリアルではAWS上ではUbuntu Serverを使用する方法が紹介されています。AWSなので、Amazon Linux上にNode-REDを入れる手順を確認しましたので書き記しておきます。
EC2上のAmazon Linuxを使う理由は、独自にシェルスクリプトやPythonで作ったプログラムをNode-REDで呼び出したり、API Gateway以外のトリガーを使用したいためです。

導入手順

EC2で、t2.microまたはt2.smallでインスタンスを作成します。Amazon Linux AMI 2017.09.1 (HVM), SSD Volume Type - ami-da9e2cbcを使用しました。セキュリティグループでは、ポート 1880を開放します。Node-REDは、ポート1880を利用します。
ユーザー名 ec2-userでSSH接続後、下記コマンドを実行していきます。

$ sudo su

# yum update && yum upgrade
# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# yum install nodejs
# npm install -g --unsafe-perm node-red

この時点でNode-REDを起動することができました。EC2のパブリック DNS (IPv4)に、:1880をつけてアクセスすればNode-REDが起動しますが、ログイン機能が有効になっていません。このままでは外から丸見えです。

次は、ログイン機能を有効にします。

# nano /usr/lib/node_modules/node-red/settings.js

adminAuth のコメントを解除し、認証機能を使用可能にします。
デフォルトのユーザー名は、admin。パスワードはハッシュ化されており、デフォルトは、password です。変更するには、公式サイトのSecurityのページを確認してください。

自動化

サーバー再起動時にNode-REDを自動起動させるために、PM2をインストールします。
下記を実行することで、再起動時にNode-REDが自動起動し、EC2のパブリック DNS (IPv4)に、:1880をつけてアクセス可能です。

# npm install -g pm2
# exit

$ pm2 start /usr/bin/node-red
$ pm2 startup amazon
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup amazon -u ec2-user --hp /home/ec2-user

$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup amazon -u ec2-user --hp /home/ec2-user
$ pm2 save

Node-REDログイン

EC2のパブリック DNS (IPv4)に、:1880をつけてアクセスすると、Node-REDのログイン画面が表示されます。
先ほど、adminAuthで設定したユーザー名とパスワードでログインします。
node-red_login.PNG

ログイン後、何も無いNode-REDのフロー定義画面が表示されますので、フローを作り、画面右上の「デプロイ」を実行することで、フローが作動します。デプロイすればNode-REDの画面が閉じていてもフローは動作し続けます。

たとえば、以下はオープンソースマーケティングオートメーション Mauticで新規顧客が登録されたときにWebhookを使ってSlack通知するフローです。こちらの記事にサンプルがあります。
node-red_mautic2slack.PNG

ノードの追加

Node-REDは、画面左側のメニューにあるノードと呼ばれる箱を配置することでフローを定義し、Slack通知のようなデータ連携やIoTデバイスのデータを呼び出すことができます。
ノードの追加は、画面右上の「三」→「パレットの管理」→「ノードを追加」にて、ノードを検索、検索後「ノードを追加」をクリックすると追加できます。
もしくは、SSH接続し、npm install でも追加可能です。

確認できたノード

  • iont-node-red-contrib-aws-iot-hub
    • AWS IoTと接続し、読み書きするためのノード
  • node-red-contrib-ibm-watson-iot
    • IBM Watson IoT Platformと接続
  • node-red-node-watson
    • IBM CloudのWatsonサービスを呼び出す
  • node-red-contrib-slack
    • Slackとの連携
  • node-red-contrib-play-audio
    • Webブラウザ経由で音声データの読み上げ
  • node-red-contrib-browser-utils
    • Webブラウザ経由でマイクが使用可能

Node-RED Library からノードやサンプルフローを検索することもできます。

まとめ

Node-REDはNode.js上でどこでも動かせるのが強み。ということで、IBM Cloud以外、AWSでも容易に動かすことができます。ビジネスでデータ連携を行う場合、何度も試行錯誤を繰り返しますし、その度にスクリプトやプログラムを作り直すことは非現実的です。
Node-REDを使うことで何度もトライし、データ連携やIoTデバイスとの連携を行うことができます。

6
10
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
10