クラウド図鑑 Vol.45

IBMは、あまり知られていないが、IoT (Internet of Things モノのインターネット)、あるいは M2M (Machine to Machine 機械から機械)向けの通信プロトロル「MQTT (MQ Telemetry Transport)」の開発元である(正確にはIBMとEurotech社が1999年に開発し、仕様は現在オープンでロイヤリティフリー)。IBMのPaaS 「Bluemix」は、初期段階からMQTTプロトコルを搭載し、IoTに積極対応してきた。AWSの場合は、2015年12月に正式提供した「AWS IoT」でMQTTに本格対応し、Microsoftは「Azure IoT Suite」の中核コンポーネントである「IoT Hub」を2016年2月に正式提供しでMQTTに本格対応した。2016年1月の現時点ではプレビューである。MQTTの特徴は、HTTPプロトコルなどと比較して、軽量で高速、また、パブリッシュサブスクライブ方式でデバイスの通信に有用な機能を多く搭載していることだ。MQTTを活用した、国内事例としては、IBMによる北九州市のスマーター・シティー・プロジェクトがあり、電力設備、ビル・工場、住宅、交通インフラなどのデータをMQTTで通信している(注 Bluemixの例ではない)。Bluemixでは、MQTT対応の「Internet of Things Foundation」サービスでデバイスとの通信を行い、ビジュアル開発環境「Node-RED」でデータを処理しバックエンドのNoSQLデータベース「Cloudant」などに格納するようなアプリを短時間で開発できる簡単なアプリなら数時間程度で開発することも可能である。

IBM BluemixのNode-REDによるIoTアプリ開発の画面例
Bluemix IoT
(クリックで拡大)

URL  http://www.ibm.com/cloud-computing/jp/ja/bluemix/
2016年2月3日 株式会社クラウディット 中井雅也
他のIoTクラウドサービスを見る

機能

 IBM BluemixのIoTアーキテクチャは比較的シンプルで、「Internet of Things」サービスによってデバイスとの通信を行い、ビジュアル開発環境「Node-RED」でデバイスからのデータを処理して、バックエンドのデータベースにデータを格納、あるいは、Watsonなどのサービスで分析を行うというものだ。
 「Internet of Things Foundation」のサービスによって、MQTTプロトコル、あるいは、HTTPプロトコルによるデバイスとの通信とデバイスの管理・監視・診断などを行う。Internet of Things FoundationはMQTTのブローカーとして機能するが、クライアントのライブラリーは、Node.js、Python、Java、C#のものが用意されている。
 ゲートウェイデバイスは、Intel Edison、Raspberry PI、Arduinoなど主要なものには対応できる。
 デバイスからのデータを処理するアプリの開発のためにWebブラウザベースのビジュアル開発環境「Node-RED」が提供されている。プログラム部品(Node)をマウスによるビジュアルな操作でつないでいき、必要なコードを追加することで簡単にIoTアプリが開発できる。MQTTの入出力や、NoSQLデータベースの「Cloudant」、「MongoDB」、DWHの「dashDB」、通常のRDB「SQL Database」、Watsonの各種サービスや分析機能、Twitterなどを組み合わせることができる。アプリケーション開発のテンプレート(ボイラープレート)として「Internet of Things Foundation Starter」と「Node-RED Starter」が用意されているが、2016年1月時点ではベータとなっている。
 クラウド側のアプリはNode-REDだけでなく、Javaなどのプログラム言語でも開発可能だ。
 また、IoT関連のサービスとして、デバイスからのデータのリアルタイム分析を行う「IoT Real-Time Insights」とFlow Search CorporationによるIoTデータ分析の「flowthings.io」サービスも用意されている。

使いやすさ

数多くのサービスが日本語化されたBluemixのコンソールに統合されており、グラフィカルに設定・操作が可能。BluemixのベースとなっているPaaSソフトウェア「Cloud Foundry」のアーキテクチャにより、各サービスは一貫性のある「バインド」という操作でアプリから接続ができる。ただし、各サービスの内部は英語の画面があったり操作性も統一されていない。開発は、ローカル環境からコマンドライン使用(cfツール)、Git CLIでのデプロイ、Bluemix DevOps ServiceによるWeb IDEを使用するなどの方法に加えて、プラグインによって人気の高い統合開発環境のEclipseと連携が可能。アプリは、Node.jsやJavaなどに加えて、IBMのビジュアル開発環境「Node-RED」を使えば簡単なアプリなら1時間もかからずに作成可能。

マニュアルや書籍など

IBM Developer Worksから日本語で、Raspberry PI、Arduino、Pebbleのスマートウォッチ、ウェアラブル端末などを含む15種類チュートリアルが提供されている(2015年1月時点)。また、Developerworks recipesのサイトで、開発者どうしで、デバイスの接続方法や制御方法などの100種類の「レシピ」を共有している(2016年1月時点)。

拡張性

IoT Foundation との接続で、アプリケーションの複数インスタンス間でメッセージのロード・バランシングを実行するスケーラブルなアプリケーションを作成できる。
Bluemixでは、アプリに対してメモリーやCPUコアを追加することができる。またAuto-Scalingアドオンにより、CPUやメモリーなどの状況により、アプリケーションを自動的にスケールアウトして処理能力を拡張できる。

可用性

Bluemixでは、アプリのスケールアウトによる冗長化が可能。ただし、現時点ではデータセンターをまたがる冗長化のオプションは提供されていない。

SLA

2016年1月時点でBluemix全体のSLAが定義されていない。
2016年11月の最新のSLAドキュメントでは、Bluemix Publicを複数リージョンで分散配置した場合かBluemix Dedicated、Bluemix Localを地理的に離れたデータセンターに分散配置した場合でPlatform Serviceに対して99.95%の可用性を、単一の環境にBluemix Dedicated、Bluemix Localを配置した場合で99.5%の可用性をサービスレベルとして規定し、これに達しない場合は使用料金が割り引かれる。ただしIBMはSLAをよく変更するので(2016年だけで3バージョンある)、最新のSLAを確認する必要がある。

自動化機能

全てのIoT関連サービスはAPIで利用する。マネージドサービスとして提供されており、管理はIBMによって行われ運用タスクも自動化される

セキュリティ

登録されたすべてのデバイスへのアクセス、そして Bluemix やその他のプラットフォームでホストされているアプリケーションへのアクセスは、認証によって保護される。MQTTにおいてはTLS、あるいはHTTPにおいてはHTTPSで通信を暗号化できる。Bluemixは、パブリックのマルチテナントのPaaSだけでなく、パブリックのシングルテナントのPaaS「Bluemix Dedicated」、さらにオンプレミスの「Bluemix Local」のオプションがあるため、厳しいセキュリティの要件にもあわせることができる。

データセンターの場所

マルチテナントのパブリックPaaSとしてのBluemixは米国、イギリス、シドニーのデータセンターからの提供となる。ただし、利用できるサービスがリージョンによって異なるので、現時点では米国を選択するのが無難である。シングルテナントのBluemix DedicatedではSoftLayerの東京データセンターも選択できる。オンプレミスのBluemix Localは、当然だが任意のデータセンターで稼働させることができる。

実績・シェアなど

暖房機器などの家電を開発・製造するHEATECはBluemixを活用し、通信プロトコルとしてはMQTTを使用したIT基盤「OMOIKANet(オモイカネット、Open Multi-Objective Inter-Knowledge Architecture Network)」を開発した事例が公開されている。

エコシステム

Developerworks recipesのサイトで、開発者どうしで、デバイスの接続方法や制御方法などの100種類の「レシピ」を共有している(2016年1月時点)。

価格および支払い方法

Internet of Things Foundationサービスは無料枠で1ヶ月で最大20台のデバイス、100MBのデータトラフィック、1GBまで使用可能。無料枠を超えると、2100円/インスタンスの「ブロンズ」料金で100台までのデバイス、100Mのトラフィック、1GBのストレージまで使用可能、追加で21円/デバイス、1.05円/MBのトラフィック、105円/GBのストレージの料金。12600円/インスタンスの「シルバー」料金で3000台までのデバイス、100Mのトラフィック、1GBのストレージまで使用可能、追加で4.2円/デバイス、1.05円/MBのトラフィック、105円/GBのすtレージの料金。47300円/インスタンスの「ゴールド」料金で15000台までのデバイス、100Mのトラフィック、1GBのストレージまで使用可能、追加で3.15円/デバイス、1.05円/MBのトラフィック、105円/GBの料金。

Bluemixのアプリも、無料枠が用意されており、枠を超えると主に使用メモリーと利用時間に応じて費用が発生する。おおまかに、およそ512MBメモリーのインスタンスの月間あたり750時間の使用が無料枠の範囲であり、それを超えると1GBメモリーあたり7.35円/時間で課金される。