オブジェクトの広場は株式会社オージス総研グループのエンジニアによる技術発表サイトです

クラウド/Webサービス

IoT 普及を加速させる IoT プラットフォーム SORACOM と AWS IoT

ソラコム社・アマゾンウェブサービスジャパン社 共催セミナー 参加レポート
オージス総研
大西 洋平
2016年1月14日

2015/12/10(木)に開催されたソラコム社アマゾンウェブサービスジャパン社共催のセミナーに参加しました。本セミナーの主題はソラコム社が発表したIoT向けモバイルデータ通信サービス「SORACOM」、およびアマゾンウェブサービスジャパン社が発表したIoT向けのクラウドサービス「AWS IoT」の紹介です。近年デバイス側およびクラウド側の要素技術が成熟し、IoTの技術障壁が解消されつつありますが、デバイスとクラウドをつなぐネットワークとセキュリティが重要な課題として残されていました。SORACOMとAWS IoTの組み合わせは、これらの課題を解決し、IoT普及の大きな後押しになると予想されます。本記事ではすでにIoTに取り組んでいる技術者目線で、筆者が特に注目する両サービスの特徴を紹介します。

IoT向けプログラマブルなデータ通信サービス「SORACOM」

IoT向けプログラマブルなデータ通信サービス「SORACOM」

ソラコム社セミナー資料 より引用)

セミナーのトップバッターは、株式会社ソラコムの片山暁雄氏。片山氏からはSORACOMを提供するにいたった背景とサービス「SORACOM Air」および「SORACOM Beam」ついて紹介がありました。

本節では筆者が特に注目している点を中心に紹介します。ソラコム社やそのサービス自体の説明は、ソラコム社の開発者向けWebサイトSlidesahre上に公開されている資料 に概要が記載されていますので、そちらをご参照ください。

IoTが抱える課題「安価なサーバ接続」と「安全な通信経路」を解決

SORACOMは、現在、以下の2つのサービスを提供しています。ここでは、特に画期的な点をご紹介します。

  • SORACOM Air ・・・ IoTデバイス向けの3G/LTEデータ通信用SIM、Webコンソールによる通信の管理・監視サービス。
  • SORACOM Beam ・・・ データ通信上の負荷の高い暗号化処理をIoTデバイスに代わって行うサービス。

SORACOM Air による「安価なサーバ接続」

SORACOM Air

ソラコム社セミナー資料 より引用)

これまで 3G/LTE 通信は初期費用および月額費用が非常に高額だったため、従来の安価なIoTデバイスは有線・無線LANに接続するか、インターネットとのゲートウェイとなるデバイス(スマートフォン)にBluetoothで接続することで、サーバへの接続を行っていました。しかし、LANが必ずしも確保できない場合があったり、デバイス側に接続方法(無線LANのSSID・パスワードなど)を保持しておく必要があったり、課題がありました。

SORACOM Air では、料金表 を見てお分かりの通り、月額費用も格安、通信量も従量課金であり、通信量が少ないIoTデバイスであれば3G/LTEを導入することが現実的になりました。3G/LTEの場合、SIMを挿せばデータ通信が可能なため導入が非常に簡単です。さらにSORACOMではSIMの開通作業、料金プランの変更、通信停止などは自分でWebコンソールやAPIから行うことができます。これにより、ほかの手段に比べて、運用においても非常に楽になったといえます。

SORACOM Beamによる「安全な通信経路」の確保

SORACOM Beam

ソラコム社セミナー資料 より引用)

IoTデバイスをインターネットを経由して安全にサーバに接続する場合、以下のような対策が必要になります。

  • データの漏洩を防ぐためデバイスからサーバまでの通信経路を暗号化する(デバイス、無線基地局、さらにクラウド上のサーバまでを含む)。
  • サーバへの不正アクセスを防ぐため、許可されたデバイスが接続していることを証明するためのデバイス認証を行う。

従来の3G/LTEデータ通信サービスでも、通信モジュールで負荷の高い暗号処理を行ったり、3G/LTE基地局によるSIM認証の認証情報を保管したりするなど、省リソースなIoTデバイスでも安全な通信経路を確保するための対策が取られていました。

しかし、無線基地局だけでなく、後述のAWS IoTなどのようにクラウド上のサーバがデバイスに対してクライアント認証を要求する場合に、秘密鍵やクライアント証明書など認証情報をIoTデバイス側で保管し、サーバに提供せざるをえませんでした。仮にデバイス側の認証情報が流出した場合、悪意のある第3者によってサーバへの不正アクセスが行われる可能性があります。よって、デバイス上から機密情報の流出を防ぐ対策が必要なほか、流出しても問題ないよう認証情報には有効期限を設定し、暗号化された通信経路を経由して定期的に入れ替えするなどの対策を行う必要がありました。

SORACOM Beamの場合、SORACOMのサーバが最終接続先のサーバに対してTLSによる接続を行い、クライアント認証もデバイスに代わって行うため、デバイス側でサーバ接続に必要な認証情報を保持する必要がなくなります。後述のAWS IoTと組み合わせて使う場合を例に説明すると、AWS IoTがデバイスに要求するクライアント証明書は、SORACOMのAPIを使い、SORACOM Beam上に設定すればAWS IoTの認証はSORACOMが行ってくれます。よって、デバイス側の負担が大きく軽減されました。

前半のまとめ

ソラコム社が格安の3G/LTEデータ通信サービスを提供し始めたことにより、IoTデバイスでも3G/LTEデータ通信を導入することが現実的になりました。また、SORACOM BeamによってIoTデバイス側で暗号化処理や機密情報の管理を行うことなく、通信経路の暗号化およびサーバの認証を行えるようになりました。

今回詳しくお伝えできませんでしたが、SORACOMの特徴はSIM管理のためのAPIを提供しており、データ通信サービスが「プログラマブル」になっている点です。これにより、以前の3G/LTEデータ通信サービスに比べて運用が非常に効率的になっていく可能性があります。SORACOMのユーザグループ も発足したので、今後いろいろな活用法が公開されると期待できます。

IoT 向けのクラウドプラットフォーム「AWS IoT」

2つ目の講演はアマゾンウェブサービスジャパン 榎並 利晃 氏によるAWSの最新情報およびIoT向け新サービス「AWS IoT」の紹介でした。

AWS IoTOverview

アマゾン社セミナー資料より引用)

AWS IoTはデバイスと様々なAWSサービスをセキュアに相互接続し、デバイスデータに対する処理やデバイスへのコマンド配信が可能になるサービスです。AWS IoT自体については、2015年12月号公開のハンズオン参加レポート「これならできる!AWS IoT ハンズオン 参加レポート AWS~IoTで作る簡単IoT環境~」で詳しく紹介していますのでこちらをご覧ください。ここでは筆者が特に注目する点についてご紹介します。

ついにマネージドサービスによる MQTT ブローカーが登場

デバイスゲートウェイ

アマゾン社セミナー資料より引用)

IoTを実現する上では、デバイス・サーバ間に対して以下のような要求が求められることが多いため、HTTPではなくMQTTという通信プロトコルを利用することが多くあります。

  • 省電力などの省リソース制約から軽量なプロトコルが求められる
  • デバイスからデータを吸い上げるだけでなく、サーバからデバイスへ通知を行う必要がある

しかし、これまでAWSでMQTTは公式にサポートされていなかったため、コミュニティやWeb上の記事でも自前でEC2にMQTTブローカーを導入するケースが多く紹介されていました。しかし、セッションレスなHTTPと比較して、セッション維持型のプロトコルである MQTT のブローカーをスケールアウトさせることは困難なため、大規模なシステムでAWS上にMQTTブローカーを導入することは困難でした。

今回、AWS IoTにより、マネージドなMQTTブローカーが導入されたことにより、開発者はサーバ側のスケールアウトの仕組みを気にすることなくアプリケーション開発に専念できるようになりました。

IAM、Cognito、クライアント証明書による認証・認可のサポート

デバイスゲートウェイ

アマゾン社セミナー資料より引用)

悪意のある第3者による不正アクセスを防ぐため、AWS IoTではクライアントの認証を行っています。認証方式としては、従来からあるIAMやCognitoの他、クライアント証明書もサポートしています。さらに、AWSサービスへのアクセス認可には他のAWSサービスと同じ仕組みを利用します(IAMロール、セキュリティポリシー)。

Q&Aセッションにおいて、筆者が質問したところによると、クライアント証明書はAWS IoTにおいてセキュリティポリシーを設定したい単位で用意するということでした。SORACOM Beamと併用する場合、SORACOM BeamがAWS IoTに対する認証を行うため、必ずしも物理的なデバイスの単位で用意する必要はありません。最初は証明書1個から始め、運用上、増やさないと都合が悪いようであれば証明書を増やしていく方が良いようです。この点から、AWS IoTとSORACOMは非常に良い補完関係にあることが分かります。

デバイスシャドウとルールエンジンでイベント処理を自動化

AWS IoTはただのMQTTブローカーではなく、IoTを実現する上で必要となる便利な機能として、さらに以下が提供されています。

  • デバイスシャドウ ・・・ クラウド上で仮想的にデバイスの状態を保持する仕組み。デバイスもしくはクラウド上のデバイスシャドウの状態が変更された場合、両者の状態の同期が行われる。
  • ルールエンジン ・・・ AWS IoTにおいてイベント処理を行うためのツール。SQL風の文法で記述したルールで、デバイスからの通知を加工したり、内容に応じて適切なAWSサービスを呼び出したりする。

省電力が要求されるデバイスは普段はスリープモードに入っていることが多く、サーバからデバイスに対して何らかの通知を行おうとしても、メッセージの取りこぼしが発生する可能性があります。AWS IoTのデバイスシャドウを利用すると、物理的なデバイスとクラウド上の仮想的なデバイスの状態同期の仕組みをAWS IoTに委譲できるため、クラウドサービスの開発者は物理的なデバイスの稼動状態を意識することなく、デバイスの状態管理を伴うアプリケーション開発に専念できます。

また、ルールエンジンによって、SQL風のルール記述のみでデバイスの状態変更に伴うイベント処理が実現できるようになりました。AWS IoT登場以前は、EC2上のアプリやLamdaファンクションを実装する必要があったことと比較すると、非常に有益だといえます。

デバイスシャドウとルールエンジン

アマゾン社セミナー資料より引用)

全体を通してのまとめ

SORACOMにより、安価かつセキュアな3G/LTEデータ通信がIoTデバイスでも利用できるようになりました。また、AWS IoTにより、マネージドなMQTTゲートウェイやルールエンジンによるイベント処理の自動化などが利用できるようになりました。AWS IoTのクライアント証明をSORACOM Beamに委譲できる点で分かるように両者は非常に良い補完関係にあり、組み合わせて使うことでIoTの技術的課題の一部が解消され、以前より安価に、セキュアに、迅速にIoTサービスが構築できます。

両サービスはスモールスタートが可能な料金体系になっており、小規模に導入して使い勝手を確認することができるようになっています。まずはPoCや小規模なサービスで導入して有効かどうかを確認してみてはいかがでしょうか?筆者自身も実際にノウハウがたまったら、またTIPSを記事として公開したいと思います。