AWSサービスの機能を調べる(Internet of Things)

皆さんは、AWSクラウドが持つ機能を調べるとき、どうしていますか?

また、使おうと考えているサービスの仕様をどのように調べていますか?

私はこのところ、AWSサービスの機能のホントのところを確認するために、AWS公式ホームページの「AWSサービス別資料」で確認を取っています。
(資料には、SlideShare 、PDF 、Youtube があります)

ちまたのインターネットでの技術ネタを調べることも過去多かったのですが、情報の鮮度もありますし、やっぱり本家の情報がしっくりと安心できます!!

今回は、この画面の左にあるカテゴリー分けから「Internet of Things」を選んだときに、各資料にはどのような情報が含まれているかを箇条書きにします。(99-99 形式の数字はページを表します)

Internet of Things

●●●資料【01_FreeRTOS】

6-10    IoTの背景
12-14   FreeRTOSとは?

16-17   FreeRTOS kernel
18-21   組み込み開発、マルチスレッド実装ライブラリ、マイコン向けOS
22-23   タスクスケジューラ、FreeRTOSのAPI
24-29   タスク、キュー
30-31   ミューテックスとセマフォ
32-33   タスク通知(Task Notification)、ストリームバッファ(Stream Buffers)

FreeRTOS ライブラリ

35Page   Amazon FreeRTOS Architecture
36Page   FreeRTOS Libraries
37Page   クラウドの接続性
38Page   MQTTプロトコル
39Page   MQTTライブラリ
40Page   Device Shadowライブラリ
41Page   AWS IoT ルールの利用

42Page   ローカル接続
43Page   AWS IoT Greengrass 検出ライブラリ
44Page   Wi-Fiライブラリ
45Page   MQTT over BLE
      
46Page   Wi-Fi Provisioning over BLE
      

47Page   セキュリティ
48Page   TLS を使った相互認証
49Page   IoTポリシーを用いた認可
50-51   AWS IoT Device Defenderライブラリ
52-53   監査内容 (FreeRTOS側の設定は不要)
54Page   異常の検出
55-57   セキュアエレメント
58-59   OTAコード署名、OTA エージェントライブラリ
60Page   OTA – 作業者の操作
61-62    OTA – OTAエージェントのアクション
63Page   OTA – ブートローダーおよびアプリのアクション
64Page   OTA – 更新ジョブのプログレス

開発方法

66Page   FreeRTOSのソースコード
67Page   AWS Partner Device Catalog
      
68Page   Device Tester for FreeRTOS
69Page   AWS デバイス認定プログラム
      
70Page   FreeRTOS以外でのAWS IoTとの接続⽅法

●●●資料【02_AWS IoT Analytics】

7Page   技術の進化とIoTサービスの進化
8Page   IoT データが生み出す価値
9Page   活用例1: 生産状況の見える化
10Page   活用例2: 分析による業務改善
11Page   活用例3: 予知保全 / 品質予測
12Page   予知保全を実現するアーキテクチャ例
13-14   IoTデータの特徴、IoTデータ処理の流れ
      ①IoTデータのノイズ、ギャップ、誤測定値などの整形
      ②データのフィルタリング、処理、変換、および拡充
      ③生データと処理済みデータを保存する
      ④アドホッククエリ実行や高度な分析、可視化
15-17   AWS IoT Analytics

AWS IoT Analyticsの詳細

19Page   AWS IoT Analytics
20Page   AWS IoT Analytics Overview
21Page   保存・分析したいデータのみ収集
22Page   BatchPutMessage(S3, Kinesis経由の連携が実現可能)
23Page   AWS IoT Greengrass IoT Analytics Connector
24Page   取り込みデータ形式について

25Page   処理:生データを意味のある情報に変換
26Page   pipelineでのメッセージの変換・強化・フィルタ
27Page   データの拡充による強化
28Page   IoT Coreレジストリ・シャドウ情報でメッセージを強化
      ①レジストリ情報で強化 (deviceRegistryEnrich)
      ②シャドウで強化 (deviceShadowEnrich)
29Page   Lambda関数を使ったメッセージの変換・強化・フィルタ
      ※ AWS IoT Analytics から Lambda 関数を呼び出せるように、
       関数ポリシーを追加する必要あり
30-32   pipelineを指定してchannelデータ再処理 ※ 過去データが置き換わる。

33Page   保存:分析のためにデバイスデータを時系列データストアに保存
34Page   ストレージタイプ
      ①サービスマネージド型ストア(直接参照できない)
      ②顧客マネージド型S3バケット

35Page   解析:資産の健全性とパフォーマンスに対する深い洞察を得る
36-37    SQLデータセットとコンテナデータセット
38-41    DeltaTime Window
42Page   コンテナデータセット
43Page   コンテナプログラムサンプル (Python)
44Page   配信ルール (S3アクション、IoT Eventsアクション)
45Page   IoTデータをデータレイク上の非IoTデータと統合する

IoT Eventsアクションを使った警報連携例

47Page   可視化:データセットをすばやく可視化
48Page   QuickSight
49Page   SageMaker Jupyter Notebook Templates
50Page   コンテキスト的な異常の検出 – Detecting Contextual Anomalies
51Page   ソーラーパネルの出力予測 – Solar Panel Output Forecasting
52Page   スマートシティの大気汚染予測 – Smart City Air Quality Forecasting
53-54    SageMakerコンテナでの分析定期実行、可視化・分析結果表示

55Page   パイプラインを構成して複数の分析を実行する
56Page   パイプライン構成パターン
57Page   Type1: 1 channel + 1 pipeline + 1 datastore
58Page   Type2: N channel + N pipeline + 1 datastore
59Page   Type3: 1 channel + N pipeline + N datastore
60Page   Type4: 1 channel + N pipeline + 1 datastore
62Page   AWS IoTルールエンジンとAWS IoT Analyticsの接続①
63Page   AWS IoTルールエンジンとAWS IoT Analyticsの接続②

●●●資料【03_AWS IoT Core】

6-9    IoT のユースケースと要件
11Page   AWS IoT アーキテクチャ
12-13    AWS IoT サービス一覧
14Page   AWS IoT Coreとは?
15Page   AWS IoT Core アーキテクチャ

16Page   デバイスゲートウェイ:IoTワークロードに最適化されたフルマネージド接続管理
17Page   メッセージブローカー:IoTデバイス間で信頼性の高い高速通信
18Page   MQTTプロトコル
19Page   Publish / Subscribe モデル
20-21    Topic
22-24   ワイルドカード、メッセージについて、QoS

25Page   認証サービス:デバイス認証を管理し、ユニークなアイデンティティを大規模に提供
26Page   認証方法:①x.509クライアント証明書 ②Cognito ③IAM ④カスタム認証
27Page   TLS 相互認証によるデバイス認証
28Page   IoT ポリシーによる認可
29Page   AWS IoT Coreで利用できるプロトコルと認証認可方法
30Page   AWS IoT Core における証明書発行とデバイス登録方法⼀覧
      

31Page   レジストリ:AWSサービス利用のため、デバイスを定義してカタログ化する
32Page   AWS IoT Core におけるデバイス情報
33-37    Thing Type

39Page   AWS IoT Device SDK
40Page   AWS SDK とAWS IoT Device SDK の違い
41Page   FreeRTOS
      
42Page   パートナーデバイスの利用

AWS IoT Coreによるデータ収集

44Page    AWS IoT Coreの2つの利用用途
45-46   AWS IoT Coreによるデータ収集アーキテクチャ例

47Page   ルールエンジン:大量データをSQLライクな取込、分析、視覚化で、10以上のサービスを利用可能
48Page   ルールエンジン – アクション
49Page   ルールエンジン – メッセージのフィルタリング
50Page   データ収集におけるTopic設計のベストプラクティス
51Page   MQTTでは扱えないデータの収集方法
52Page   デバイス証明書を利用した認証トークンの取得
53Page   Basic Ingestによるメッセージングコストの削減
54Page   データ収集で活用できるその他のIoTサービス

AWS IoT Core による遠隔制御

56Page   遠隔制御のパターン
57Page   コマンドの送信
586Page  データ収集とコマンド送信を併用する場合のTopic設計
      :データとコマンドのTopicを最上位階層で分ける
59Page   状態の同期
60-65   デバイスシャドウ:いつでもあなたのデバイスの状態を把握し、管理する
66Page   名前付きシャドウ

デバイスの運用・管理

68-70     ⼀括制御、AWS IoT Device Management、デバイスの検索とグルーピング
71-76     Jobs:実行したジョブの各デバイスのステータスを受信し、可視化します
77-81   デバイスのロギングとモニタリング

●●●資料【04_AWS IoT Events】

7-10    AWS IoT サービス紹介
12-16   AWS IoT Eventsとは?

18Page   複数のソースから入力を受けいれ
19Page   入力データのフォーマットはIoT Events側で定義
20Page   簡単な論理式を使って複雑なイベントのパターンを認識
21Page   探知器モデル
22Page   状態
23Page   遷移イベント
24Page   利用可能な条件式
      

イベントに基づいたアクションの実行

26Page   利用できるアクション(ビルトイン)
27Page   利用できるアクション(AWSサービス連携)
28Page   カスタムペイロード
      
29Page   置き換えテンプレート
      

スケーラビリティ

31Page   入力データに合わせてスケール

探知器モデルについて

33Page   探知器の生成メソッド ①一意のキー毎に探知器を作成 ②単一の探知器を作成
34Page   探知器モデルの評価方法 ①バッチ評価 ②シリアル評価
35Page   探知器の評価方法(例 シリアル):順番に処理
36Page   探知器の評価方法(例 バッチ) :最初に全条件を判断

AWS IoT Eventsを使ったユースケース

38Page   1) デバイスの位置情報を監視
      
39-40   2) AWS IoT EventsとMLを組み合わせた設備の管理
      
41-42   3) 畑の自動水やり
      

AWS IoT Eventsの始め方

44Page    テンプレートを使ってみよう
45Page    AWS IoT Eventsワークショップを試してみよう
       
46Page    探知器モデルの開発時のベストプラクティス
       ①CloudWatchログを有効化しておく
       ②定期的にパブリッシュ(発行)しておく
       ③使用しないと通知あるが削除されるので、パブリッシュかエクスポートしておく
47Page    探知器モデルのエクスポートとインポート
48Page    料金について
       (この後、画面操作デモあり)

●●●資料【05_AWS IoT Greengrass】

8-11    IoTのユースケース
12Page   AWS IoTのサービス
13Page   AWS IoT Greengrassの基本コンポーネント

14Page   AWS IoT GreengrassサービスとGroupとCoreの関係
      ※ Greengrass Coreは1つ
15-19   ローカルメッセージとトリガー
      ①Greengrass CoreがMQTTブローカーとなり、端末間通信可
      ②サブスクリプション設定で、MQTT Topicメッセージを、送信先を設定する
      ③GreengrassGroup内はQoS 0、ToCloudはQoS 1、
       fromCloudはQoS 0 or 1(persistent session)
      ④ルータ越え:ALPN&&443ポートを利用したMQTT通信が可能
      ⑤ルータ越え:HTTP/HTTPS Proxyに対応(basic認証も対応)※ OTAはProxy非対応
20Page   クラウド転送時のオフラインキャッシュ(FileまたはMemory)はFIFO
      ⇒ サイズ2.5MBは変更可能で古いものから破棄
21-24    ローカルアクション:ローカルのLambdaで組み込みソフトウエアの開発を簡素化
      ①制限の自由度が高く、Lambda画面で設定できる、起動数はリソース量による
      ②Long Lived Lambda:重めの初期化処理など ※ キューが溢れるとエラーになる
25Page   Greengrass Lambda 用のSDK
26Page   データの状態の同期(Device Shadow)
27Page   セキュリティー:ノード間で証明書
      (AWS IoT Core ⇔ Greengrass Core ⇔ Greengrass Connected Device)
28Page   Greengrass上のMQTTブローカー用証明書の注意点
      ⇒ サーバ証明書の有効期限はデフォルト7日で、最大30日
      ⇒ 有効期限が切れる前にサーバ証明書が自動更新される
      ⇒ 切断状態だとデバイスからの新たな接続ができなくなる
      ⇒ サーバ証明書の入替え行われるとMQTTブローカーが再起動し、一度切断
        ※ 再接続実装要
29Page   ハードウエアセキュリティーモジュール(HSM)の利用
      
30Page   セキュリティー:Greengrass Core⇔AWSサービス:IAMを使ってアクセス
31Page   ローカルリソースアクセス
      :コンテナLambdaでリソースアクセスをホワイトアクセス制御できる
32Page   Over the Air (OTA)アップデート

AWS IoT Greengrassの拡張機能

34-35   機械学習の推論
      ⇒ SageMaker Neoでコンパイル、Deep Learning Runtimeを使う
36Page   コネクター:汎用的な処理はコネクターの利用で素早く開発
      
37Page   シークレットマネージャー:秘密情報をエッジデバイスに安全に展開
38Page   コンテナサポート
39Page   ストリームマネージャー
40Page   StreamManagerの注意点

AWS IoT Greengrassの始め方

42Page   システム要件(2020/12/15現在のv1.11向け)
43Page   AWS IoT Greengrassの始め方
44Page   Quick Start Scriptの利用
      
45Page   AWS IoT Greengrassのデプロイについて
      バルクデプロイ
46Page   AWS IoT Greengrassのモニタリングについて:CloudWatch Logs
47Page   ⇒ Greengrass Core自体、Lambdaのテレメトリを取得
48Page   ⇒ テレメトリの監視例
49Page   ⇒ Local Health APIの利用
      

50Page   AWS IoT Greengrassの料金体系(2020/12/15現在)

51Page   独自のデバイスでAWS IoT Greengrassを動かしたい場合
52Page   AWS IoT Device Tester
53Page   AWS Device Qualification Program:AWS Partner Network

AWS IoT Greengrassのユースケース

56-58    スマートファクトリーでのユースケース
      ①現状の生産現場における課題
      ②AWSで実現するスマートファクトリー
      ③AWS IoT Greengrassの役割
59-60    コネクテッドカーでのユースケース
      ①車両のデータをクラウドに上げる
      ②車両上で何らかの判断をする