見える化の先は"解かる化" ? 

チャットするだけで理解できる IoT プラットフォームの作り方

2025-06-03
デベロッパーのためのクラウド活用方法

Author : 森田 和明 (富士ソフト株式会社)

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

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

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

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

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

ご注意

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

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

このクラウドレシピ (ハンズオン記事) を無料でお試しいただけます »

毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。 


1. AWS のアーキテクチャ

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

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

  • AWS IoT SiteWise : 産業機器からの IoT データの収集と保管を行うサービス。エッジ側には SiteWise Edge をインストールします。
  • HAQM Managed Grafana : オープンソースのダッシュボード「Grafana」を AWS がマネージドで提供するサービス。
  • HAQM S3 : AWS IoT SiteWise のコールドストレージ機能を有効にすることで IoT データをエクスポートし、S3に格納。
  • AWS Glue : S3 に出力されたデータに対するテーブル情報を、Glue データカタログとして保持。
  • AWS Lake Formation : Glue テーブルに対するアクセス制御を行う。
  • HAQM Redshift : Glue テーブルに対するクエリ (SQL) を実行する。
  • HAQM 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 カードにインストールします。

クリックすると拡大します

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

クリックすると拡大します

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

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

sudo apt update
sudo apt install -y openssh-server

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

2-2. SiteWise Edge を作成

それでは、SiteWise Edge を作成しましょう。マネジメントコンソールを使用して行います。

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

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

クリックすると拡大します

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

クリックすると拡大します

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

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

クリックすると拡大します

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

クリックすると拡大します

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 にコピーします。

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

sudo apt install -y curl

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

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

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

クリックすると拡大します

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

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

クリックすると拡大します

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


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

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

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

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

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

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

クリックすると拡大します

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

クリックすると拡大します

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

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

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

# 成果物
- Pythonプログラム

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

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

クリックすると拡大します

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

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

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

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

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

sudo apt install -y python3-pip python3-venv

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

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

pip install -r requirements.txt

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

python opcua_simulator.py

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

クリックすると拡大します

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

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

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

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

クリックすると拡大します

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

  1. ソース名: opc-ua-server
  2. ローカルエンドポイント: opc.tcp://0.0.0.0:4840/freeopcua/server/

入力後、「保存」をクリックします。

クリックすると拡大します

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

クリックすると拡大します

これで設定は完了です。

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

クリックすると拡大します

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

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

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

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

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

名前 単位 データ型
Temperature °C ダブル
Pressure kPa ダブル
Vibration mm/s ダブル
Motor Speed RPM ダブル
Power Consumption kW ダブル
Production Rate units/hour ダブル
Operational Status   ブール
Maintenance Status   ブール

クリックすると拡大します

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

クリックすると拡大します

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

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

クリックすると拡大します

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

  • モデル : ManufacturingEquipment
  • 名前 : ManufacturingEquipment1

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

クリックすると拡大します

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

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

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

クリックすると拡大します

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


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

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

4-1. HAQM Managed Grafanaを 構築

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

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します


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

クリックすると拡大します

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

クリックすると拡大します

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

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

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

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

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

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

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

クリックすると拡大します

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

クリックすると拡大します

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

4-4. HAQM Managed Grafana の設定

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

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

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

4-5. グラフを作成

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

クリックすると拡大します

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

クリックすると拡大します

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

クリックすると拡大します

以下の値を設定します。

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

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

クリックすると拡大します

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

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

クリックすると拡大します


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

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

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

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

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する