エッジコンピューティング機能を完備した安全なクラウド接続型IoTデバイスネットワークを迅速に展開する
DigiKeyの北米担当編集者の提供
2020-05-06
需要は高いですが、エッジコンピューティングリソースを備えたモノのインターネット(IoT)ネットワークの展開は、エンドポイントデバイス、エッジコンピューティングシステム、および安全なクラウドコネクティビティに対する複数の要件をともなう困難な作業になる場合があります。必要とされるソリューションの個別要素は簡単に入手可能ですが、それらすべてをシームレスで効率的なIoTアプリケーションに組み込むには、エンドポイントおよびエッジハードウェアプラットフォームだけでなく、IoTクラウドプロバイダが要求するサービスインターフェース、通信方法、およびセキュリティプロトコルも実装する複雑なタスクに取り組むことが必要です。
最近、開発者がより迅速に市場投入するのに役立つ、さらに高度に統合されたIoTソリューションが次々と登場しています。たとえば、Microchip Technologyの一連のクラウド対応エンドポイントおよびエッジコンピューティング製品は、Amazon Web Services(AWS)IoTサービスおよびAWS IoT Greengrassエッジコンピューティングサービスに簡単に接続できるように設計されたすぐに入手可能なソリューションを提供します。
この記事では、エッジでインテリジェンスを展開する必要がある理由を簡単に説明します。それから、クラウド対応センサエンドポイントシステムとして機能するMicrochipのAWS認定ボクラウドへ送信するデータのードを紹介します。さらに、AWS認証をプリロードしたワイヤレスシステムオンモジュール(SOM)に基づくエッジコンピューティングプラットフォーム、およびAWSクラウドにほぼ透過的なコネクティビティを提供するサービスソフトウェアと、これらのエンドポイントを組み合わせる方法を説明します。
エンドポイントとエッジシステムの結合
低コスト、低電力のシステムが入手しやすくなったため、いわゆるエンドポイントシステム(IoTアプリケーション周辺の末端を構成するセンサおよびアクチュエータデバイス)の実装が簡素化されました。これらのエンドポイントシステムは多くのIoTアプリケーションでクラウドと直接接続しますが、より複雑なアプリケーションにはいわゆるエッジシステム(機能的にはエンドポイントとIoTクラウドの間に位置付けられる)の展開がしばしば必要になります。
一連のIoTエンドポイントに近接してローカル処理機能を提供することにより、エッジシステムはタイトなフィードバックループでレイテンシを低減したり、産業用プロセス制御のタイミング要件を満たしたりできます。エッジシステムは、機械学習推論などのより複雑なアルゴリズムを処理するのに必要なローカルリソース、またはデータを消去して、クラウドへ送信するデータのボリュームと伝送速度を低減するのに使用される高度な前処理ルーチンを提供します。このローカル処理機能は、パブリックインターネットに送信する前のデータ最小化などの高度なセキュリティポリシーおよびプライバシー要件をサポートする上で非常に重要になります。
AWS IoT GreengrassによるIoTアプリケーションの強化
Amazon Web Services(AWS)は、AWS IoT Greengrassサービスによりエッジ処理機能を定型化しています。このサービスは、エッジデバイスでGreengrass Coreとして実行するクラウドサービスの一部を提供します。Greengrassは、スケーラブルなAWSクラウドリソースで実行するクラウドサービスと密接に連携するように設計され、AWS SageMaker完全マネージド型機械学習プラットフォームなどのツールで構築された機械学習推論モデルを展開および更新するための比較的簡単な方法を提供します(図1)。
図1:AWS IoT Greengrassは、ローカル処理、およびAWS SageMaker機械学習環境で訓練された機械学習モデルを含む高度な機能のエッジ展開を簡素化(画像提供:Amazon Web Services)
ローカル処理は、AWS Greengrassなどのエッジサービスのメリットの1つにすぎません。エンドポイントシステムとクラウドリソース間に一種のインターフェースバッファを提供することで、エッジシステムは重要な役割を果たします。これにより、レイテンシの低減、プライバシーとセキュリティの向上、および可用性の向上に対するIoTアプリケーション要件を満たすことができます。AWS Greengrassはこれらの機能を実現するための基盤を提供します。
AWS Greengrassモデルでは、クラウドサービスによる一度限りのディスカバリーフェーズの後に、定義済みGreengrassグループ内のエンドポイントデバイスは、Greengrass Coreデバイスが管理するMQ Telemetry Transport(MQTT)メッセージングを使用して相互にやりとりします(図2)。
図2:AWS IoT Greengrassグループ内で、エンドポイントデバイスは相互に、およびGreengrass Coreが管理するMQTTメッセージングを使用するクラウドと通信可能(画像提供:Amazon Web Services)
デバイスがGreengrassグループで展開されると、クラウドと直接通信するIoTデバイスを使用するIoT展開に見られる長時間のラウンドトリップレイテンシをデバイス同士が連携して回避できます。その代わりに、デバイスは、Greengrass Coreデバイスのローカル処理機能を媒介してMQTTチャネルを通して直接相互に信号を送ることもできます。
クラウドへのコネクティビティが失われると、デバイスはGreengrassコアデバイスの管理下で機能の実行を継続することができます。逆に、デバイスがオフラインになると、他のデバイスやクラウドベースのアプリケーションは、各物理デバイスに関連付けられた仮想デバイスシャドウによって維持されるデータを使用して機能の実行を継続することができます(図3)。
図3:AWS IoT Greengrassのようなエッジコンピューティングサービスアーキテクチャは、最新のデバイス状態データが維持可能なシャドウデバイスを提供することにより、可用性を維持するのに役立ち、これにより、関連付けられた物理デバイスがオフラインになっても、IoTアプリケーションは機能の継続が可能(画像提供:Amazon Web Services)
概念的には簡単ですが、一連のIoTデバイス間でこうした調整を実装するのは困難が伴います。一般的なIoT開発者にとって、このエッジコンピューティング機能を最大限に活用することは、ハードウェア、ソフトウェア、およびシステム管理の課題が絡み合ったものになります。ハードウェアレベルでは、適切なエンドポイントおよびエッジコンピューティングデバイスのネットワークを構築して展開する必要があります。IoTエンドポイントとエッジデバイスのローカルネットワーク内、およびクラウドサービスで安全な通信を実装するためのソフトウェアを作成する必要があります。最後に、これらのデバイスを適切に構成し、適切な秘密鍵と認証でプロビジョニングし、相互にそしてIoTクラウドサービスで認証する必要があります。
このプロセスを簡素化するため、一連のMicrochipボードは、エンドポイントとエッジデバイスの両方に対してAWS認定ドロップインソリューションを提供します。これにより、ローカルのAWS Greengrass CoreおよびクラウドのAWS IoT Coreに簡単かつ安全に接続できます。
クラウド対応エンドポイントシステム
MicrochipのPIC-IoT WAおよびAVR-IoT WAボードは、エンドポイントシステムとしての迅速な展開を目的として、AWS IoT Coreとのすぐに入手可能なコネクティビティを提供するために設計されています。この2つのボードの全体的な機能は同じですが、MicrochipのPICマイクロコントローラ ファミリやMicrochipのAVR ATmegaマイクロコントローラ ファミリに慣れた開発者にとって馴染みのあるプラットフォームを提供するために設計されています。MicrochipのATMEGA4808 8ビットマイクロコントローラをベースとするAVR-IoT WAボードは、MicrochipのPIC24FJ128GA705 16ビットマイクロコントローラをベースとするPIC-IoT WAと同じ部品セットを使用します(図4)。
図4:MicrochipのAVR-IoT WAおよびPIC-IoT WAボードでは、異なるMicrochipマイクロコントローラ(ここに示されたPIC-IoT WAボード向けの16ビットPICマイクロコントローラを含む)の周辺に構築されたサポートデバイスと同じ装備を含むクラウド対応エンドポイントシステムが利用可能(画像提供:Microchip Technology)
コネクティビティ用に、各ボードには低電力IoTデバイス用に特別に設計されたMicrochipのATWINC1510-MR210PB認定Wi-Fiモジュールが含まれています。このモジュールは、8メガビットのフラッシュと、パワーアンプ(PA)、低ノイズアンプ(LNA)、RFスイッチ、電源管理、およびプリントアンテナを含む完全な伝送およびレシーバ無線周波数(RF)信号チェーンを統合します。迅速なファームウェアブート機能を実現するための統合型ブート読み取り専用メモリ(ROM)に加えて、内蔵ネットワークスタックは、トランスポートレイヤセキュリティ(TLS)およびWi-Fiセキュリティプロトコルを高速化するハードウェアアクセラレータを使用して、標準インターネットプロトコルをサポートします。
MicrochipのMCP9808高精度デジタル温度センサおよびVishayのTEMT6000X01フォトダイオードセンサの他に、各ボードにはmikroBUSコネクタが含まれます。このコネクタを使用して、入手可能なMikroe Click Boardsの幅広い品揃えからアドオンボードを選択することにより、開発者はハードウェアベースを簡単に拡張できます。電源およびバッテリ管理用に、各ボードにはMicrochipのMCP73871T-2CCI/MLデバイスが含まれています。これにより、システム電源と、USB電源またはウォールアダプタから充電可能なリチウムイオン電池の両方が利用可能です。
セキュリティ用に、各ボードにはMicrochipのATECC608Aセキュアエレメントが含まれています。これらのボードにおいて、AWS IoT認証およびセキュリティメカニズムのサポートをすぐに提供できるように、このデバイスは鍵と証明書で事前にプロビジョニングされています。
これらのボードはオンボードハードウェア部品群および事前にロードされたファームウェアを使用し、最小限の労力でAWS IoT Coreに接続できるように設計されています。開発者に必要なのは、パーソナルコンピュータに接続されたマイクロUSBケーブルを使用して、ボードを起動することだけです。独自のまたは開発者の認証情報を使用してボードをローカルWi-Fiアクセスポイントに接続した後に、Wi-Fiモジュールの内蔵TCP/IPスタックおよび事前にプロビジョニングされたセキュリティ認証を使用して、AWS IoT CoreとのMQTT接続が自動的に確立されます。MQTT接続を確立した後、ボードはすぐに温度センサおよび光センサからデータの送信を開始します。開発者は、Microchipサンドボックスアカウントのデバイス専用ページでその結果を表示できます。
Microchipは、PIC-IoT WAコードおよびAVR-IoT WAコード用の別個のリポジトリでこのベースラインアプリケーションを提供します。クラウドと通信してセンサデータを送信したり、コマンドやデータを受信したりする際にこのコードを調べることにより、開発者はMQTT接続の使用などの基本設計パターンを素早く理解することができます(図1)。
コピー
// This will get called every 1 second only while we have a valid Cloud connection
static void sendToCloud(void)
{
static char json[PAYLOAD_SIZE];
static char publishMqttTopic[PUBLISH_TOPIC_SIZE];
ledTickState_t ledState;
int rawTemperature = 0;
int light = 0;
int len = 0;
memset((void*)publishMqttTopic, 0, sizeof(publishMqttTopic));
sprintf(publishMqttTopic, "%s/sensors", cid);
// This part runs every CFG_SEND_INTERVAL seconds
if (shared_networking_params.haveAPConnection)
{
rawTemperature = SENSORS_getTempValue();
light = SENSORS_getLightValue();
len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d}", light,rawTemperature/100,abs(rawTemperature)%100);
}
if (len >0)
{
CLOUD_publishData((uint8_t*)publishMqttTopic ,(uint8_t*)json, len);
if (holdCount)
{
holdCount--;
}
else
{
ledState.Full2Sec = LED_BLIP;
LED_modeYellow(ledState);
}
}
}
//This handles messages published from the MQTT server when subscribed
static void receivedFromCloud(uint8_t *topic, uint8_t *payload)
{
char *toggleToken = "\"toggle\":";
char *subString;
ledTickState_t ledState;
sprintf(mqttSubscribeTopic, "$aws/things/%s/shadow/update/delta", cid);
if (strncmp((void*) mqttSubscribeTopic, (void*) topic, strlen(mqttSubscribeTopic)) == 0)
{
if ((subString = strstr((char*)payload, toggleToken)))
{
if (subString[strlen(toggleToken)] == '1')
{
setToggleState(TOGGLE_ON);
ledState.Full2Sec = LED_ON_STATIC;
LED_modeYellow(ledState);
}
else
{
setToggleState(TOGGLE_OFF);
ledState.Full2Sec = LED_OFF_STATIC;
LED_modeYellow(ledState);
}
holdCount = 2;
}
}
debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "topic: %s", topic);
debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "payload: %s", payload);
updateDeviceShadow();
}
リスト1:開発者はMicrochipのソフトウェアリポジトリのサンプルコードを調べることで、以下の2つの関数で示すように、クラウドサービスとのMQTTメッセージ交換などの主な設計パターンをより深く理解できます(コード提供:Microchip Technology)
開発者は、さまざまな開発リソースを使用してこのコードを拡張できます。Microchipは、MPLAB X統合開発環境(IDE)、クラウドベースのMPLAB Xpress IDE、および無償のMPLAB XCコンパイラにより、カスタムソフトウェア開発をサポートします。デバッギング用に、各ボードにはMicrochip PICkit On-Board(PKOB)ナノデバッガが含まれています。そのため、デバッギングハードウェアインターフェースを追加する必要はありません。開発者は、MPLAB X IDEで作業しながら、パーソナルコンピュータへのUSB接続経由でPKOBデバッガにアクセスします。
AWS Greengrass対応ソリューション
Microchipは、AWS Greengrassに基づくエッジコンピューティングリソースによってIoTネットワークを拡張することで、クラウド接続エンドポイントの展開とほぼ同じほど簡単にしています。
エッジコンピューティングプラットフォーム用に、MicrochipはAWS認定AWS Greengrassサポート付きのATSAMA5D27-WLSOM1ワイヤレス(WL)システムオンモジュール(SoM)を提供しています。Microchipエンドポイントボードと同様に、ATSAMA5D27-WLSOM1は、AWS IoT Coreサービスへ簡単に接続できるように設計された包括的なハードウェアプラットフォームを提供します(図5)。
図5:MicrochipのATSAMA5D27-WLSOM1は、AWS IoT Greengrass認定エッジコンピューティングシステムを提供するのに必要なデバイスの全装備を統合(画像提供:Microchip Technology)
ホストプロセッサ用に、WLSOM1は低電力SAMA5D27システムインパッケージ(SiP)ATSAMA5D27C-LD2G-CUを使用します。これには、Microchipの高性能Arm Cortex-A5プロセッサベースのSAMA5D27が内蔵されており、2ギガビットのLPDDR2-SDRAM(低電力2倍速同期式DRAM)が含まれます。
エンドポイントボードと同様に、MicrochipのWLSOM1には認定ワイヤレスモジュールが含まれます。この場合、MicrochipはATWILC3000を使用します。これは、内蔵ハードウェアアクセラレータ、内蔵プロセッサ、およびスタックファームウェアの組み合わせを使用して、Wi-FiおよびBluetoothコネクティビティの共存をサポートします。また、WLSOM1はMicrochipのKSZ8081RNAIA Ethernetトランシーバが管理する有線コネクティビティも提供します。Microchipには64MビットのSST26VF064BEUIフラッシュが含まれます。これには、IEEEが割り当てた6バイトの一意の拡張識別子(EUI-48)および8バイトのEUI-64が事前にプロビジョニングされています。これにより、パブリックインターネットに安心して接続するために必要なグローバルに一意のMACアドレスが保証されます。(「MACアドレス内蔵のフラッシュメモリは開発に真に有用なデバイス」を参照してください。)
最後に、WLSOM1にはハードウェアベースのセキュリティ用のATECC608Aセキュアエレメントが含まれます。高レベルな統合のおかげで、ボード設計にハードウェアインターフェースを実装するためのデカップリングコンデンサおよびプルアップ抵抗以外にWLSOM1が必要とする部品の数は比較的少なくなっています。
AWS IoT Greengrass上でのWLSOM1ベースのボードの構築は、あまり労力を要しません。実際、労力のほとんどはAWSサービスを使用するための設定と関係しています。Microchipは、開発者にそのための段階的なガイドを提供しています。これには、AWSアカウントの作成方法、Greengrassコアとエンドポイントデバイスから成るGreengrassグループの定義方法が含まれます。Linux開発システムで対象システムを構築した後で、開発者は対象画像、Greengrass Coreソフトウェア、および証明書をWLSOM1にアップロードします。これには、一般的にセキュアデジタルカード(SDカード)フラッシュドライブを使用します。
ATECC608Aセキュアエレメントが提供するハードウェアベースのセキュリティのおかげで、認証および安全な通信は開発者にとって透過的に動作します。ただし、Greengrassエッジシステムでは、ATECC608Aはエッジシステム上で実行されているGreengrass CoreとAWSクラウド間のセキュアな通信の基盤となる秘密鍵の保護においてより重要な役割を果たします。
Greengrassグループのデバイスは、相互認証においてデジタル証明書とグループ内およびクラウドベースのAWSサービスでのメッセージに依存しています(図6)。基盤となるセキュリティメカニズムおよびプロトコルが秘密鍵の露出または不正な証明書により損なわれた場合、グループおよびクラウドベースのリソースも損なわれる可能性があります。
図6:安全な通信トランザクションを確保するために、AWSクラウドサービスおよびAWS IoT Greengrassグループは、エンドポイントやGreengrass Coreデバイスに保存された秘密鍵により保護された複数の証明書に依存(画像提供: Amazon Web Service
AWSは、ハードウェアセキュアエレメントを組み込んだ信頼済みデバイスのみとのインタラクションを許可することにより、それ自体とユーザのアプリケーションを保護します。これにより、Greengrass CoreデバイスとAWS IoT Core間、およびGreengrass Coreデバイスとエンドポイント間の安全な通信に使用される秘密鍵を保護できます(図7)。
図7:Greengrass Coreデバイスは、MicrochipのATSAMA5D27-WLSOM1ワイヤレスSOMに内蔵されたATECC608Aデバイスなどのセキュアエレメントを使用する秘密鍵のセキュアストレージに依存(画像提供:Amazon Web Services)
AWSは、WLSOM1およびATECC608Aセキュアエレメントをセキュリティ要件を満たすGreengrass認定ソリューションとして特定しました。実際、ATECC608Aは、IoT Greengrass Hardware Security Integration(HSI)で提供されるAWSの向上したセキュリティ機能をサポートしています。HSIは、Public Key Cryptography Standards #11を使用します。これは、秘密鍵を保存するのに使用されるプロセッサとハードウェアセキュリティモジュール(HSM)間の通信における業界標準APIを定義します。WLSOM1では、ATECC608AはAWS Greengrass認定HSMとして設計されています。この標準セキュリティインターフェースのサポートは、エッジシステムで使用されるLinuxベースのシステム全般、とりわけGreengrass Coreデバイスにおいて特に重要です。
この安全なソフトウェア基盤を使用することにより、開発者はGreengrass Coreエッジシステムを安全に拡張できます。このシステムは、比較的簡単なイベント駆動型プログラミングモデルを提供するAWS Lambda関数を使用したローカル処理機能を備えています。Greengrass Coreデバイス上で実行されているカスタムコードは特定のアプリケーション要件をサポートできますが、AWS Lambda関数はこれらのデバイスがAWSクラウドサービスと直接やりとりできるようにします。たとえば、開発者は、Amazonのデータストレージ用NoSQL DynamoDBデータベース管理システムなどのAWSサービスまたは広範なAWS製品の他のサービスとエンドポイントを接続するLambda関数を簡単に実装できます(図8)。
図8:AWS IoT Greengrassにより、エッジシステムはAWS Lambda関数の使用を含むローカル処理を提供して、データストレージ、機械学習、および他の機能においてAWSクラウドサービスと簡単に統合可能(画像提供:Amazon Web Services)
結論
エッジコンピューティングリソースを備えたIoTネットワークの展開は、エンドポイントデバイス、エッジコンピューティングシステム、安全なクラウドコネクティビティなど、複数の要件をともなう困難な事業になる場合があります。必要なソリューションの各部分は存在しますが、それらを調整されたIoTアプリケーションに統合するとなると、開発者はIoTクラウドプロバイダが要求するサービスインターフェース、通信方法、およびセキュリティプロトコルを実装するという複雑なタスクに直面することになります。
前述のとおり、Microchip Technologyの一連のクラウド対応エンドポイントおよびエッジコンピューティング製品は、AWS IoTサービスおよびAWS IoT Greengrassエッジコンピューティングサービスに簡単に接続できるように設計されたすぐに入手可能なソリューションを提供します。開発者は、MicrochipのAWS認定エンドポイントボードおよびワイヤレスSoM(システムオンモジュール)エッジコンピューティングプラットフォームを使用して、AWSクラウドにほぼ透過的なコネクティビティを提供し、IoTネットワーク展開を加速化できます。
参考情報
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。


