Spaghetti Code Monster

きれいなコードを読み書きしたい.

SORACOM UG 信州 x JAWS-UG Nagano x TwilioJP-UG 共催ハンズオン 参加レポート

3月30日に開催された、SORACOM UG 信州 x JAWS-UG Nagano x TwilioJP-UG 共催ハンズオンに参加しました。 その時の参加レポート的なものです。

今回のイベント、興味があったまま手を出せずにいた3つのサービスが共催だったこともあり、とても楽しみにしていました。

イベントの概要、イベントで使われた資料については、
https://soracomug-tokyo.connpass.com/event/118913/

イベント中の様子については、
https://togetter.com/li/1333132

を見たら手っ取り早く雰囲気を掴めるかと思います。

ここでは、個人的にためになったことをまとめていきます。(というか、当日のメモをほぼ貼り付けただけです…)

SORACOMの紹介とブログのススメ

IoTとは?

  • デジタル化を実現する手段
    「見えていなかったものをみえる」ようにして,「視えたものを集めて生かす」
    この両者をつなぐのはネットワークで、どこでも使えるネットワークの一つがSORACOM
  • SORACOMはIoT向けの通信を提供している。 3GやLTEを使っているので、セキュリティとかクラウド連携もクリアしてくれる。

IoT開発のフェーズごとにおける課題とPlatform

バイスからのデータを簡単に可視化 → harvest
検証するために素早く使える仕組み → Lagoon
AI/ビッグデータとかを使った高度なソリューションを活用 → BEAM

SORACOM Air

IoT向けのデータ通信基盤(2G/3G/LTE、Sigfox/LoRaWAN)
日本向けのSIMだけでなく、海外向けのSIMもある。

7月2日に開催されるSORACOM Discovery 2019(https://www.discovery2019.soracom.jp)の紹介もありました。行ってみたい。

素早く検証するにはどうするか?

  • 何も作らない.あるものを利用する
  • 自前主義からの脱却

様々なデバイスでIoT化をサポート

  • USB型通信アダプタ
  • LTE-Mボタン
  • 基板ベース(wio-LTEとか)

Amazon Dashボタンが販売終了

  • これから必要なのは「モノづくりではなく,コトづくり」

工場での導入事例 - WiFi ベースだと、他の設備が必要(ルータとか) → LTE-M buttonだと,他の設備が不要

ブログ書こう!

  • 誰のため? → 未来の自分のため
  • ブログは「未来の自分へのドキュメント」 忘れる能力→救い
    とはいえ,できるようになったことを忘れるのは忍びない → そこでブログ!

ブログの種類には、次の種類がある
- トライ系 目的と達成できた/できなかったことを載せる
- 紹介系 これでできることや始め方
- レポート系 このエントリ

機密情報が洩れるじゃん?

  • 何が機密なのか、わかってない人の常套句
  • ブログに書けること、書けないことが分かっている人は 技術だけじゃなくビジネスの本質に対する理解度が高い人材

AWSの紹介

もともとAmazonのインフラノウハウをサービス化して提供したもの
サービス数は165(らしい)
今回は、ハンズオンで使うAWS LambdaとAWS IoT、IoT 1Clickについて

AWS Lambda

  • サーバレスコンピューティング
  • まずはサーバレス→ ダメならサーバ立てるって潮流ができている
  • 管理不要
  • 状況に応じて自動で拡張
  • 使ってないリソースについては支払い扶養
  • 可用性,耐障害性 は実装済み 99%のシステムは,サーバレスにリプレースすると安くなる → 時間当たりの時間はEC2,ECSのほうが安い
    常時リソースを確保して,動作し続けるものはEC2のほうが安い
    冗長構成の実装も必要ない

イベントドリブン

  • 完全にステートレスで動作する必要ある
  • 常に外部のDBにアクセスする必要あり 外部DBはDynamoDB(NoSQL)がおすすめ
  • 一時的なデータはRedisとか
  • 関数単位のロギング 慣れるまで大変っぽい

実行時間

最大900秒

関数単位で,権限制御ができる

うまく制御すればかなりセキュアにできるが,それには慣れが必要

AWS Identity and Access Management

通称IAM
- IAMユーザ - IAMロール - IAMポリシー - IAMはリソースに対して付与するもの

ソースコードに権限を埋めないコーディングをする

Lambdaの言語使い分け

AWS IoT + IoT 1Click

AWS IoT Core

Greengrass

  • edgeデバイス向け 国内から東京リージョンにアクセスした場合でも、50msのレイテンシが発生する
  • AWSの機能をローカルでもできるようにしたもの
  • 最新の動きをEdgeに適用して,クラウドで集中管理

Greengrass ML inference

  • 推論環境をデバイスに組み込める
  • FPGAとかでも利用できるらしい

バイスクラウドの関係

IoT駆使したデバイスを作る場合,なにを考える必要があるか? Digitalization=ソフトウェアによる価値最大化 = 物理的な制限からの解放

Twilioの紹介

  • Twilioは通話,SMSだけじゃない
  • コミュニケーションをAPIで管理しよう
  • プログラムで電話をかけようとかできるようになる
  • 今までになかったコミュニケーションを実現 -【導入事例】電話活用したスマートロックキー

Channels

  • ここからいろんなサービスに通知を投げたりできる
  • サービスごとに対応するコードを書く手間を減らせる

決済

  • PCI Compliantに準拠しているので,電話で決済できる

    Programmable Video

  • videoの中に含まれている付加価値を提供できる

Programmable Wireless

Programmable FAX

  • もともとはエイプリルフールのネタだったが、意外と使われているらしい

Mail

  • SendGrid買収した

Functions

  • Lambdaてきな
  • Node.jsのみサポート

    Assets

  • S3てきな
  • APIを使ったアップロードはできない

    Sync

    WebSocket的な

Authy

  • 2要素認証

Proxy

  • お互いの番号を知らせずにコミュニケーションできる仕組み

Twilioを使った架電

  • REST
  • Flows.Executions

ハンズオン

次のことをやりました。 - LTE-Mボタンが押されたらメールを送信する - LTE-Mボタンが押されたらTwilioのAPIで電話をかける - LTE-Mボタンが押されたらデバイスの状態を更新する この日使ったデバイスは扇風機

感想