Top View


Author Yuhei Okazaki

AWS IoT SiteWise ワークショップをやってみた(前編)

2023/05/19

AWS IoT SiteWise ワークショップに取り組んだ理由

IoTチームでは、名前の通りIoTシステムの案件にいくつか取り組んでいるのですが、最近では製造業のお客様から相談いただくケースが増えてきています。

私自身Fusicに入社する前は、PLC関連の製品の開発に携わっていました。これは自分の解釈ですが、製造業はIoTという言葉が世に出る前から、データを集めて可視化して分析するという文化が根付いている業界です。事実、IoTという言葉が登場したのは2015年頃ですが、Industry 4.0というコンセプトは2011年から謳われていました。このため、工場内で扱われている機械や制御機器・プロトコルも独自の進化をしていて、これらに対する理解がないとなかなかIoTシステムを成立させることが難しいと考えています。

そういった前提もあり、工場とクラウドをシームレスに繋ぐ手段として、AWS IoT GreengrassとAWS IoT SiteWiseには以前から興味を持っていました。そこで今回、技術時間を活用してワークショップに取り組んだ次第です。

1. CloudFormation で AWS リソースを起動

AWSのワークショップではお馴染みの、事前に用意された各種リソースの構築作業ですね。

CloudFormationスタックを用いて、必要なリソースが構築されます。今回は工場で動作するデバイスの代わりにCloud9を用いるようです。

引用元: https://iot-sitewise.workshop.aws/ja/10_launch-workshop-resources-with-cloudformation.html

以降の手順で使用するリージョンと同じリージョンを選択して作成する必要があるので、そこだけしっかり確認して進めるようにしましょう。自分は気づかないうちにシドニーリージョンで作業していて、やり直しが発生しました。

2. AWS IoT Core の設定

「設定」とありますが、ここで実行するのはAWS IoT Coreのログ出力の有効化のみでした。

この設定はデフォルトでは無効化されていますし、IoTシステムを開発していて「デバイスからデータを送ったのに、AWS IoT Coreのルールが適用されない」といったトラブルはしばしば起こるので、事前にやっておくことが大事ですね。

3. AWS IoT SiteWise の設定

AWS IoT SiteWiseとの連携を始めるにあたり、AWS IoT Greengrassのセットアップから始めていきます。AWS IoT Greengrassについては 前回 にしっかり学んだところなのでスムーズに取り扱うことができました。

aws.iot.SiteWiseEdgeCollectorOpcuaaws.iot.SiteWiseEdgePublisher という2つのコンポーネントをコアデバイスにデプロイするところがポイントですね。これを入れることでAWS IoT SiteWiseコンソールから、エッジの動作設定をリモートで適用して、指定したOPC-UAサーバーからデータを取り込んでクラウドに送ってくれます。つまり、現場ではOPA-UAサーバーにデータを貯めるところまでができていれば良いので、OPC-UAサーバーが責任分界点となるわけです。

OPC-UAサーバーはこれまで言葉を聞いたことがある程度の理解しかなかったのですが、IoTシステムを開発していく上ではキーマンになるであろう要素だということがわかってきました。

4. AWS IoT SiteWise へのデータ取り込み

AWS IoT SiteWiseがデータを取り込むために、モデルとアセットと呼ばれるものを作る必要があります。モデルとはいわゆるスキーマ定義、プログラミングで言うところのクラスのような抽象化された概念であると理解しました。アセットはモデルを元に実態化されたモノそのものです。

AWS IoT SiteWiseへのデータの取り込み方法は大きく3つあります。

  1. AWS IoT SiteWise ゲートウェイ(AWS IoT Greengrass)を使用して OPC-UA サーバーからデータを送信
  2. AWS IoT ルールを使用して、AWS IoT のモノや他の AWS サービスが送信した MQTT メッセージをデータとして送信
  3. AWS IoT SiteWise PUT API を使用して、その他のソースからデータを送信

実際のところ、AWS IoT Greengrassが使えるケースはまだそこまで多くないので、多くのデバイスが対応しやすい2の方法が現実的だと感じました。

5. AWS IoT SiteWise Monitor

いよいよAWS IoT SiteWise Monitorを使ったダッシュボードの作成です。ここではその前に、モデルとアセットを追加して、デバイスの階層構造を定義します。これにより、完成したダッシュボードでは「全発電所>発電所>発電機」のようにモノをドリルダウンしながらモニタリングすることが可能となります。

手順に沿ってダッシュボードを作成すると、最終的にこういった画面が完成しました。すごい!(6章以降の作業も少し混じっていますが)

ちょっとしたPoCであれば、これで十分データの可視化・分析ができそうですね。

所感

前半の段階でデータの収集〜可視化まで簡単に実現できてしまいました。

AWS IoT SiteWiseはあくまで「産業機器」を対象にしたサービスですが、モデルやアセットの定義やダッシュボードの作成に関しては産業機器以外のIoTでも活用できるように感じました。これまで、マネージドな可視化サービスとしては「Amazon QuickSight」「Amazon Managed Service for Grafana」くらいしか引き出しがなかったので、今回より簡単かつ高度な可視化ができることがわかったことは大きな収穫です。

後半の記事もお楽しみに。

Yuhei Okazaki

Yuhei Okazaki

Twitter X

2018年の年明けに組込み畑からやってきた、2児の父 兼 Webエンジニアです。 mockmockの開発・運用を担当しており、組込みエンジニア時代の経験を活かしてデバイスをプログラミングしたり、簡易的なIoTシステムを作ったりしています。主な開発言語はRuby、時々Go。