IoTアプリケーションの開発においても、今やパブリッククラウドの利用が主流となっている。ここでも強さをみせているのがAWSとAzureだ。2強を追うグーグル等もIoT向けサービスを拡充しているが、AWS/Azureと他社で大きく異なるのがエッジコンピューティング戦略の充実度である。
AWSは2017年6月に、エッジデバイスで動作する「AWS Greengrass」の一般利用を開始。約1年後の2018年6月にはマイクロソフトが「Azure IoT Edge」の一般提供を始めた。
AWS GreengrassもAzure IoT Edgeも、クラウドの機能をエッジに拡張するサービスだ。それぞれの機能と、両社のエッジ戦略について見ていこう。前編ではAWS Greengrassを紹介する。
機械学習をエッジデバイスで実行AWS Greengrassは、クラウドサービス「AWS IoT」で提供されている各種機能をエッジデバイスで利用するためのサービスだ。AWSの各種サービスとの連携が可能で、クラウドのメリットを活かしつつローカル側で処理を行うことにより、遅延を短縮したり、クラウドとつながっていないオフライン時でも処理を継続できるといったメリットが得られる。
AWS Greengrassは、ゲートウェイ装置やPCサーバー等で動作するソフトウェア(Greengrass Core)と、クラウドサービス(Greengrass Service)とで構成される(図表1)。Greengrass Coreを動作させるハードウェアは、実行したいアプリケーションの要件に合わせて選択可能だ。
図表1 AWS Greengrassの概要
デバイスの接続や管理、メッセージ交換、セキュリティといったAWS IoTの機能をローカル側で使えるほか、エッジならではの機能も用意されている。
1つが「AWS Lambda」をローカルで実行する機能だ。
Lambdaは、サーバーレスでプログラムを実行できるサービスだ。サーバーの設定や管理をすることなく、例えば「こんなデータが上がってきたら、この処理を行う」といったコードを書き、クラウド上に置いておくだけでアプリケーションを構築・実行できる。AWS Greengrassでは、このLambdaをエッジ上に配備して実行させることが可能だ。
そのほか、AWS IoTで用いているMQTTと、産業用機械における標準通信規格OPC-UAとの通信を可能にするプロトコルアダプタや、IoTデバイスにセキュアに接続するためのローカルリソースアクセス等の機能も備えている。