AWS Greengrassの違いについて聞かれることが増えてきました。確かにサービスとしては似ているのですが、違いもあります。そこで今回は相違点をまとめて解説します。なお双方のサービスともに日々進化していますので、内容は2018年11月現在のものになります。
基本はIoTデバイスでのコード実行
isaaxとAWS Greengrassはどちらも
コードをIoTデバイスで実行するという意味では同じです。IoTデバイスは多数管理しなければならないことが多く、
最新のコードを各デバイスに配布するのはとても大変です。そうした面倒な運用から開放してくれるサービスになります。
実行できるプログラミング言語の違い
AWS GreengrassはAWS Lambda向けに書かれたコードをIoTデバイスにデプロイします。そのため、
AWS Lambdaに対応した言語しか使えません。2018年11月現在ではNode.js、Java、C#、Go および Pythonとなっています。
isaaxは
プログラミング言語の制約はありません。上記の言語はもちろんのことRuby、PHP、Perl、実行ファイルなど任意の言語で利用可能です。
バージョン管理
AWS GreengrassというよりAWS Lambdaの仕様上ですが、コードはWebブラウザ上で書くか、まとめてZipファイルにしてアップロードする必要があります。その手間を省いてくれるソフトウェアもありますが、用意する手間があります(例えばCI連携など)。
isaaxの場合、GitHubやBitBucketにプッシュしたコードをそのままIoTデバイスにデプロイします。GitHubリリースを用いることもできます。普段から慣れているワークフローを用いてIoT開発に取り組めます。
AWS IoT Device Shadow
AWS GreengrassにはデフォルトでAWS IoT
Device Shadowが組み込まれています。Device ShadowはIoTデバイスとクラウドを繋いで、クラウド側で出した指令をネットワークが繋がったタイミングでデバイスに反映、実行する仕組みになります。
isaaxでは同種の仕組みは提供していませんが、AWS IoT Coreと共存できますのでAWS IoT Device Shadowを利用できます。
ローカルメッセージング
AWS Greengrassの
ローカルメッセージングはローカルネットワーク内のIoTデバイス同士でメッセージを送受信する仕組みです。この仕組みはisaaxでは用意されていないので自分たちで開発しなければなりません。
機械学習
AWS GreengrassをIoTデバイスにインストールするとTensorFlowやApache MXNet、Chainerなどが自動でデプロイされます。これらを使うことで、
機械学習環境を整える手間が不要になります。
isaaxではそういった仕組みは用意していませんので、自分で好きな機械学習プラットフォームをインストールし、利用できます。
サポートプラットフォーム
AWS GreengrassはARMまたはx86(64ビット)のRaspbian Jessie、Amazon Linux、Ubuntu 16.04/14.04となっています。また128MB以上のRAMが必要とされています。プログラミング言語のバージョン制約もあります。
AWS Greengrass とは – AWS Greengrass
isaaxは
Linuxディストリビューションに関する制約はありません。任意のLinuxを用いて開発できます。
料金
AWS Greengrassは3台以下の場合は1年間無料ですが、基本的に1台あたり月$0.16〜0.22となっています(リージョンにより異なる)。1万台まで同じ料金なので、例えば1,000台管理する場合は月160ドル〜220ドルかかる計算になります。ただし、別途データ転送量とストレージ利用料が発生しますので実際の金額はこれよりも大きくなることを留意してください。
料金 – AWS Greengrass | AWS
isaaxでは3台までのフリープラン、20台までのビジネスプラン、そしてそれ以上のエンタープライズプランに分かれています。ビジネスプランは月額5万円、エンタープライズプランはお問い合わせとなっています。
月額利用料とオプション料金に関する情報 | Isaax IoT
まとめ
AWS Greengrassでは便利な機能もたくさんありますが、isaaxに比べると制約も多くなっています。特にプログラミング言語の制約と、コードのアップロードがネックになるかも知れません。isaaxの場合はそういった制約はありませんが、ローカルメッセージングや機械学習環境を自分で用意する必要があります。
どちらが良くて、どちらが悪いという訳ではありません。皆さんのIoTプロジェクトの要件に合わせて最適な方を選択してください!(
もちろんisaaxを選んでもらえれば嬉しいですが)]]>