「Node-RED」で環境構築してみましょ!

ということで、、、環境構築してみましょう

とりあえず触ってみたい!という方は、IBM BluemixのLiteアカウントで登録して、Node-REDインスタンス起動するのが爆速構築手段かな?

ですが、
今回はスタートアップさんにオススメするため、あえて「さくらのVPS」での構築をご紹介します!
理由は「Node-REDとの出会いはsakura.io体験ハンズオン」だったことと、「スタートアップスクリプトが提供されていた」ことですね。
PoCや小規模運用規模はユーザ利用するのでドメイン未設定SSL証明書なしというわけにもいかないので、スタートアップスクリプトを改修してカスタムスクリプトで構築をスムーズに行っちゃおう!という魂胆です。

スタートアップスクリプトにNode-REDがあるので、それで起動してもよいのですが、さすがにSSL未対応というのは昨今の状況を考えれば雑過ぎなので、そのあたりをケアして少し使いやすい形にします。
さくらインターネットさんgithubでスクリプト公開されているのでそれをカスタマイズします

カスタムスクリプトはgithubで公開しています

事前に。。。
さくらインターネットさんのVPSの契約を済ませておいてください
どちらで取得いただいても構いませんが、ドメイン取得をお願いします

Node-RED+HTTPSに対応する

スタートアップスクリプトのCentOS_LetsEncryptCentOS_NodeRedを連結させれば基本的には完成です
でもせっかくCentOS_LetsEncryptnginx動かすわけですので、ちょっとこいつを有効活用します

https.confを少し加工してnginx->Node-REDにアクセスできるようになります

[https.conf]
location / {
     proxy_set_header X-Real-IP \$remote_addr;
     proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto \$scheme;
     proxy_set_header Host $http_host;
     proxy_pass http://127.0.0.1:1880;
     proxy_redirect off;
     # socket.io support
     proxy_http_version 1.1;
     proxy_set_header Upgrade \$http_upgrade;
     proxy_set_header Connection "upgrade";
}

メリットは2点
1) port:443でアクセスできるようになる(port:1880を入力する必要なし)
2) nginxでアクセスを制御できる

いちいちportを入力しなくてもよく、nginxでアクセスログの取得や制限をかせることができます。wordpressと共存なんてこともやり易くなりますね

Node-REDのpluginを設定する

backendサーバでDBを利用しないケースは少ないと思いますので、DBとmemcachedを設定しておきます

npm install --prefix /node-red-node-mysql            # MySQL
npm install --production node-red-contrib-cache      # memcached
pm2 restart node-red                                 # Node-REDに反映

実は小一時間MySQLの認証が通らず困ったのですが、実はMySQL 8系から認証プラグインが変更になっているそうで、node-red-node-mysqlは新しい認証方式に対応していないため、そのままでは利用できません。
そのため、MySQLにログインしてNode-RED用のユーザ作成が必要になります(認証方式関係なく、セキュリティ考えればユーザは作るか)
以前の認証方式でユーザを作る方法は詳しく MySQL8.0におけるデフォルトの認証プラグインの変更 で紹介されているので、そちらを参考にしてください。

いやー。。。読んでも意味わからんッスわー^^
な感じの方は、スクリプトを以下のように書き換えてもらえれば認証方式変更前のMySQL5.7をinstallできるので、こっちでもよいかもですよ。

# install mysql
# @see https://dev.mysql.com/downloads/repo/yum/
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
#rpm -ivh http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum -y install mysql-community-server

memcachedの設定についてはここに書いてあるので、設定変更して使ってくださいね。デフォルト設定のままは何かと危ないですので。

vi /etc/sysconfig/memcached

Node-RED flow editerを起動してみる

正常に動作完了していれは以下でログイン画面が表示されます

https://@@@@@your domain name@@@@@/

ほら簡単でしょ?

ということで、今回はここまで
次回は簡単なflowを作ってみたいなーーーーっと。


この記事が気に入ったらサポートをしてみませんか?