ちょっと話題の記事

[レポート] AWSクラウドを活用したIoT/M2Mソリューション #awssummit

2015.06.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2015年06月02日、06月03日と開催され、大盛況のうちに幕を閉じた『AWS Summit Tokyo 2015』ですが、今回(というか去年辺りから)私はプレス枠での参戦をしておりました。

aws-summit-tokyo-2015-iot-bigdata-usa-01

参加した幾つかのセッションについてはCodeZine様でレポートとして寄稿させて頂いていますが、非常に興味深い内容であった当セッションについては当ブログでもその内容についてレポートしたいと思います。

aws-iot-m2m_00

IoT/M2Mとは

この辺りのフレーズについては、皆さん普段からの色々なニュースで耳にしている事と思います。Wikipediaから言葉の意味を探る。M2Mよりも発展した形で、ビジネスやサービスを作り上げていこう、という思いがIoTの(言葉の)裏側にある。

aws-iot-m2m_01 (アマゾンデータサービスジャパン パートナーソリューションアーキテクト 榎並利晃氏)

  • IoT市場の規模:
    • 予測では、世界規模でのスマートフォンやタブレット、PCの利用台数は2020年には7.3B(73億)、IoTのデバイスは更にそれらを上回る勢いで成長して行くと考えられている。(予想だと4倍=26B(260億))。
    • IDCジャパンによる国内市場の予測では9.5億台とも。売上市場規模は2014年で9.4兆円、2019年には16.4兆円に達する見通しとのこと。
  • この状況を"受ける側"のクラウドはどのようなアーキテクチャで臨むべきか。
  • IoTは様々なマーケットで利用が可能。IoTというキーワードで、実に様々な領域・分野を語る事ができる。

aws-iot-m2m_02

Amazonでの取り組み

IoTの分野では、以下の様な取り組みを行なっている。

Amazon Drone

Amazon Echo

Amazon Dash

IoT/M2Mに関する事例

先日行われた某イベントで『騒音チェック』を行う仕組みを構築し、榎並氏自らデータ収集を実践。ゲートウェイ上にプログラムを置き、溜めたデータを可視化してみた。数日間実施した後、1つのデバイスで25万件のデータが溜まった。すごい量。

なぜ、IoT/M2MのシステムにAWSが利用されるのか?

なぜ、IoT/M2MのシステムにAWSが利用されるのか?

  • 『安く始めたい』『スケールしても大丈夫な構成にしておきたい』というお客様の声が、AWSの柔軟性とマッチしたのが大きい。
  • また、AWSの『スケールするIoT/M2Mシステムに対応が可能である』点も外せない(グローバルにリージョンがあるのがポイント)。製造業において国外に工場がある場合、メリットとなる。
  • 40を超えるサービスで実現したい事を『ビルディングブロック』の様に組み立てる事も出来る。

aws-iot-m2m_03

IoT/M2Mシステムで利用されるAWSサービス

大きく以下のように分類する事が出来る。

aws-iot-m2m_04

デバイスインターフェース

  • ゲートウェイの価値がより一層、強くなってきている。
  • センサーを含めたインタフェースプロトコルの高度化に伴い価値が上昇。
  • センサーを直接クラウドに繋げるのでは無く、ゲートウェイを経由。ゲートウェイの時点でフィルタリングしてしまう、という処理も可能。ゲートウェイがデータ集約やフィルタ、データ転送、コマンド実行等を行う。
  • また、クラウドとゲートウェイのハイブリッドな構成も検討項目に。

データ収集

  • 各種AWSサービスとのマッピングは以下の様な形となる。
  • aws-iot-m2m_05
  • 粒度によって適切なサービスを選択。ファイルデータであればS3、ストリームデータならKInesis、トランザクションデータならばDynamoDBやRedshift。
  • Amazon S3:
    • S3をデータの収集ポイントに。S3は各サービスとの連携が容易。
  • Kinesis:
    • データストリーミング処理のためのマネージドサービス。
    • IoTの中では、重要な位置を占める。
    • プラガブルで多種多様な用途で利用可能。疎結合を実現するためにKinesisを挟むのがセオリー。
    • Kinesis自体がデータを処理するものではない、というのがポイント。一旦バッファとして使う事が出来るのみ。処理の際にはEC2やLambdaを使う必要がある。
    • 50kbyte以上のデータサイズも扱う事が可能に。(最大1MB)
  • DynamoDB:
    • 大容量でも低レイテンシーでクエリ操作出来るNoSQLサービス。
    • 管理不要で信頼性が高い/プロビジョンスループット/ストレージの容量制限無し。
    • DynamoDB Stream機能:センサーデータを入れた場合、データ追加トリガーに処理を実行する事が出来る。変更情報は24時間保存。
    • aws-iot-m2m_06

イベントプロセッシング

  • AWS Lambda:
    • イベントドリブン処理のためのコンピュートサービス。
    • クラウドファンクション=LambdaのJavascriptコードを指す。
    • IoT/M2Mでの利用パターン:
    • aws-iot-m2m_07

データプロセッシング

  • Amazon Redshift:
    • フルマネージドのデータウェアハウスサービス、従来のBIツールやSQLでの利用が可能。
  • Amazon EMR:
    • AWS上のHadoopサービス。
    • EMRエコシステム: Bootstrap Actionという仕組みを提供。構築時に必要なものをインストールする事が出来る。(参考:awslabs/emr-bootstrap-actions · GitHub)
    • Amazon EMR - Kinesisインテグレーション:Kinesisのデータを溜めて、処理をEMRで実施。
    • aws-iot-m2m_08
    • Amazon EMR - Amazon S3インテグレーション:S3に溜まっているデータをEMRで処理。データ分析に於いては、多種多様な要件を満たすために、EMRで同じデータを複数の処理で実行可能。

データ処理パターン

AWSではBigDataソリューションとして、適材適所に各サービスを適用可能。時間や粒度のとの兼ね合いで色々方策を取る事ができる。どの単位で見たいか、どういった形状で見たいかで組み合わせを選ぶ。

aws-iot-m2m_09

  • Apache Spark:
    • 大規模データをオンメモリで処理する分散処理基盤。高速処理。
    • SQL、Stream処理、機械学習等複雑な利用用途も可能。
    • Kinesis - Spark StreamingでSliding Window
    • S3に蓄積されたログの集計も

サマリ&まとめ

  • 分析のフェーズ、要件に応じてバッチやリアルタイム及びアドホックなクエリが実行出来るようなアーキテクチャを選ぼう。
  • IoT/M2Mのシステムを構築する上で、AWSのメリットである低コスト、スケールの容易性、グローバル展開、多様なサービスを見極めて活かす。
  • IoT/M2Mシステムを構築する上で『データ処理』は重要な位置を占める。データ特性とクエリ特性を考慮した設計が重要となる。

以上、『AWSクラウドを活用したIoT/M2Mソリューション』のレポートでした。先日Upしたセッション:『『米国における IoT / Big Data & Analytics 活用事例の最前線 – 先進事例に学ぶ IoT のベストプラクティス』』と併せてIoT関係の内容を当日聞いて来た形になるのですが、今後来るであろうIoT/M2Mの波に備えて関連するサービスを押さえておく事は必須になりそうだなぁと強く実感しました。中でもDynamoDB等はよりその重要さの度合いが高そうな感じなので、これから私も従来携わってきたサービスと併せて取り組んで行ってみようと思います。こちらからは以上です。