記事について
AWS IoT Device Managementについての自分用まとめ
今後実際にいくつか使用予定があるため、その際にアップデート予定
IoTでよく出てくる課題、要件
初期化時
- クラウド接続するための個別の認証情報をどうするか
- デバイスの情報をどう登録するか
動作時
- デバイスの設定変更したい
- デバイスの状態を可視化したい
- デバイスで発生している問題を調べたい
更新時
- FW更新をどうするか
AWS IoT Device Management
-
IoT Coreに統合されている
※サービス一覧からIoT Device Managementを検索してジャンプするとIoT Coreが開く -
大量のデバイス向けにデバイスの登録、グルーピング、OTA等のJob、queryベースの検索を提供する管理機能群
主な機能
デバイス登録
膨大な数のIoTデバイスの登録において個別の証明書を発行、デバイスへの埋め込み作業を排除する
以前記事にしたフリートプロビジョニングや、JITR、JITP等のプロビジョニング方式
https://qiita.com/takmot/items/eda7c2f519581b40ec3f
デバイスのグループ化
静的グループ
例えばビル内システムでは、
ビル単位、フロア単位、部屋単位のグループや、機種、機能、セキュリティ要件単位のグループ等
以下想像されるユースケース
- グループ単位のアクセスポリシー管理
- グループ単位のアクション実行(再起動、アップデート等)
動的グループ
指定されたグループ条件を満たすデバイスの追加、条件を満たさなくなったデバイスの削除を自動的に実行
動的グループを作る場合は後述するフリートインデックスを使用する必要がある
以下想像されるユースケース
- ステータスがエラーとなったデバイスをグルーピングして情報の確認、ログの収集
- 旧バージョンのファームウェアを持つ、バッテリー残量80%以上のデバイスをグルーピングしてアップデートを実行
- 料金プランでグルーピングして機能制限等の設定変更
フリートインデックスを使用したデバイス検索
デバイスを指定した条件で絞込検索できる
特定のデバイス情報可視化や、絞り込んだデバイスを動的グループとして前述した動的グループに対する処理が実行できる
以下フリートインデックス作成方法
以下、検索条件として設定できる項目
- モノの名前、説明、属性
- デバイスシャドウで管理されているデバイスのステータスや設定
- モノの接続状態
- グループ名、説明、属性
動的グループ作成
フリートインデックスを有効にすると動的グループ作成が可能
以下のようにクエリ条件を指定し、条件を満たしたデバイスをグルーピング
Job
クラウドからJobとしてJSON形式データを送信しデバイスはJob内容に応じた処理を行う
Jobの状態、結果を通知機能で確認が可能
Jobはジョブドキュメント(JSON形式)で定義
ターゲットは、モノ、モノのグループ
Jobの種類は以下の2つ
-
Snapshot
1回限り実行
Job作成時に存在するモノが対象
ユースケース:- ビル、フロア等グループに対する一括設定変更
- 異常が発生しているデバイスのグループに対する再起動
-
Continuouus
特定の条件に一致した場合に実行
Job作成時、作成後の対象グループに存在するモノが対象
タイムアウト設定可能
ユースケース:- 期間内に接続中かつ、アイドル状態かつ、バッテリー残量80%以上になったデバイスのアップデート
セキュアトンネリング
ファイアウォール内のIoTデバイスに対するリモートアクセスを可能にする
用途としては、デバイスに異常が発生し、デバイスのステータスやログでは原因がわからないような場合に
一時的にトンネルを作成、SSH等でアクセスしデバッグに使用する
デバイス側にLocalproxyアプリケーションをインストールしておく必要あり
参考