Closed7

AWS IoT Core の概要ページを見てみた

kazu.okazu.o

概要

https://aws.amazon.com/jp/iot-core/?did=ap_card&trk=ap_card

  • デバイスフリートを簡単に接続・管理・スケーリング
    • デバイスフリート:fleet は艦隊などの意味を持つため乗り物の集まりというイメージ。つまり、複数のデバイスをまとめた一定のグループという理解でよいと思われる
  • 様々なプロトコル
    • MQTT, HTTPS, MQTT over WSS, LoRaWAN
  • 相互認証とエンドツーエンドの暗号化でデバイスの接続とデータを保護
  • デバイスデータを迅速にフィルタリング・変換・活用
  • メッセージブローカー
    • IoTデバイス - AWS IoT Core - アプリ
    • 低レンテンシーと高スループットで安全にメッセージを送受信
  • ミラーデバイスの状態
    • Device Shadowを使用して、接続された最新のデバイス状態が保存
    • アプリからは、デバイスが常にオンラインであるように表示
  • 組み込みのAlexa
    • AWS IoT 予約済みの MQTT トピックの新しいセットを利用し、オーディオメッセージをデバイス間で転送
  • LoRaWANデバイス
    • プライベートのLoRaWANデバイスとゲートウェイをAWSに接続し、プライベートのLoRaWANネットワークをセットアップして管理
  • Amazon Sidewalkデバイス
    • Amazon Sidewalkデバイスのプロビジョニング、オンボーディング、モニタリングを簡単に行う
kazu.okazu.o

フルマネージド MQTT メッセージブローカー

  • 永続的な常時接続と高度なメッセージポリシーをサポート
  • 数百万のデバイスとトピックを同時に処理
  • MQTT5 標準をサポート
    • MQTT3 標準との下位互換性あり
  • MQTTメッセージのルーティング
  • メッセージの保護
    • 複数の認証方法
    • アクセスポリシー
    • Device AdvisorによりデバイスのMQTT機能の検証
kazu.okazu.o

特徴

  • AWS IoT Device SDK
    • IoT デバイスで使用する
    • AWS IoT Core により簡単に素早く接続可能
    • MQTT、HTTP、WebSocketsを介した接続・認証・メッセージ交換が可能
    • JavaScript、C、Arduino
  • Device Advisor
    • 開発中にIoTデバイスを検証できる
    • IoT Coreと相互運用できるかテスト
    • 本番環境へのデプロイ前に問題を特定することができる
  • デバイスゲートウェイ
    • デバイスがAWSに接続する入り口
    • 完全マネージド型で自動的にスケーリング
    • 10億以上のデバイスがサポート
  • メッセージブローカー
    • MQTT5に基づく
    • Pub/Subメッセージエージェント
    • トピックレベルでアクセス制御
  • CoAP Protocol
    • Constrained Applicaiton Protocol
    • アプリケーション層プロトコル
    • HTTPスタイルで、UDPを利用
    • ほとんどの時間を低電力で過ごす IoT ユースケースに適する
    • パートナーが開発したIoTプラットフォームを通じてサポート
  • 認証と認可
    • 認証方法
      • AWSの認証方法(SigV4)
      • X.509証明書
      • トークンベース(カスタムオーソライザー)
    • 接続するプロトコルによりサポートされる証明方法は異なる
    • 証明書にIoTポリシーをマッピングしてアクセス制御できる
kazu.okazu.o
  • レジストリ
    • デバイスのIDが確定され、デバイス属性や機能といったメタデータが追跡される
    • 少なくとも7年に1回レジストリエントリにアクセスまたは更新すれば有効期限は切れない
  • デバイスシャドウ
    • デバイスの最新の状態が含まれる
    • デバイスが最後に報告された状態と、希望する現在の状態が保持される
    • それぞれが異なる場合は、IoT Coreによって相違を補うようにデバイスに対してコマンドが送られる
    • AWS IoT Device SDK により簡単にデバイスの実際の状態とデバイスシャドウを同期させられる
  • ルールエンジン
    • デバイスから送信されたメッセージの内容に応じて様々なアクションを実行できる
    • 例えば、温度の読み取り値が一定のしきい値をこえたときに、AWS Lambda にデータを送信するなど
    • 様々なAWSサービスをサポート
  • AWS IoT Core for LoRaWAN
    • 低電力の長距離広域NW(LoRaWAN)技術を使用している無線デバイスと接続可能
    • オープンソースの Basic Station の LoRaWAN ゲートウェイ(LNS通信)をサポート
      • LoRaWANゲートウェイとIoT Coreに接続するためにカスタムゲートウェイソフトウェアの記述やテストは必要ない
  • Device Location
    • GPSハードウェアを使用せずに、緯度・経度などの位置データを使用してデバイスを追跡・管理可能
  • AWS IoT Core for Amazon Sidewalk
    • 接続オプションの改善を通じて接続されたデバイスの動作を向上させる共有NW
kazu.okazu.o

料金(東京)

検証で気をつけるべき項目はなさそう。ルールエンジンで無限ループするような内容にならないように気をつける。

  • 接続
    • デバイスが IoT Core と接続されていた時間の合計に基づき1分単位で計算
    • デバイスは30秒 - 20分間隔でキープアライブ(Ping)メッセージを送信する場合があるが、これらのメッセージには追加コストはない
    • 接続100万分あたり0.096USD
  • メッセージング
    • デバイスとIoT Core間のメッセージ数で計算
    • MQTT・HTTPのメッセージ料金
      • メッセージ10億件まで 1.20 USD(メッセージ100万件あたり)
      • Basic Ingest の予約済みトピックを使用して送受信されるメッセージにはコストは発生しない
      • 送受信できるメッセージのサイズは最大128KBで、メッセージ数は5KBごとに増加
        • 8KBのメッセージは、2件のメッセージとして計算
    • LoRaWANのメッセージ料金
      • メッセージ10億件まで 2.76 USD(メッセージ100万件あたり)
    • Sidewalkのメッセージ料金(東京ないのでバージニア北部の料金)
      • メッセージ10億件まで 2.30 USD(メッセージ100万件あたり)
  • デバイスシャドウとレジストリ
    • データへのアクセスまたは変更オペレーション数により計算
    • オペレーション 100 万件あたり 1.50 USD
    • オペレーション数は 1KB 単位で計算
  • ルールエンジンの使用量
    • ルールが開始されるたびに計算
    • 開始されたルール:0.18USD(トリガーされたルール 100 万件あたり)
    • 適用されたアクション:0.18USD(適用されたアクション 100 万件あたり)
    • メッセージサイズ5KB単位で計算
  • デバイスの位置
    • ロケーションの解決 100 万件まで:1.00 USD(1kロケーションあたり)
  • Device Advisor
    • 個別のAWS使用に関するコストを除き無料
kazu.okazu.o

開始方法

  • AWS IoT Device SDK
    • ハードウェアデバイスやモバイルデバイスを簡単素早くIoT Coreに接続可能
    • デバイスゲートウェイ、デバイスのシャドウとシームレスにやりとりすることで、すばやく開発を開始するための機能が強化されている
  • AWS IoT Device Client
    • オープンソースのモジュラーデバイス側のリファレンス実装
    • デバイスを簡単に IoT Coreに接続
    • C++
    • コンパイルして組み込みLinuxベースのIoTデバイスにインストール可能
    • GitHubからダウンロードしよう
  • AWS Partner Device Catalog
    • IoTサービスで使用できるIoTデバイスが一覧表示
  • AWS IoT Core for LoRaWAN
  • AWS IoT Core for Amazon Sidewalk
    • Sidewalk対応デバイスのプロトタイプの構築を開始するには、認定ハードウェア開発キットを購入してSDKをダウンロードする
kazu.okazu.o

よくある質問から抜粋

  • 提供
    • デバイスとAWSクラウドとの接続
    • デバイスから送信されたデータの処理
    • デバイスのアプリ操作
  • IoT Coreに含まれるデバイスゲートウェイによって、デバイスとクラウド間のコミュニケーションを可能にする
  • 2lemetryは、AWSが2015に買収し、その技術は MQT Message Broker, Rule Engine for AWS IoT Core などの基盤要素を提供した
  • AWS IoT Core API
    • コントロールプレーンオペレーション
      • セキュリティの設定、デバイス登録、ルーティングデータのルール設定、ログ記録設定など
      • HTTPS
    • データプレーンオペレーション
      • デバイスからのデータ取り込み
      • HTTPS,WebSocket,MQTT
  • デバイスからIoT CoreへのMQTTメッセージはX.509証明書を使用して認証される
  • アプリからIoT Coreへのアクセス方法
    • 補助アプリケーション
      • クラウド経由でデバイスとやりとりするモバイルアプリorクライアント側のブラウザアプリ
        • 例:消費者がスマホアプリで自宅のスマートロックをリモートで解除する
      • 自身のIDストア、FacebookなどサードパーティIDプロバイダーにより認証が行われる
      • Cognito IDを使用してIoT Coreへのアクセスを承認できる
    • サーバアプリケーション
      • 大量のデバイスを一度に監視・制御
        • 例:リアルタイムで数千台のトラックを地図上に表示する車両管理ウェブサイト
      • EC2でホストしている場合、IoT CoreへアクセスするのにIAMロールを使用可能
    • RESTfule APIを経由してアクセス
    • アプリでは接続されたデバイスと直接通信する pub/sub も可能
  • MQTT
    • 軽量のpub/subプロトコル
  • デバイスシャドウとアプリの連携の一例
    • デバイス(例:電球)をレジストリに登録
    • デバイスの状態(オンの状態で、色は赤)のセットIoT Coreに公開するようにデバイスにプログラム
    • デバイスシャドウに最後に報告された状態が保存
    • アプリ(電球を制御するスマホアプリ)では、RESTful API を使用してIoT Coreに対してクエリを実行して最後に報告された電球の状態を取得(電球に対して直接通信を行う必要はない)
    • ユーザが電球をオフに変更したいとき、アプリからRESTful APIを使用して更新をリクエスト
    • IoT Coreにより、デバイスに対して望ましい状態が同期される
    • アプリでは、デバイスの状態が望ましい状態に更新された場合に通知を受け取る
  • 証明書のジャストインタイム登録
    • 従前は認証機関(CA)の証明書を登録し、その後CAによって署名された証明書を個々に登録するステップ
    • デバイスを接続するときに証明書を自動登録できるようになり、2つ目のステップを省略できるようになった
このスクラップは2024/01/27にクローズされました