ボタンデバイスと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のつなぐを簡略化 を体験できる素晴らしいセッションでした。

ハンズオンで使ったボタンデバイス、欲しいです、ええ。