メインコンテンツに移動
デベロッパーのためのクラウド活用方法

見える化の先は"解かる化" ? チャットするだけで理解できる IoT プラットフォームの作り方

2025-06-03 | Author : 森田 和明 (富士ソフト株式会社)

はじめに

こんにちは。富士ソフト株式会社の森田 和明です。

普段は IoT クラウド基盤アーキテクトとして、お客様の IoT サービスを実現する AWS アーキテクチャの検討、提案、構築を行っています。最近は生成 AI にも活動の幅を広げ、お客様を広くご支援しています。

製造現場では「データはあるが活用できていない」「設備トラブルの予兆を捉えられない」「エネルギー消費の無駄を特定できない」といった課題を多く耳にします。これらの解決には、データ収集から分析・活用までの一貫したプラットフォームが必要です。

AWS IoT SiteWise は、こうした課題に対する強力なソリューションを提供します。エッジでのデータ収集からクラウドでの保存・分析まで、フルマネージドで実現できるため、システム構築の負担を大幅に軽減できます。

本記事では、AWS IoT SiteWise を中心に、工場 IoT の実装から生成 AI を活用したデータ分析までの具体的な手順を解説します。技術的な専門知識がなくても導入できるよう、設定手順を詳細に説明していますので、製造業の DX 担当者様はぜひご活用ください。

 

X ポスト » | Facebook シェア » | はてブ »

ご注意

本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。

*ハンズオン記事およびソースコードにおける免責事項 »

builders.flash メールメンバー登録

builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。

今すぐ登録 »

1. AWS のアーキテクチャ

今回構築する AWS のアーキテクチャはこちらです。

使用するサービスの概要

使用するサービスの概要と利用用途は以下のとおりです。

  • AWS IoT SiteWise : 産業機器からの IoT データの収集と保管を行うサービス。エッジ側には SiteWise Edge をインストールします
  • Amazon Managed Grafana : オープンソースのダッシュボード「Grafana」を AWS がマネージドで提供するサービス。
  • Amazon S3 : AWS IoT SiteWise のコールドストレージ機能を有効にすることで IoT データをエクスポートし、S3に格納。
  • AWS Glue : S3 に出力されたデータに対するテーブル情報を、Glue データカタログとして保持。
  • AWS Lake Formation : Glue テーブルに対するアクセス制御を行う。
  • Amazon Redshift : Glue テーブルに対するクエリ (SQL) を実行する。
  • Amazon Bedrock : 生成 AI サービス。Bedrock ナレッジベースの機能として構造化データを使った RAG を構築。
このアーキテクチャにより、工場設備からのデータ収集、長期保存、分析、そして生成 AI による高度な活用までをシームレスに実現できます。使用するサービスの数が多いですが、それぞれの手順はそれほど難しくありません。それでは、実際の構築手順を見ていきましょう。

2. AWS IoT SiteWise Edge をインストールしてみよう

2-1. Raspberry Pi を準備

ゲートウェイデバイスとして、今回は Raspberry Pi 4 を使用しました。

  • Raspberry Pi 4 (メモリ 8GB)
  • microSD カード (16GB のものを使用)

OS は Raspberry Pi の公式サイト で公開されている「Raspberry Pi Imager」を使って microSD カードにインストールします。

Missing alt text value

「Ubuntu Desktop 24.04.2 LTS (64-bit)」を選択

OS は、「Ubuntu Desktop 24.04.2 LTS (64-bit)」を選択します。Raspberry Pi OS を選択すると、後述の手順ではインストールできませんのでご注意ください。

Missing alt text value

Ubuntu の初期設定

OS のインストールが完了したら、モニター、マウス、キーボードを接続し、Ubuntu の初期設定を行います。

OpenSSH サーバーをインストール

この先の手順は Raspberry Pi に SSH で接続して行いますので、以下のコマンドを実行して OpenSSH サーバーをインストールしてください。

bash
sudo apt update
sudo apt install -y openssh-server

これで Raspberry Pi の準備は完了です。

2-2. SiteWise Edge を作成

それでは、SiteWise Edge を作成しましょう。マネジメントコンソールを使用して行います。
マネジメントコンソールで「AWS IoT SiteWise」の管理画面を開きます。

メニューの「Edge ゲートウェイ」を選択します。

Missing alt text value

ゲートウェイを作成

ゲートウェイを作成」をクリックします。

Missing alt text value

デプロイターゲットとゲートウェイの設定

デプロイターゲットとゲートウェイの設定を以下の通り設定します。

  1. デプロイターゲットを選択 : セルフホストゲートウェイ
  2. セルフホストゲートウェイのオプション : MQTT 対応、V3
  3. ゲートウェイ名 : 自動で入力された値
  4. Greengrass デバイス OS : Linux - ARMv8 (AArch64)
Missing alt text value

ゲートウェイを作成

入力後、「ゲートウェイを作成」をクリックします。

Missing alt text value

SiteWise Edgeゲートウェイインストーラーを生成

SiteWise Edgeゲートウェイインストーラーを生成ダイアログが表示されますので、「生成してダウンロード」をクリックします。 

Missing alt text value

SiteWise Edge 作成完了

私の環境では「Gateway-G6OzkFxPV.deploy.sh」というファイル名のインストーラーが生成され、自動でダウンロードされました。

これで SiteWise Edge の作成は完了です。インストーラーを使って、Raspberry Pi にインストールしましょう。

2-3. SiteWise Edge をインストール

Raspberry Pi に SSH で接続してインストールを行います。

私はコマンドが苦手なので、Remote - SSH という Visual Studio Code の拡張機能を使って Raspberry Pi に接続します。普段使っている IDE の環境を使って Raspberry Pi の操作ができるので重宝しています。

先ほどダウンロードしたインストーラー(Gateway-G6OzkFxPV.deploy.sh)を Raspberry Pi にコピーします。

Missing alt text value

curl をインストール

まずは、インストールに必要な curl をインストールします。

bash
sudo apt install -y curl

インストーラーを実行

その後、インストーラーを実行します。

bash
chmod +x ./Gateway-G6OzkFxPV.deploy.sh
sudo ./Gateway-G6OzkFxPV.deploy.sh

インストールを開始

SiteWise Edge の動作に必要なライブラリーをチェックし、不足しているものは自動でインストールされます。Open JDK 11 と Docker が不足しているようです。「Y」で返答するとインストールが開始されます。

Missing alt text value

インストール完了

インストールはこれだけで完了です。

しばらくすると、マネジメントコンソール上のオンラインステータスが「オンライン」に、パブリッシャーの設定ステータスが「同期中」に更新されます。

Missing alt text value

AWS クラウドとの接続完了

これで SiteWise Edge のインストールと、AWS クラウドとの接続まで完了しました。

3. SiteWise Edge でデータ収集してみよう

では、SiteWise Edge でデータを収集してクラウドに送信したいと思います。

OPC-UA のシミュレーターアーキテクチャ図

しかしここで重大なことに気が付きました。自宅で検証を進めているため、OPC-UA で通信できる機材がありません。そのため、OPC-UA のシミュレーターを作成することにしました。

3-1. OPC-UA シミュレーターを Amazon Q Developer で作成

OPC-UA シミュレーターを作成すると決めたものの、どうやって作ればいいのか分かりません。ここで登場するのが Amazon Q Developer です。

Amazon Q Developer は、生成 AI を活用したソフトウェア開発のためのアシスタントです。Visual Studio Code をはじめとする複数の IDE に対応しており、 CLI (コマンドラインインターフェイス) も提供されています。

Missing alt text value

エージェント機能

Amazon Q Developer には「エージェント機能」があり、指示を与えるだけでプログラム一式を生成させることができます。この機能を使って OPC-UA シミュレーターを作成してもらいましょう。

Missing alt text value

OPC-UA シミュレーターの概要ファイル作成

OPC-UA シミュレーターの概要を、「task.md」というファイル名で作成しました。

python
AWS IoT SiteWiseのテスト環境を作成します。SiteWise Edgeの動作確認をするために、OPC-UAサーバーのシミュレーターが必要になりました。

# 条件
- Python3.12環境で動作する
- 5秒間隔でデータ取得する想定
- 値は毎秒少しずつ変化する
- センサーの種類や数はお任せします。製造工場をイメージしてほしいです。
- 設備の数は1つで十分です。
- 1時間に1回程度(ランダム)で、機器の故障を想定した動作をする。

# 成果物
- Pythonプログラム

AWS IoT SiteWiseのテスト環境を作成

そして、Amazon Q Developer に以下のように指示をします。(「/dev」がエージェント機能として動作させるコマンドです。)

/dev task.mdの内容を確認して実行してください

Missing alt text value

OPC-UA シミュレーター作成完了

すると、OPC-UA シミュレーターを作成してくれました !

作成されたファイルは以下の 3 つです。README や依存ライブラリーに関するファイルまで作成されます。

  • README.md
  • opcua_simulator.py
  • requirements.txt

3-2. OPC-UA シミュレーターを起動

Python の仮想環境を作成します。

bash
sudo apt install -y python3-pip python3-venv

python3 -m venv .venv
source .venv/bin/activate

ライブラリーをインストール

ライブラリーをインストールします。

bash
pip install -r requirements.txt

OPC-UA シミュレーターを起動

OPC-UA シミュレーターを起動します。

bash
python opcua_simulator.py

起動成功 !

ログが出力され、どうやらうまく起動できたようです。

 

次の手順では、クラウド側の設定を行います。

Missing alt text value

3-3. SiteWise Edge のデータ収集設定

OPC-UA シミュレーターからデータを収集するように、SiteWise Edge を設定します。SiteWise Edge の設定はマネジメントコンソールで行います。

Edge ゲートウェイの設定画面のデータソースセクションにある「データソースを追加」をクリックします。

Missing alt text value

設定項目を入力

以下の設定項目を入力します。ローカルエンドポイントは、シミュレーターの README に記載がありました !

  1. ソース名: opc-ua-server
  2. ローカルエンドポイント: opc.tcp://0.0.0.0:4840/freeopcua/server/
入力後、「 保存」をクリックします。
Missing alt text value

「同期中」ステータス

設定ステータスが「同期中」に変わるまで待ちます。私の場合は 5 分程で変わりました。

Missing alt text value

設定完了 !

これで設定は完了です。


ここまでの手順がうまくできていれば、OPC-UA シミュレーターのデータはクラウドに届いています。マネジメントコンソールの「データストリーム」メニューを開くとデータが届いているかどうか確認できます。

「アセットプロパティ名」や「アセット名」が空欄で表示されます。これは、 クラウドにデータは届いているが、SiteWiseの管理対象ではない状態です。管理対象とするため、アセットモデルとアセットを作成します。

Missing alt text value

3-4. アセットモデルとアセットを作成

まずはアセットモデルを作成します。アセットモデルは簡単に言うと、アセット (資産) の定義です。(プログラムが分かる人向けに表現すると、アセットモデルがクラスでアセットがインスタンスのような関係です。) アセットとアセットモデルを使うことで、大量の設備の情報を体系的に管理し、効率的なアセット運用管理が可能になるなどのメリットがあります。

アセットモデルは以下の手順で作成します。

メニューの「モデル」を選択します。「アセットモデルを作成」をクリックします。

Missing alt text value

モデルの詳細

モデルの詳細の名前に「ManufacturingEquipment」 と入力します。

Missing alt text value

「測定」→ 「新しい測定値を追加」

定義セクションの「測定」を選択し、「新しい測定値を追加」をクリックします。

Missing alt text value

測定値を定義

アセットモデルの測定値を定義します。今回はシミュレーターが送信する値に合わせて定義します。

Missing alt text value
Missing alt text value

モデルの作成

 入力後、画面下部の「モデルの作成」をクリックします。

Missing alt text value

アセットの作成

続いて、アセットを作成します。

メニューの「アセット」を選択します。「アセットの作成」をクリックします。

Missing alt text value

モデルと名前入力

以下の内容を入力します。

  • モデル : ManufacturingEquipment
  • 名前 : ManufacturingEquipment1

入力後、「アセットの作成」をクリックします。

Missing alt text value

データストリームとアセットの紐づけ

これでアセットの作成は完了です。

最後にデータストリームとアセットの紐づけを行います。
メニューの「データストリーム」を選択します。すべてのデータストリームにチェックを入れ、「データストリームを管理」をクリックします。

Missing alt text value

測定値にチェック

左の「測定値を選択」をクリックし、対応する測定値にチェックを入れます。その後、右上の「選択」をクリックします。

Missing alt text value

データストリームとアセットの測定値の紐付け

この操作によって、データストリームとアセットの測定値が紐づけられます。

Missing alt text value

更新

すべての測定値の紐づけができたら、画面中央下部の「更新」をクリックします。

Missing alt text value

データストリームとアセットの紐づけ完了

これで、データストリームとアセットの紐づけが完了です。

メニューの「アセット」から ManufacturingEquipment1 を選択すると、プロパティの測定にある「最新の値」と「最新の値のタイムスタンプ」に値が反映されていることが分かります。

これで、OPC-UAシミュレーターで生成された値が、SiteWise Edge で収集され、クラウド上のアセットに正しく登録されました。

Missing alt text value

4. Amazon Managed Grafana で可視化してみよう

無事、AWS IoT SiteWise にデータが登録されましたので、可視化してみましょう。AWS IoT SiteWise のデータの可視化に適しているサービスが、Amazon Managed Grafana です。

4-1. Amazon Managed Grafanaを 構築

マネジメントコンソールで「Amazon Managed Grafana」の管理画面を開きます。

ワークスペースを作成」をクリックします。

Missing alt text value

ワークスペース名

ワークスペース名に「grafana-workspace」と入力し「次へ」をクリックします。

Missing alt text value

ユーザー認証方式を指定

Amazon Managed Grafana を使用するユーザーをどの方式で認証するか指定します。今回は IAM Identity Center を使用するので「AWS IAM ID センター (AWS SSO の後継)」にチェックを入れます。

Missing alt text value

設定は変更せず、「次へ」

他の設定は変更せず、画面最下部の「次へ」をクリックします。

Missing alt text value

IAM ロール権限付与の設定

ここでは Amazon Managed Grafana にアタッチされる IAM ロールに対する権限付与の設定を行います。データソースの一覧から「AWS IoT SiteWise」にチェックを入れ、「次へ」をクリックします。

Missing alt text value

Amazon Managed Grafana ワークスペース作成完了

確認画面が表示されるので画面最下部の「ワークスペースを作成」をクリックします。

これでAmazon Managed Grafanaのワークスペースが作成されました。

Missing alt text value

4-2. Amazon Managed Grafana へサインインするユーザーを追加

Amazon Managed Grafanaにサインインするユーザーを追加します。

ユーザーとユーザーグループの設定」をクリックします。

Missing alt text value

ユーザーとグループを割り当て

追加したいユーザーにチェックを入れ「ユーザーとグループを割り当て」をクリックします。

Missing alt text value

管理者権限に変更

この状態では閲覧者権限なので管理者権限に変更します。対象のユーザーを選択した状態で「アクション」メニューの「管理者を作成する」をクリックします。

 

これで Amazon Managed Grafana にログインするユーザーの追加が完了しました。

Missing alt text value

4-3. プラグイン管理機能の有効化

Amazon Managed Grafana で AWS IoT SiteWise のデータを表示するためには、プラグインを追加する必要があります。Amazon Managed Grafana にプラグインを追加できるよう設定を変更します。

ワークスペース設定オプションタブを選択し、プラグイン管理セクションの「編集」をクリックします。

Missing alt text value

プラグインの追加

プラグイン管理をオンにする」にチェックを入れ、「変更の保存」をクリックします。

これでプラグインの追加が可能になりました。

Missing alt text value

4-4. Amazon Managed Grafana の設定

ここからは Amazon Managed Grafana の画面で設定を行います。

Grafana ワークスペースの URL にアクセスし、「Sign in with AWS IAM Identity Center」をクリックします。

Missing alt text value

Amazon Managed Grafana の画面

Amazon Managed Grafana の画面が表示されます。

Missing alt text value

AWS Data Sources

AWS IoT SiteWise プラグインを追加します。
メニューの「AWS Data Sources」をクリックします。

Missing alt text value

インストール

IoT SiteWiseの横の「Install now」をクリックします。

Missing alt text value

Install 2.2.0

右上の「Install 2.2.0」をクリックします。

Missing alt text value

Add new data source

インストールが完了したら、「Add new data source」をクリックします。

Missing alt text value

Save & test

この画面では特に設定を変更する必要はありません。画面最下部の「Save & test」をクリックします。

 

これで、Amazon Managed Grafana でAWS IoT SiteWise のデータを使用できるようになりました。

Missing alt text value

4-5. グラフを作成

それではグラフを作ってみましょう。
メニューの「Dashboards」をクリックして遷移した画面の「Create Dashboard」をクリックします。

Missing alt text value

Add visualization

Add visualization」をクリックします。

Missing alt text value

「grafana-iot-sitewise-datasource」

grafana-iot-sitewise-datasource」をクリックします。

Missing alt text value

値を設定

以下の値を設定します。

  • Query type : Get property value history
  • Asset : ManufacturingEquipment1
  • Property : Temperature

値を変更後、「Run queries」をクリックします。右上の Panel Title も必要に応じて変更し、「Apply」をクリックします。

Missing alt text value

ダッシュボード作成完了

これでパネルが追加されました。画面上部の保存アイコンをクリックすることで、ダッシュボードとして保存できます。

Add visualization 以降の手順を繰り返して複数のパネルを追加することで、このようなダッシュボードを作成できました ! (テーマカラーはブラウザの設定が反映されます)

Missing alt text value

筆者プロフィール

森田和明
富士ソフト株式会社
エリア事業本部 西日本支社 第2システム部 第5技術グループ

業務系 Web システム開発やモバイルアプリ開発の経験を経て、2015 年頃から AWS 案件に従事。
サーバーレスのメリットを活かした様々な IoT 案件に携わった後、現在は生成 AI にも活動の幅を広げ、お客様を広くご支援しています。

AWS Ambassador (2023 ~)、Japan AWS Top Engineer (2020 ~)、Japan AWS All Certifications Engineer (2024) 認定
著書「Amazon Bedrock 生成AIアプリ開発入門」(SBクリエイティブ刊)

Missing alt text value