Amazon Web Services ブログ

最新情報 – Amazon FreeRTOS 向け Over-the-Air (OTA) Updates

Amazon FreeRTOS はアプライアンス、フィットネストラッカー、業務用センサー、スマートユーティリティメーター、セキュリティシステム、その他などの電源接続型デバイスのマイクロコントローラ用オペレーティングシステムです。小型の低電力デバイス向けにデザインされた Amazon FreeRTOS は、AWS IoT Core などのクラウドサービスと通信するためのライブラリ、また、AWS Greengrass を実行するためのよりパワフルなエッジデバイス (さらに詳しくは、Announcing Amazon FreeRTOS – Enabling Billions of Devices to Securely Benefit from the Cloud) で FreeRTOS のカーネルを拡張します。

ふんだんにローカルメモリーとストレージを用意でき、オンデマンドでコードをロードして実行できる、よりパワフルな汎用コンピュータとは異なり、マイクロコントローラは工場で読み込まれたファームウェアで駆動し、デバイスの寿命を通じてバグフィックスや新機能などで更新されます。一部のデバイスでは現場で、実行中に更新を受け入れるものもありますが、サービスから切断し、取り外して手作業で更新しなければならないものもあります。これは大きな障害で、不便な上、費用もかかります。時間がかかることは言うまでもないでしょう。

いつものことながら、私たちはお客様のためにより良いソリューションを提供したいと考えています。

無線による更新
現在、私たちは現場のデバイスに更新を提供するために使用できる無線の交信メカニズムを追加することで、Amazon FreeRTOS がさらに便利になるよう取り組んでいます。この機能のもっとも重要な特性について以下にまとめました。

セキュリティ – 更新情報は統合コード署名者による署名が可能で、TLS 保護接続全体でターゲットデバイスにストリーミングし、その後、不正や無許可、詐欺的な更新から守るために対象デバイス上で確認することができます。

耐障害性 – デバイスが使いものにならなくなるいわゆる「ブリックド」 (レンガ化した) デバイスの状態を引き起こす可能性のある、問題を含む更新からデバイスを守るために、更新プロセスは回復力があり、一部の更新を処理して反映させ、デバイスを操作可能な状態にできる必要があります。

スケーラビリティ – 取り扱いデバイス群はときに、何千台、何百万台にもなる可能性があり、更新目的で複数のグループに分けることができます。そうした管理は AWS IoT Device Management が行います。

節約 – マイクロコントローラの RAM の量 (しばしば 128KB 程度) とコンピュータの処理能力は限られています。Amazon FreeRTOS は更新用に単独の TLS 接続と他の AWS IoT Core 接続、そして、軽量の MQTT プロトコルを使用することで、この逼迫したリソースを最大限に有効活用します。

各デバイスに OTA Updates Library が含まれていなければなりません。このライブラリには更新ジョブをリッスンし、更新プロセスを監視するエージェントが含まれています。

実行中の OTA
たまたま大量のデバイス群をデプロイしたことはありませんが、この投稿では注目される部分についてのみ触れるにとどめ、詳細については OTA チュートリアルをご覧いただくこととします。

それぞれの更新は AWS IoT の形式をとります。1 件のジョブは対象となるデバイス (ものおよび/またはもののグループ) のリストを指定し、各対象デバイスに実行されるべき操作について説明するジョブドキュメントを参照します。そして、ジョブドキュメントはその更新でデプロイすべきコードまたはデータをポイントし、必要なコード署名オプションを指定します。コードの署名はデプロイされたコンテンツが本物であることを保証します。事前に自分自身でコンテンツに署名することも、ジョブの一部として実行されるようにリクエストすることもできます。

ジョブは 1 回 (スナップショットジョブ)、または対象デバイスで変更が検出されたときに (継続ジョブ) 実行されます。継続ジョブは 1 つのもののグループに追加されるので、初回の実行時または新規デバイスのアップグレード時に使用できます。

ジョブが作成されたあとは、AWS IoT が MQTT 経由で OTA ジョブメッセージを発行します。OTA Updates Library は署名されたコンテンツをストリーミングの形式でダウンロードし、更新を監視して、ステータスを AWS IoT へ報告します。

ユーザーは AWS IoT コンソールからジョブを作成して管理することができ、さらに、CLI や API を使用して独自のツールを構築することもできます。コンソールを開き [Create a job] をクリックし、開始します。

続いて、[Create OTA update job] をクリックします。

ファームウェアのイメージを選択して署名します。

そこから自分のものまたはもののグループを選択し、ジョブを開始し、ステータスをモニタリングします。

繰り返しになりますが、さらに詳しくはチュートリアルをご覧ください。

新しい機能がすでに利用でき、今日からすぐに使用を開始できます。

Jeff;