[クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜]

「AWS IoT」でソリューションを実現する【第9回】

2017年7月3日(月)清野 剛史(クラスメソッドAWS事業部ソリューションアーキテクト)

本連載ではこれまで、主にWebシステムやポータルサイトを想定し、AWS(Amazon Web Services)上での開発や運用管理のコツについて考えてきた。今回は少し視点を変えて、最終顧客や社会とつながるための仕組みであるIoT(Internet of Things:モノのインターネット)のソリューションをAWS上で、いかに実現できるかについて見てみよう。

クラウドからセンサーを操作・管理する

 次にセンサーをクラウドから操作する方法について考えてみよう。IoTにおいて、データ送信が確立した後に実現したいことの最大事項が、この「デバイスをメンテナンスするために遠隔操作したい」というものである。

 デバイスの遠隔操作は幅広い用途に使われる。具体的には、デバイスのファームアップデートや再起動処理などのメンテナンス作業、緊急時に作業デバイスを中止させるといった緊急処理、センサーで取得した気温・湿度データから空調機の設定を変更するといった自動処理などである。

 これらの遠隔操作をAWS IoTで実行するには、「shadow」という仕組みを使う。最大の特徴は「オフラインになっても操作手段が変わらないこと」にある。shadowはまずクラウド上にデバイス上と同じフォーマットのJSONを作る。JSON内には「desired」「reported」「delta」の3種類の項目がある。desiredがクラウドからの指示内容を、reportedが現在のデバイスの状態を、deltaはdesiredとreportedとの差分をそれぞれ表す。

 何かを操作したい場合は、クラウド上のdesiredを変更する。変更されたJSONはmqttプロトコルを使ってデバイス上にレプリケートされる。デバイス上ではdeltaの部分を見ながら処理する。処理の完了後はreportedを更新しクラウドと再びレプリケートするとdeltaの部分がなくなる。

 こうした手順を踏むため、デバイスがネットワークから切断されていたとしても、クラウド上のJSONを変更して指示するという内容は変わらない。デバイスがオンラインになるまでShadowはクラウド上で保持・待機され、オンラインになった時点でレプリケートが開始される(図2)。

図2:shadowはオンライン/オフラインの違いを吸収する図2:shadowはオンライン/オフラインの違いを吸収する
拡大画像表示

 逆に、回線が不安定な環境ではオフラインになりやすいため、緊急操作がデバイスまで伝わらないということが考えられる。そのような場合は、最近GA(General Available:一般利用可能)になった新サービス「Amazon Greengrass」を使用すると良いだろう。

 Greengrassは、上記で示したShadowやmqttの仕組みをそのままデバイス内部にコンテナとして持てる。「Lambda」までローカルにおける。これでオフラインになってもコンテナ内のリソースから異常値を検出し判断できるため、緊急操作までのすべてをデバイス内で実行できることになる(図3)。Greengrassは、これからのIoTのキーワードとなる「エッジコンピューティング」に欠かせないサービスになるので是非、覚えておこう。

図3:緊急操作にも対応できる「Amazon Greengrass」図3:緊急操作にも対応できる「Amazon Greengrass」
拡大画像表示
バックナンバー
クラウド活用パターン辞典〜Amazon Web Servicesを使い倒す!〜一覧へ
関連記事

「AWS IoT」でソリューションを実現する【第9回】 [ 2/3 ] 本連載ではこれまで、主にWebシステムやポータルサイトを想定し、AWS(Amazon Web Services)上での開発や運用管理のコツについて考えてきた。今回は少し視点を変えて、最終顧客や社会とつながるための仕組みであるIoT(Internet of Things:モノのインターネット)のソリューションをAWS上で、いかに実現できるかについて見てみよう。

PAGE TOP