IoT関連のサーバーをAzure,Herokuで稼働させていましたが、2019年1月から全面的にIDCFクラウドでの運用に切り替えました

○きっかけ
クライアント企業からのIoTシステム構築に依頼を、従来のAzureかHerokuを使うかで決め兼ねていました。
今回はNode-REDで簡単にデモを組みたかったため、問題になりそうな部分を事前に試していたのですが、ダッシュボードへの認証の部分で引っかかってしまいました。
Node-REDがもつBASIC認証をかけようとしたのですが、HerokuのようなPaaSだと、どうも無理っぽいことがわかりました(編集は自動的にアカウントが設定される)。

Azureの場合は、Node-REDをデプロイしsettings.jsをいじれば、実現できることを確認しましたが、Azureは試しに使うにしてもどんどんコストがかかってしまうため、どうも精神的に落ち着きません。
そこでIaaSであるIDCFクラウドを試してみることにしました。

○IDCFクラウドとは
仮想マシンを構築するサービスで、最小構成なら非常に安価に利用することができます。Herokuなどはお試し範囲でなら無料で利用できますが、いざ運用しようとすると、やはり有料にアップグレードする必要がでてきます。
たとえば、node-RED(Webサーバー)も、無料版だと接続がなくなる(ブラウザを閉じる等)と、一定時間でスリープしてしまいます(ただスケジュールで連続起動させる方法もあるようですが...)。cloudMqttも無料版だと5クライアントまでです。
それぞれのサービスを有料版にすると、思ったよりコストがかかったりします(それでもAzureよりはぜんぜん安いですが...)。
IDCFクラウドはIaaSですので、複数のサービスをインストールしても初期コストは同じです。仮想マシン自体のキャパが不足したときにアップグレードすればよいので、気軽に使えます。

○構成
CentOS 7.2をベースに、mqtt-broker,Node-RED,mongodb等を入れ、SSL通信できるように構成しました。
当方はLinuxには慣れていないため、かなり時間がかかってしまいましたが、当初から必要だと考えていたサーバー機能をすべて盛り込むことができました。
このすべてインストールが済んだ状態を、テンプレートとして保存しておくことができるので、サーバーを増やしたいときには、数分でIoTサーバーが構築できます。

○クラウドの移行で思ったこと
予想以上にうまくいったので、思い切ってAzureとHerokuからすべてIDCFクラウドへ移行をすることにしました。「必要かつ十分」なサービスだけですが、コスト的には1/10くらいに圧縮できるのではないかと思います。

クラウドというと、AWSやGCP,Azureが有名どころですが、中小企業でIoTサーバーとして導入するには、少々、機能的に持て余してしまう気がします。
  • 機能が多すぎ
    やたらと機能があるので、それを理解するだけでも本当に大変です。やりたい事をするには、どのサービスを使えばいいのか?、把握するだけでも一苦労です。結局、思ったのと違っていて、また別なサービスを探して格闘するの繰り返しになります。
  • メニューの更新も多くてわかりにくい
    頻繁にメニュー構成や表記がかわるので、先日まであったメニューを探すだけでもうんざりします。最新の情報はネットの記事にも無いので、あちこちクリックして探しまくるしかありません。機能によっては、契約のグレードを上げないといけない場合もあり、どのくらいのコストアップになるのかも、(従量性なので)よくわからず、かなりストレスになります。
  • 高い
    食堂で小皿の料理を自分で取るスタイルの店があるが、それと良く似ています。取る時にセーブしないと、すぐ定食屋よりも高くなってしまいます。クラウドも同じで、サービスを繋いで利用することになるため、いろいろ組み合わせると結構高くなります。また従量制なので、後から請求が来て青くなったりします。中小企業の場合、量的にはしれているので、高負荷はあまり考える必要はなく、あえて大手のクラウドを選択する必要はないように思います。

IDCFクラウドのようなIaaSは、Unix系なので敷居が高くで敬遠していたのですが、今回、試してみて、下記のようなメリットが大きいことがわかりました。
  • ネット上に情報が豊富
    日本語、英語を含め、情報がたくさん見つかります。
  • コマンドを打ては動く
    ネットで探した情報から、コマンドをコピペすれば、とりあえず動かせます。Azureのようなサービスは、メニューを選択すれば設定できるので、一見、簡単そうにみえますが、メニューの意味がわからないと選択のしようがありません。ネット情報も古いものが多いので、あんまり役に立たず途方にくれます。
  • 安い
    サービス(サーバープログラム)のインストールは、無料なので、いくらでも試せます。IoTの場合、基本的には、1)Webサーバー[Web App]、2)mqtt Broker[IoT Hub]、3)ストレージサーバー[SQL等]の3つが必要になります([]はAzureのサービス)。Azureの場合、それぞれに固定料金がかかり、さらに送受信データ量に応じて従量制で料金が必要になります。IDCFクラウドの場合、仮想マシン1台という単位で固定料金がかかるだけなので、そのマシンにどれだけ必要なサービスをインストールしても、料金はかわりません。もちろん送受信データ量に応じて従量制での料金は必要になりますが、それは使った分としての支払いなので、納得がいきます。
以上