AWS IoTについて簡単にまとめてみた

こんにちは!Bogartです。

IoT(Internet of Things)、モノのインターネットという言葉を巷ではよく聞くようになってきました。
そんな中、先日AWSよりAWS IoTというサービスが発表されました。今回はそんなAWS IoTについて概要を書いていきたいと思います。

そもそもIoTとは

センサー等の物理的なパーツがネットワークに接続することで、更に高い価値を提供する仕組みだと考えています。

例えば、
メンテナンスの時期が来たら通知する工場機械
天候に合わせて自動的に温度管理を行うビニールハウス
交通状況をセンサーから取得して最適なルートを選択するカーナビ

などなど、様々なデータが大きなネットワークに繋がることでメリットを出せるものだと考えています。

実際にAmazonでも、バーコードを調べればAmazonで同様の商品が購入出来る、Amazon DASHや洗濯機に置いておくことで水の流れた量で次の洗剤を自動的に購入するAmazon DASHボタン等が提供されています。

AWSで挙げられている事例では、あきんどスシロー様の回転寿司のお皿の下にICチップを埋め込んでお寿司の鮮度管理をするといったものがあります。

AWS IoTの特徴

AWS IoT全体の特徴としては、今までIoT環境を実現する上で課題となっていたデバイスとの同期、セキュリティといった自前で作ろうとすると大変だった機構を、AWSによってマネージドされたサービスとして提供されている点にあると思います。

■MQTTに対応したメッセージブローカー
AWS IoTの大きな特徴の1つとして、ヘッダ容量が少なく Publish–subscribe形式のプロトコルである、MQTTに対応していることがあげられます。
HTTP/HTTPSセンサーデータをネットワークへ送信する場合、高価なセンサーが必要になることが多く、セキュリティを担保するために証明書を用意しなければならない等、高いハードルがありました。
MQTTを利用することでセンサー側の電力効率も非常に高く、またX509証明書とTLS1.2を使った相互認証がデフォルトで対応しています。

■デバイスSHADOW
IoTデバイスの場合、ネットワークと常に繋がっているとは限らず、それを管理するシステムを構築するのが1つの課題でもありました。
AWS IoTの中で提供されるデバイス SHADOWという機能を使うことで、デバイスが最後に通信した時の状態をデバイスSHADOWで保持し、デバイスが再びネットワークに繋がった時点で同期をとる、ということができます。

■デバイスレジストリ
デバイスSHADOWは各デバイスのステータスを管理するのに対し、こちらはセンサーの個体番号等のセンサーそのものの管理をするために利用するサービスとなります。
固有の番号がないデバイスに対してもデバイスレジストリ側で独自の番号を割り当てる、といったことも可能です。

■ルールエンジン
デバイスから送られてきたデータは、ルールエンジンによって評価をされ、適切に変換とエンドポイントへの配信をルールに従って実行するといったことが可能になります。
ルールエンジンへの記述はSQLライクなものになります。
ルールエンジンから操作できる、AWSへのリソースは現在のところ、S3・DynamoDB・ Kinesis・SNS・Lambdaの五種類で、それ以外のAWSリソースを使用したい場合はLambdaもしくはSNS等を利用する必要があります。

■既存のAWSサービスとの連携
AWSが提供する各種サービスを組み合わせることで、IoT基盤を構築する上で必要なデータ収集・活用・蓄積・分析環境をスピーディーに実現することが出来ます。

・Amazon Kinesis Stream (データ収集)
大量で連続したセンサーデータを収納し、高速でデータ処理基盤に伝送します。
センサーから収集されるデータに対してノイズ処理をしたいといったときに活用されます。

・AWS Lambda (データ活用)
センサーデバイスで発生したイベントをLambdaファンクションのトリガーとして携帯電話への通知等の処理を実行

・Amazon Redshift (データ蓄積・分析)
収集したデータを安価に中長期的に分析することができる基盤を構築

AWS IoTのコスト

IoTを介したメッセージ分量で課金される形式となっています。
東京リージョンの場合は、100万メッセージで8ドル
1メッセージは512バイトのブロックが上限となります。

いかがでしたでしょうか?
ナレコムでは特にIoT分野に注力しているので、実際に手を動かして操作をした場合の記事もアップしていきます!

次回もお楽しみに!

この記事を書いた人

aws-recipe-user