AWS IoT を使う上での Next Step!!
JAWS-UG 横浜 – Reboot!!
株式会社オルトプラス
開発部 オルトプラスラボ
中⽥ 聡
アジェンダ
• 会社紹介、⾃⼰紹介
• AWS IoT が発表されてから1年
• AWS IoT 利⽤の流れ
• IoT Rule の利⽤
• AWS IoT と他の IoT サービス⽐較
• 最近の気になるニュースのトピック
株式会社オルトプラスについて
• 会社設⽴⽇:2010年5⽉6⽇
• 拠点:渋⾕、ベトナム、韓国
• 従業員数:約300名(全体)
• 事業:
• ソーシャルゲーム
• ゲーム運営移管
• オフショア開発
• 広告事業
• 起業⽀援事業 など
2016年4⽉
オルトプラスラボ設⽴
altplus TechBlog
http://techblog.altplus.co.jp
⾃⼰紹介
名前:中⽥ 聡
所属:株式会社オルトプラス
開発部 オルトプラスラボ フェロー
仕事:
SI・Webサービス・ゲームのアプリ開発、インフラを経て、
現在、インフラとR&D
JAWS-UG:横浜⽀部
最近のトピック:
空気環境(CO2)の測定
※本⽇、会場内の CO2 を測定しています
(ちょっとアンケート)
AWS IoT が発表されてから 1 年
2015年
• 10⽉ AWS IoT 発表
2016年
• 4⽉ Rule Engine が Amazon Machine Learning をサポート
• 6⽉ AWS IoT ELF 公開
• 7⽉
• Thing Types のサポート
• Java and Python Device SDKs
• AWS CloudFormation が AWS IoT をサポート
• 8⽉ ジャストインタイム登録をリリース
AWS IoT 利⽤の流れ
• Thing の登録
• キーペア(公開鍵、秘密鍵)と証明書の作成とダウンロード
• ルート証明書のダウンロード
• ポリシーの作成
• 証明書にポリシーを紐付け
• 証明書にThingを紐付け
• Rule を作成
Thing の登録
キーペア(公開鍵、秘密鍵)と証明書の作成とダウンロード
ポリシーの作成
証明書にポリシーを紐付け
証明書に Thing を紐付け
Rule を作成
IoT Rule の利⽤
IoT
rule
AWS	IoTIoT hardware
Lambda を実⾏したり
AWS
Lambda
IoT
rule
AWS	IoTIoT hardware
メッセージの送信先を Kinesis Firehose
にして、S3 や Redshift に書き込んだり
Amazon	Kinesis	
Firehose
Amazon	
Redshift
Amazon
S3
IoT
rule
AWS	IoTIoT hardware
SNS トピックにメッセージを送って端末
に通知したり
Amazon	SNS
IoT
rule
AWS	IoTIoT hardware
Lambda で Kinesis Stream のイベント
を Elasticsearch に流したり
Amazon	Kinesis	
Streams
Amazon	
Elasticsearch Service
AWS
Lambda
IoT
rule
AWS	IoTIoT hardware
Machine Learning で分析して戻り値を
もとにアクションを実⾏したり
Amazon	Machine	
Learning
IoT
rule
AWS	IoTIoT hardware
これらを組み合わせることで例えば
AWS	IoT
IoT
sensor
IoT
rule
Kinesis	Streams
Lambda
CloudWatch Elasticsearch
SNS
IoT
rule
IoT
rule
bucket
MQTTS
SORACOM
Beam
SORACOM
Air
Thing やポリシーの数が多くなってきたら…
Thing やポリシーの数が多くなってきたら…
• 初めて使ってみるときはマネージメントコンソールから
• 多数の Thing やポリシーを登録する時は、CLI が便利
• 定型の構成ができてきたら CloudFormation テンプレートに
AWS IoT と他の IoT サービス⽐較
アーキテクチャ
• IoT システムの基本機能をサポート
• REST サービス
• データ分析機能
• メッセージキュー
AWS Reference Architecture
(Reference: https://aws.amazon.com/iot/how-it-works/ )
Azure IoT Architecture
(Reference: https://azure.microsoft.com/en-in/documentation/articles/iot-suite-what-is-azure-iot/ )
アーキテクチャ
• IoT システムの基本機能をサポート
• REST サービス
• データ分析機能
• メッセージキュー
• AWS, Azure はビルディングブロック
Google Reference Architecture
(Reference: https://cloud.google.com/solutions/iot-overview#telemetry )
アーキテクチャ
• IoT システムの基本機能をサポート
• REST サービス
• データ分析機能
• メッセージキュー
• AWS, Azure はビルディングブロック
• Google は主にアプリケーションや分析サービスを提供
アーキテクチャ
• IoT システムの基本機能をサポート
• REST サービス
• データ分析機能
• メッセージキュー
• AWS, Azure はビルディングブロック
• Google は主にアプリケーションや分析サービスを提供
• 要件に合わせて開発する場合、ビルディングブロックの⽅が扱
いやすい場合がある
機能
• 要件
• エンドユーザーによるデバイスのアクティベート、ディアクティベー
トをできるように
• デバイスレベルの認証とセキュリティのサポート
• 対応状況
• Azure, AWS はデバイスレベルの認証とアクティベートが可能
• Google を利⽤する場合は開発が必要
プロトコルのサポート
• デバイスと IoT では HTTP 以外のプロトコルのサポートが重要
• AWS, Azure は HTTP に加えて MQTT と AMQPS のようなプロ
トコルをサポート
• Google は HTTP/2 と gRPC のみをサポート
利⽤可能な SDK
• AWS, Azure は主要なプログラミング⾔語をサポート
(MQTT を使⽤するデバイス、IoT メッセージングとも)
• HTTP 向けには API や⾔語は⼗分にサポートされている
• Google は多くのプログラミング⾔語をサポートする SDK を
提供しているが、 gRPC プロトコルにだけ対応している
完全なスタックのためのサポート
• AWS, Azure, Google とも FaaS をサポート
• AWS Lambda
• Azure Functions
• Google Cloud Functions
• NoSQL DB もサポート
• Amazon DynamoDB
• Azure NoSQL
• Google Cloud Datastore
料⾦
• AWS, Azure はメッセージ数ベースでの課⾦
• Google は オペレーション(API 呼び出し)数ベース
• メッセージ 1 通のサイズがポイント
• AWS 512 B 単位
• Azure 4 KB 単位
• Google 64 KB 単位
• 例、8 KB のメッセージを送った場合
• AWS 16 メッセージ
• Azure 2 メッセージ
• Google 1 メッセージ
最近の気になるニュースのトピック
最近の気になるニュースのトピック
IoT デバイスを踏み台にした
「Mirai」ボットネットによる DDoS 攻撃
IoT デバイスを踏み台にした
「Mirai」ボットネットによる DDoS 攻撃
• US のセキュリティ情報サイトが⼤量の DDoS 攻撃によりダウン
• 踏み台にされたのは防犯カメラやルータなどの IoT デバイス
• 後⽇作者が「Mirai」ボットネットのソースコードを公開(期間限定)
• ダウンロードした⼈が GitHub に公開
• ソースコードの悪⽤による影響が懸念されている
対策
• 対策として IoT デバイスに管理者ログインをさせない
• 管理画⾯へのログイン設定を、⼯場出荷時の初期設定から変更
すること
• インターネットからアクセスされない形で設置
• 感染した場合、⼀度電源の OFF が必要
IoT デバイスにマルウェア感染のリスク
• デバイス側はシンプルな実装になりがちでは?
• 省電⼒の要件
• 感染状態を検知できるか?
• デバイスの停⽌、起動が必要な場合にリモートでの対応が可能か?
• 今のところ、デバイスに依る
AWS IoT でできる対策
• コンフィグをデバイスの設置環境ごとに変えたい場合
• デバイスごとに IoT ルールで Lambda を実⾏、 DB の値で取得する
コンフィグファイルを切り替える
• デバイスのログ、エラーログ取得
• ジャーナルログを⽇毎に S3 に送るようにする
• 異常動作をしていないかウォッチ
• デバイスシャドウに電池の残容量を持たせておく
• 電池状況を取得できれば先にアラート
• 想定外の動作で予定よりバッテリー消費早くなったりしていないか
まとめ
• マネージメントコンソール、CLI、CloudFormation 全部使おう
• 他のプラットフォームも眺めてみよう
• やってみた!動いた!からセキュリティも意識しよう
空気環境(CO2)の測定結果は?
会場がオープンなスペースで、
CO2 少なめの結果となりました。
ご清聴ありがとうございました

AWS IoT を使う上での Next Step!!