運用する
IoT では、運用状態はクラウドアプリケーションの運用状態にとどまらず、アプリケーションの一部であるデバイスの測定、モニタリング、トラブルシューティング、修復を行う機能が拡張されますが、ローカルでのトラブルシューティングが困難または不可能な場所にリモートにデプロイされます。このリモート運用の要件は、これらのリモートデバイスから送信されるメトリクスを検査、分析、および実行できるようにするために、設計および実装時に考慮する必要があります。
IoT では、デバイスの動作の適切なベースラインメトリクスを確立し、デバイス間で発生する問題を集計および推測できるようにする必要があります。また、クラウドで実行されるだけでなく、デバイスファームウェアの一部も実行される堅牢な修復計画が必要です。一般的なデバイスインタラクションを本番システムに対して直接テストし続けるさまざまなデバイスシミュレーション Canary を実装する必要があります。Device Canary は、運用メトリクスが満たされない場合に調査する可能性のある領域を絞り込むのを支援します。Device Canary を使用して、Canary メトリクスが予想される SLA を下回ったときにプリエンプティブアラームを発生させることができます。
AWS では、AWS IoT Core のデバイスレジストリで物理デバイスごとに AWS IoT のモノを作成できます。レジストリでモノを作成することで、メタデータをデバイスに関連付けたり、デバイスをグループ化したり、デバイスのセキュリティアクセス許可を設定したりできます。AWS IoT のモノは、モノの関連付けられた Device Shadow に動的デバイスデータを保存しながら、モノのレジストリに静的データを保存するために使用する必要があります。デバイスのシャドウは、デバイスの状態情報の保存と取得に使用される JSON ドキュメントです。
運用プロセスの一環として、デバイスレジストリでデバイスの仮想表現を作成することに加えて、IoT デバイスを定義する同様の静的属性をカプセル化するモノのタイプを作成する必要があります。モノのタイプは、デバイスの製品分類に似ています。モノ、モノのタイプ、Device Shadow の組み合わせは、IoT オペレーションで使用される重要なメタデータを保存するための最初のエントリポイントとして機能します。
AWS IoT では、モノのグループを使用してデバイスをカテゴリ別に管理できます。グループには他のグループを含めることもできます。これにより、階層を構築できます。 IoT アプリケーションの組織構造により、関連するデバイスをデバイスグループ別にすばやく特定して対応できます。クラウドを活用すると、ビジネスロジックとデバイスのライフサイクルに基づいて、グループからのデバイスの追加や削除を自動化できます。
IoT では、デバイスはレジストリまたはデバイスのシャドウに保存されていないテレメトリまたは診断メッセージを作成します。代わりに、これらのメッセージは多数の MQTT トピックを使用して AWS IoT に配信されます。このデータを実行可能にするには、AWS IoT ルールエンジンを使用してエラーメッセージを自動修復プロセスにルーティングし、IoT メッセージに診断情報を追加します。エラーステータスコードを含むメッセージをカスタムワークフローにルーティングする方法の例を以下に示します。ルールエンジンはメッセージのステータスを検査し、エラーの場合は Step Function ワークフローを開始して、エラーメッセージの詳細ペイロードに基づいてデバイスを修復します。
{ "sql": "SELECT * FROM 'command/iot/response WHERE code = 'error'", "ruleDisabled": false, "description": "Error Handling Workflow", "awsIotSqlVersion": "2016-03-23", "actions": [{ "stepFunctions": { "executionNamePrefix": "errorExecution", "stateMachineName": "errorStateMachine", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_step_functions" } }] }
クラウドアプリケーションの運用上のインサイトをサポートするには、AWS IoT Core のデバイスブローカーから収集されたすべてのメトリクスのダッシュボードを生成します。これらのメトリクスは CloudWatch メトリクスを通じて利用できます。さらに、CloudWatch Logs には、インバウンド成功したメッセージの合計、アウトバウンドメッセージ、接続の成功、エラーなどの情報が含まれます。
本番用デバイスのデプロイを補強するには、複数の AWS リージョンにまたがるデバイス Canary として Amazon Elastic Compute Cloud (Amazon EC2) で IoT シミュレーションを実装します。これらのデバイス Canary は、長時間実行されるトランザクションなどのエラー条件のシミュレーション、テレメトリの送信、制御オペレーションの実装など、いくつかのビジネスユースケースをミラーリングします。デバイスシミュレーションフレームワークは、成功、エラー、レイテンシー、デバイスの順序など、広範なメトリクスを出力し、すべてのメトリクスをオペレーションシステムに送信する必要があります。
AWS IoT では、カスタムダッシュボードに加えて、Thing Registry および Device Shadow サービスから、AWS IoT フリートインデックス作成などの検索機能を通じて、フリートレベルおよびデバイスレベルのインサイトが提供されます。フリート全体を検索する機能により、IoT の問題を診断するための運用オーバーヘッドが軽減されます。デバイスレベルまたはフリート全体のレベルで発生したかどうかは関係ありません。