ボタンデバイスとAWSで始めるサーバーレスな IoT – Developers.IO TOKYO 2019 #cmdevio
はじめに
どうも、森です。
2019年11月1日(金)に、クラスメソッド主催の技術カンファレンス「Developers.IO 2019 TOKYO」が開催されました。
【11/1(金)東京】国内最大規模の技術フェス!Developers.IO 2019 東京開催!AWS、機械学習、サーバーレス、SaaSからマネジメントまで60を越えるセッション数!
本記事では、 『ボタンデバイスとAWSで始めるサーバーレスな IoT』のセッションをレポートします。
スピーカー
株式会社ソラコム
テクノロジー・エバンジェリスト 松下 "Max" 享平 氏
Maxはニックネームで、ソラコムでは社員をニックネームで呼ぶ文化があるとのことです。
スライド
※ 前半Aパートの内容は、 12:30 - 13:30のセッション、 IoTはここまできた!「作らずに創る」IoTシステムと、その先の「デジタル化&データ活用」 と ほぼ同じです
レポート
Aパート
セミナー式のセッション
そもそもIoTってなんなのか
センサー・デバイス -> ”モノ”
⇅
ネットワーク
⇅
クラウド
IoTはモノやコトをデジタル化する手段である。 これを活用することが重要。
ネットワークにつなげるめんどくささ、セキュリティ大丈夫なの クラウドとの連携はどうするの という懸念があった。 その結果、IoT向けのプラットフォーム SORACOM を提供した。
SORACOMとは
今日のアイディアを今日実現したいんだ ってなったら作ってはダメ、あるものを使いましょう。 様々なデバイスを用意しているのでサポートできる。
- 1回線からIoT向け通信
- セキュリティ閉鎖網
- クラウド連携
IoTのつなぐを簡略化
ハンズオンで使うデバイスの紹介
3つのボタンアクション(シングル、ダブル、ロング)と簡易位置即位機能
LTE-M + 乾電池 + 3つのボタンアクション
どこでもボタンを実現した
SORACOM LTE-M Button
いきなり繋がるデバイス
さあ、体験しよう -> ハンズオンへ
Bパート
ハンズオンセッション
内容
- ボタンのクリックイベントを SORACOM Harvest Data を使って可視化
- ボタンのクリックイベントを SORACOM Funk で AWS Lambda に連携、Lambda関数からEC2 APIを呼び出し、EC2インスタンスを操作
やってみた
ハンズオン中の会場のご様子
1. SORACOM Harvest Data を使ったボタンの動作確認
SORACOM Harvest とは、 SORACOM Harvest(以下、Harvest) は、IoTデバイスからのデータを収集、蓄積するサービスです。 クラウドのセットアップをすることなく、 SORACOM アカウントのみでデータの可視化を素早く行っていただくことができます。
- SORACOM ユーザコンソールへログインし、色々設定するよ
- 設定が終わったらデータの確認をする
ボタンを押して、データが送信されると、以下のようになりました
データが送信されたことが現れています。
位置情報
ドンピシャです
2. ボタンで EC2 インスタンスを操る
Key = Button-de, Value = Go! というタグが割り当てられている EC2 インスタンスを対象に、以下のボタンの動作で start_instances もしくは stop_instances してみます。
- シングル : 何もしない
- ダブル : インスタンス停止(stop_instances)
- ロング : インスタンス開始(start_instances)
操作対象のEC2と、Lambda Functionを作成します。
テストイベントにシングルボタンの操作をするように登録し、テストしてみます。
ログには、
{'clickType': 1, 'clickTypeName': 'SINGLE', 'batteryLevel': 1, 'binaryParserEnabled': True}
と、シングルボタンのイベントが表示されました。
テストイベントをダブル、ロングにしてさらに確認します。
{'clickType': 1, 'clickTypeName': 'DOUBLE', 'batteryLevel': 1, 'binaryParserEnabled': True} targetIds are ['インスタンスID'] Invoke stop_instances
Stopされました。
{'clickType': 1, 'clickTypeName': 'LONG', 'batteryLevel': 1, 'binaryParserEnabled': True} targetIds are ['インスタンスID'] Invoke start_instances
Startされました。
3. SORACOM Funk を設定
ボタンをトリガーにLambdaを呼び出す SORACOM Funk を設定します。
- IAMユーザーを作成し、SORACOMのコンソールで設定しました
実際にやってみる
ボタン押すと、設定した通りの動作をしました!!! すごい
データの確認
サーバレスに関しての補足
サーバレスは実行時間で課金。
イベント発生時型の処理に向いている = いつ発生するかわからない
IoT向きです。
今からサーバレスやるなら、自前で作るな、優秀なやつらが作った仕組みを利用しよう。
AWSなら
- APIGateway
- Lambda
- AWS IoTファミリー
- 最終的にはS3, DynamoDBに
あるものを利用し、本当に必要な作るものを考えよう。
まとめ
すでにSORACOM Buttonを使った事例は既に存在しており、様々な業界で使用されております。
作らずに、創る。
仰々しいデバイスを作らずとも、みなさんが提供したい価値を創って欲しい。 SORACOMはそれを可能にします。
SORACOMが提言している IoTのつなぐを簡略化 を体験できる素晴らしいセッションでした。
ハンズオンで使ったボタンデバイス、欲しいです、ええ。