Node-RED がだんだん理解できてきた気がするので、以前に投稿した以下の2つのネタをベースに、
IBM Cloud 環境で「いろいろ遊ぶのに好都合な Node-RED 環境」をサクッと構築してみたいとおもいます。我が身(財布)での実験も兼ねて!
【2020年5月20日 追記】IBM Cloud Foundry Public プラン変更のお知らせ によると無料枠が削除もしく削減されたようです。請求情報を確認し、また不要なアプリ・メモリ設定は見直しましょう!まずは IBM Cloudのアカウント種別と課金状況の確認方法 ページを参照してください。
最初はアカウントの準備
まずは IBM Cloud アカウント でログオンします。
アカウントが無い場合には、メアドを入力して新規作成してください。そして今回の投稿では、そのまま従量課金(PAYG)アカウントにアップグレードすることをお勧めします。このほうが同じ無料の枠内でも、より快適な環境が利用できると思われるからです。
そして ダッシュボード を開き、過去に作成したアプリやサービスがあったら、とりあえず全部削除してしましょう。今回は無料枠で利用できる環境を、めいっぱい Node-RED 環境で利用しつくす、がコンセプトだからです。それ以外の利用があると上限を超えてしまうかもしれません。
次はアプリの作成
簡単な始め方 を参考に、「スターターキット」にある「Node-RED Starter」を作成します。
アプリ名とホスト名だけ入力して、「作成」すれば Node-RED 環境が構築されます。この簡単さが嬉しいですよね!
ただ今回は、ちゃんとプランの部分も確認しておきましょう。Cloudant DB が無料の Lite プランなのを確認し、またSDK for Node.js の デフォルト プランの内容もよく確認しておきます。
なおアプリ名は自由ですが、将来誰かに公開することも考え、ホスト名はきちんと考えて付けましょう。まあ短くて良さげな名前はわりと取られていますけれどもw
ダッシュボードで確認
無事にアプリが作成されたら、ダッシュボードで状況を確認しましょう。
以下の赤枠の2箇所が確認ポイントで、作成した Node-RED のメモリー量が 512MB 以下で、Cloudant サービスが Lite プランなことを確認します。
Cloudant なのですが、Cloud Factory サービスと単にサービス、二か所にリストされているのが謎ですよね。どうやらこれらは同じもののようで、片方は別名のようです。このへん に詳細が説明されています。
リソースグループへのマイグレーション
Cloudant の Cloud Factory サービスのほうに、謎のアイコンが表示されていることに気がつきました。これ実施すれば、二重表示は無くなるのかも?ですね。
早速、クリックして「リソース・グループへのマイグレーション」とやらを実行してみます。
あっさり簡単にマイグレーションは完了。
しかしダッシュボードでの重複表示は変わらず。アイコンが変わっただけでした…
ええ、ご親切にどうも…
まあ「リソース・グループ」は新しい機能で、権限管理も容易になるそう ですから、まあ良いことをしたと思いましょう… (でも特にお勧めはしません)
メモリー量を増やして快適に
さて今回作成したアプリですが、SDK for Node.js の デフォルト プランの内容を再確認してみましょう。
無料で30日間、そして「375GB 時間無料」という言葉が気になりますね。375GBを月の最大日数 31日 で割り、更に 24時間 で割ると、答えは 「0.504GB 時間」になります。これは「516MB 時間」です。つまりは 516MB を超えないメモリ量でアプリを稼働するのは無料の枠内、となりますね。
これは あれ、ちょっとお得かも? で発見した、以下の事実と符合します。
ライト・アカウントでは利用できるメモリ容量の上限が 256MB だけど、従量課金(PAYG)アカウントで Node.js のサービス価格を計算してみると、なんと 512MB までは月額料金が無料(FREE)と表示される
この投稿で、従量課金(PAYG)アカウントにアップグレードすることをお勧めした理由がコレです。初期設定の 256MB はメモリー量としてはあまり多くなく、Node-RED を快適にサクサク利用するには少し不足気味に思えます。なので無料枠の範囲内で、最大の値を設定しておきましょう!
ダッシュボードからNode-RED アプリを開き、
メモリー量を 512MB に変更して「保存」します。
以下のような警告が出ますが、そのまま「閉じる」をクリック。
アプリが自動的に再起動して、512MB のメモリ設定で Node-RED アプリが利用可能になります。
後は使うだけ
再起動が終わり、ステータスが実行中になったら、「アプリ URL にアクセス」メニューから Node-RED アプリにアクセスして使い始めましょう!
availability-monitoring?
設定など変えていたら、いつの間にかダッシュボード上でアプリに対してサービスが追加されていた件。
アプリの状態を監視してくれるサービスのようですね。
まあ無料の Lite プランなので、とりあえず気にしないことにしますw
無料枠についての実情
計算上は無料枠の範囲に収まるハズなのですが、サービスの詳細を見るたび
みたいに金額が増えていくのは、やっぱ慣れないし、少し怖いですね。
私が今回の投稿のアプリ設定を実施したのが2018年の10月31日です。2018年の11月はずっとこの設定でアプリを動かし続ける予定ですので、11月の請求状況などがわかったら、この章に追記しますね。
アカウントのアップグレードに不安のある方は、それを待ってもらっても良いかもしれません。
【追記】請求情報について
というわけで1ヶ月以上を運用していますが、11月の請求は来ていません。12月16日現在もダッシュボードでは以下のように金額が表示されていますが…
請求情報の見積ページを開くと0円表示になっています。
というわけで、512MBでサクサク動く Node-RED 環境、無料枠の範囲で今後も使っていけそうですね!
【更に追記】請求情報について
512MBでサクサク動く Node-RED 環境ですが、2019年8月の今も稼働したままです。そしてIBM Cloud からの請求は1度も来ていない、と記憶しています。大丈夫そうですね!
【2020年5月20日 追記】無料枠の削減について
IBM Cloud Foundry Public プラン変更のお知らせ によると無料枠が削除もしく削減されたようです。請求情報を確認し、また不要なアプリ・メモリ設定は見直しましょう!まずは IBM Cloudのアカウント種別と課金状況の確認方法 ページを参照してください。
Cloudant サービスの役割
ところで今回の Node-RED アプリにおいて、Cloudant サービスはどんな役割を果たしているのでしょうか?せっかくですので、Cloudant サービスにある
から中身をざっと見てみましょう。Node-REDを起動した直後の状態ですと
と、利用サイズも小さく、文書数も2しか無いのがわかります。その中身は
となっています。
_design/library 文書のほうは短い関数定義が2つあるだけ、です。サイズも小さいですし、これはまた別の機会に探ることにします。
node-red/settings 文書ですが、これは Node-RED の設定ファイルのうち .config.json ファイルとほぼ同じ内容が入っているようです。Windowsでローカルに動かしている場合の以下のファイルが該当。
これら設定情報が Cloudant DB に格納されているわけですね。これくらいなら、普通に Node-RED を操作するぶんには、Cloudant サービスの Lite プランの範疇で十分に収まりそうです。
サービスの再始動などでローカルに保存したファイルが消える(pushした状態に巻き戻る)ことも多いCFのクラウド環境です。設定情報などを Cloudant サービスで保持することで、情報の永続化を実現しているようです。このへん、ちょっと興味がありますので、また別途、詳しく調べたいとおもいます!
何か変だな?と思ったら
Support - Bluemix Dev から各サービスの稼働状況を確認すると良い模様。
というわけで
いろいろ記述したらこのページは長くなってしまいましたが、まとめると、
- IBM Cloud アカウントを作成し、従量課金(PAYG)アカウントにアップグレード
- 「スターターキット」にある「Node-RED Starter」を作成 (名前の指定のみ)
- メモリー量を 512MB に増やす
と3ステップで、10分もあれば自由にサクサク使える自分だけの Node-RED 環境を手に入れることができそうです。
私自身もこの環境でいろいろ試したいと思っていますので、何か気がついたことがあれば追記していきます。皆で Node-RED 環境で遊びまくって、いろいろ楽しいアプリやサービスを作成してみてください!
ではでは。