AWS IoTを構成する要素は次の通りだ。
AWS IoTを構成する、IoTデバイス側の要素は「AWS IoT Device SDK(Software Development Kit)」。これによって、IoTデバイスが、「HTTP(Hypertext Transfer Protocol) 1.1」あるいは「MQTT(Message Queue Telemetry Transport)」でメッセージを送れるようになる。汎用プロトコルしか使っておらず、ベンダーロックインがないことを、AWSでは強調している。MQTTはモノの接続ではよく使われており、スループット、バッテリー消費の少なさ、ネットワーク負荷の小ささなどの点で、HTTPを大幅に上回るというのが選択の理由だ。
同SDKは、「JavaScript」「C」「Arduino Yun」で提供されている。JavaScriptでは幅広い機器やアプリをカバーし、C、Arduino Yunでは組み込み機器に対応する。「iOS」「Android」機器では「Mobile SDK」も使える。
AWS IoTの発表と同時に、スターターキットが各社から提供開始されている。具体的には、インテル、ルネサス、BeagleBone、MediaTek、TI、Arrow、Arduino、Avnet、Marvel、Microchip、TI、Seeduinoといった企業や組織が、組み込み開発ボードでAWS Iot Device SDKを走らせ、これにセンサーやアクチュエーターを組み合わせたものを販売している。従って、用途によってはモノへのSDKの実装作業なしに、これらのボードを使って、AWS IoTを使うためのIoTデバイス側の開発を短期間で実行できる。
AWS側では、HTTPあるいはMQTTで、IoTデバイスから送られるメッセージを受けるゲートウエイサービスが動いている。逆にこのゲートウエイから制御信号などのメッセージをデバイスに送ることもできる。おびただしい数のIoTデバイスと接続したとしても、自動スケーリングによって常に必要十分な処理能力を提供できるという。
関連して、IoTデバイスは「AWS Management Console」を通じて管理できる。各デバイスは「IoT Registry」に登録され、個々の情報に基づくデバイス管理が可能になっている。「X.509証明書」も発行でき、デフォルトでデバイス認証と通信の暗号化が実行される。
「Device Gateway」に届いたメッセージは、次に「Rules Engine(ルールエンジン)」の対象となる。ここでは、シンプルなSQL(Structured Query Language:構造化クエリ言語)的記述によって、ユーザーがルールを設定し、メッセージのフィルタリングや文字列の操作、簡単な演算処理を適用したのち、適切なAWSサービスに対するアクションを実行できる。直接の対象となれるのは「DynamoDB」「Kinesis」「S3」「SNS」、Lambda。具体的には、S3バケットへのオブジェクトの保存、Lambda関数の呼び出し、「DynamoDBテーブル」の更新や読み出し、「Kinesisストリーム」へのパブリッシュ、「SNSトピック」あるいは「エンドポイント」へのパブリッシュ、「Kinesis Firehose」の利用、AWS IoTへの再パブリッシュが可能。
これらのいずれかを経由して、他のAWSサービスや外部のサービス/アプリケーションを呼び出せる。
「Thing Shadow」は、文字通り「モノの影」。あるIoTデバイスが何らかの理由で通信できない状態にあるとき、AWS IoTのサービスからは、このデバイスがあたかもつながっているかのように、メッセージを送る、ステートを更新するといった処理を実行できる。つまり、Thing Shadowは、個々のIoTデバイスを仮想的に表現したものだ。つながっていなかったIoTデバイスは、次回の再接続時に、バッファリングされていたメッセージをまとめて受け取ることができる。
AWS IoTは、米AWSでモバイルとIoTを統括するモバイル担当副社長、マルコ・アルジェンティ氏が話していたように、デバイスとサービスの間の分離を特徴とする。IoTデバイスはできるだけシンプルなメッセージのやりとりに徹することができる。あとは、Rules EngineおよびAWS上の関連サービスの活用により、クラウド側で各種のアプリケーションを迅速に開発できるようになっている。
このサービスは、US East、US West、アイルランド、東京の4リージョンでβ提供が開始された。料金は従量課金で、百万メッセージ当たり5米ドル(東京リージョンのみ8米ドル)となっている。
Copyright © ITmedia, Inc. All Rights Reserved.