

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# MQTT 対応 V3 ゲートウェイを使用してデータを SiteWise Edge に統合する
<a name="integrate_sitewise_edge_mqtt"></a>

このチュートリアルでは、MQTT メッセージングプロトコルを使用するサードパーティーのデバイスとセンサーを AWS IoT SiteWise MQTT 対応 V3 ゲートウェイと統合する方法について説明します。MQTT 対応デバイスからデータを収集してモニタリングするように AWS IoT SiteWise エッジゲートウェイを設定する方法について説明します。 AWS IoT SiteWise を使用すると、産業機器データを収集、処理、モニタリングできます。SiteWise Edge 機能を使用して、産業用 IoT オペレーションを最適化し、未加工データを実用的なインサイトに変換します。

このチュートリアルでは、風力発電所のデモンストレーションのデータを使用して、主要な概念を説明します。プロセスに慣れたら、独自のデータを使用してチュートリアルを繰り返すことができます。

 このチュートリアルを完了したら、次の項目を実行できます。
+ 産業用デバイスからデータを受信するように MQTT 対応の V3 ゲートウェイを設定および設定する
+ エッジの機器からの受信 MQTT メッセージを処理および検証する
+ サードパーティーの視覚化プラットフォーム AWS IoT SiteWise を使用して でデバイスデータを表示する
+ エッジゲートウェイから に処理されたデータを送信 AWS クラウド して、一元化されたストレージと詳細な分析を可能にする

さらに、他の AWS IoT サービスに接続して次のタスクを実行することで、エッジゲートウェイ機能を活用できます。
+ Amazon [Amazon S3](https://aws.amazon.com/s3/) [Timestream](https://aws.amazon.com/timestream/)、 などのサービスにデータをルーティングする AWS IoT ルールを設定します[AWS Lambda](https://aws.amazon.com/lambda/)。
+ [AWS IoT Device Defender](https://aws.amazon.com/iot-device-defender/) を使用して、ゲートウェイ設定をリモートで管理および更新します。
+  AWS IoT セキュリティ機能を使用して、安全なデバイスの認証と認可を実装します。詳細については、「 *AWS IoT デベロッパーガイド*」の[AWS IoT 「 セキュリティ](https://docs.aws.amazon.com/iot/latest/developerguide/iot-security.html)」を参照してください。
+ 機器データに基づいて自動アラートと通知を作成します。詳細については、「 *AWS IoT デベロッパーガイド*」の[「 のルール AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)」を参照してください。

**注記**  
このチュートリアルでは、サードパーティーのサービス、ツール、およびドキュメントを参照します。 AWS は、サードパーティー製品またはサービスのベンダーまたはサプライヤーではなく、外部プロバイダーからの情報の正確性を保証することはできません。デプロイ前に、すべてのサードパーティーツールを評価して検証します。

**Topics**
+ [前提条件](#gateway-tutorial-prerequisites)
+ [ステップ 1: AWS IoT ポリシーを作成する](#gateway-tutorial-create-iot-policy)
+ [ステップ 2: AWS IoT モノを作成して設定する](#gateway-tutorial-create-and-configure-aws-iot-thing)
+ [ステップ 3: SiteWise Edge MQTT 対応 V3 ゲートウェイを設定する](#gateway-tutorial-configure-your-edge-gateway)
+ [ステップ 4: SiteWise Edge ゲートウェイソフトウェアをインストールする](#install-gateway-software)
+ [ステップ 5: 外部アプリケーションに接続するように EMQX ブローカーを設定する](#configure-emqx-broker-external-applications)
+ [ステップ 6: Mosquitto でデータを発行する](#add-mqtt-data-source)
+ [ステップ 7: 送信先を指定する](#specify-destinations)
+ [ステップ 8: パスフィルターを指定する](#specify-path-filters)
+ [ステップ 9: AWS IoT リソースを設定する](#configure-iot-resources)
+ [ステップ 10: データを視覚化する](#visualize-your-data)
+ [ステップ 11: チュートリアルの後にリソースをクリーンアップする](#tutorial-clean-up-resources)
+ [その他のリソース](#additional-resources)

## 前提条件
<a name="gateway-tutorial-prerequisites"></a>

このチュートリアルを完了するには、以下が必要です。
+  AWS アカウント。アカウントをお持ちでない場合は、「[AWS アカウントを設定する](getting-started.md#set-up-aws-account)」を参照してください。
+ 管理者権限を持つ AWS Identity and Access Management (IAM) ユーザー。詳細については、「[の ID とアクセスの管理 AWS IoT SiteWise](security-iam.md)」を参照してください。
+ デバイスにPythonインストールされている の最新バージョン。

**重要**  
このチュートリアルでは、[Ingest データ](ingest-data-from-iot-things.md)チュートリアルで作成されたリソースを使用する必要があります。このチュートリアルに進む前に完了する必要があります。

## ステップ 1: AWS IoT ポリシーを作成する
<a name="gateway-tutorial-create-iot-policy"></a>

このチュートリアルでは、[データ取り込み](ingest-data-from-iot-things.md)チュートリアルで作成した AWS IoT ポリシーを使用します。このポリシーは、デバイスのセキュリティルールを設定し、外部デバイスとセンサーのデジタル表現を作成します AWS IoT。このポリシーにより、サードパーティーデバイスは MQTT (Message Queuing Telemetry Transport) AWS IoT Core を使用して にデータを送信できます。MQTT メッセージの詳細については、「[MQTT とは](https://aws.amazon.com/what-is/mqtt/)」を参照してください。

------
#### [ Console ]

 AWS IoT ポリシーが完了していることを確認します。詳細な手順については、[「データを取り込む」チュートリアルの](ingest-data-from-iot-things.md)[「ステップ 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)」を参照してください。

**アクティブな AWS IoT ポリシーがあることを確認するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

1. 左側のナビゲーションペインで、**証券**、**ポリシー**を選択します。

1. 作成したポリシーを選択します。例えば、**SiteWiseTutorialDevicePolicy**。

1. ポリシーのステータスがアクティブとしてリストされていることを確認します。

------
#### [ AWS CLI ]

 AWS IoT ポリシーが完了していることを確認します。詳細な手順については、[「データを取り込む」チュートリアルの](ingest-data-from-iot-things.md)[「ステップ 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)」を参照してください。

*AWS CLI コマンドリファレンス*の次の AWS CLI [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iot/get-policy.html) コマンドを使用して、アクティブな AWS IoT ポリシーがあることを確認します。

```
aws iot get-policy --policy-name "SiteWiseTutorialDevicePolicy"
```

------

このポリシーにより、 AWS IoT デバイスは接続を確立し、MQTT メッセージを使用してデバイスシャドウと通信できるようになります。デバイスシャドウを操作するために、 AWS IoT モノは で始まるトピックで MQTT メッセージを発行および受信します`$aws/things/{{thing-name}}/shadow/`。このポリシーには、`${iot:Connection.Thing.ThingName}` と呼ばれるモノのポリシー変数が組み込まれています。この変数は、各トピックで接続されたモノの名前に置き換わります。`iot:Connect` ステートメントはデバイスが接続を確立できる制限を設定し、モノのポリシー変数は、`SiteWiseTutorialDevice` で始まる名前のみに置き換えることができます。

詳細については、*[AWS IoT Developer Guide]* (デベロッパーガイド) の[[Thing policy variables]](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html) (シングポリシー変数) を参照してください。

**注記**  
このポリシーは、名前が `SiteWiseTutorialDevice` で始まるモノに適用されます。モノに別の名前を使用するには、それに応じてポリシーを更新する必要があります。

## ステップ 2: AWS IoT モノを作成して設定する
<a name="gateway-tutorial-create-and-configure-aws-iot-thing"></a>

このステップでは、エッジデバイスを AWS IoT モノとして登録し、 AWS IoT SiteWise Edge との安全な通信に必要なモノの証明書とキーを生成します。このプロセスは、デバイスが MQTT 対応 V3 ゲートウェイを介してサードパーティーデータを送信するための基盤を確立します。

------
#### [ Console ]

 AWS IoT モノの作成および設定手順が完了していることを確認します。詳細な手順については、「データを取り込む」チュートリアルの[「ステップ 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)」を参照してください。 [AWS IoT モノ AWS IoT SiteWise から にデータを取り込む](ingest-data-from-iot-things.md)

**アクティブな AWS IoT モノがあることを確認するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

1. 左側のナビゲーションペインで、**すべてのデバイス**、**モノ**を選択します。

1. 作成したモノを選択します。例えば、**SiteWiseTutorialDevice1**。

1. **証明書**で、ステータスがアクティブとしてリストされていることを確認します。

------
#### [ AWS CLI ]

 AWS IoT モノの作成および設定手順が完了していることを確認します。詳細な手順については、「データを取り込む」チュートリアルの[「ステップ 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)」を参照してください。 [AWS IoT モノ AWS IoT SiteWise から にデータを取り込む](ingest-data-from-iot-things.md)

次の AWS CLI コマンドを使用して、アクティブな AWS IoT ポリシーがあることを確認します。

```
 aws iot describe-thing --thing-name "SiteWiseTutorialDevice1"
```

------

これらのステップを完了すると、デバイスを AWS IoT SiteWise Edge に安全に接続できます。MQTT 認証用に生成した証明書とキーを保存するローカルディレクトリを作成しました。デバイスは [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に AWS IoT モノとして登録され、デバイスはデータを SiteWise Edge と統合する準備が整います。産業用機器やその他のデバイスを AWS IoT プラットフォームに接続し、SiteWise Edge へのデータの取り込みを開始できます。

## ステップ 3: SiteWise Edge MQTT 対応 V3 ゲートウェイを設定する
<a name="gateway-tutorial-configure-your-edge-gateway"></a>

このステップでは、 AWS IoT SiteWise Edge MQTT 対応 V3 ゲートウェイを作成し、EMQX ブローカーからデータを受信するように設定します。ゲートウェイは、デバイスと の間のブリッジとして機能します AWS IoT。これにより、 に送信する前に、エッジでローカルにデータを処理できます AWS クラウド。この設定により、帯域幅が減少し、クラウド処理の遅延が軽減されます。

------
#### [ Console ]

** AWS IoT SiteWise MQTT 対応 V3 ゲートウェイを作成するには**

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/) にサインインして、[AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/) を開きます。

1. 左側のナビゲーションペインで、**エッジゲートウェイ**を選択し、**ゲートウェイの作成**を選択します。

1. **デプロイターゲット**で、**セルフホストゲートウェイ**を選択します。

1. セルフホストゲートウェイオプションで、**MQTT 対応、V3 ゲートウェイ - *推奨***を選択します。

1. **ゲートウェイ設定**で:

   1. **ゲートウェイ名**に、ゲートウェイの名前を入力します。例えば、**SiteWise Tutorial Device Gateway**。

   1. **Greengrass デバイス OS** で、デバイスに適したオプションを選択します。

1. **詳細設定**:

   1. **デフォルト設定**を選択します。

   1. Greengrass コアデバイスの名前を入力するか、 によって生成された名前を使用します AWS IoT SiteWise。

1. [**Create gateway (ゲートウェイの作成) **] を選択します。

1. 確認ダイアログで、**生成とダウンロード**を選択して SiteWise Edge ゲートウェイのインストーラを生成します。詳細については、[「セルフホスト SiteWise Edge ゲートウェイを作成する](create-gateway-ggv2.md#configure-gateway-console)」を参照してください。

**警告**  
インストーラファイルを安全な場所に保存します。このファイルは再生成できず、後のステップでゲートウェイのセットアップを完了するために必要です。

------
#### [ AWS CLI ]

 AWS CLI を使用してセルフホスト型ゲートウェイを作成します。ゲートウェイの名前を指定し、プラットフォームとゲートウェイのバージョンを指定する必要があります。詳細については、 *AWS IoT SiteWise API リファレンス*の[CreateGateway](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateGateway.html)」を参照してください。

この例を使用するには、ユーザー入力プレースホルダーを独自の情報に置き換えます。

```
aws iotsitewise create-gateway \
    --gateway-name SiteWise Tutorial Device Gateway \
    --gateway-platform greengrassV2={coreDeviceThingName={{your-core-device-thing-name}}, coreDeviceOperatingSystem={{LINUX_AMD64}}} \                        
    --gateway-version {{3}} \
    [--cli-input-json {{your-configuration}}]
```
+ `gateway-name` – ゲートウェイの一意の名前。例: `SiteWise Tutorial Device Gateway`。
+ `gateway-platform` – と入力します`greengrassV2`。詳細については、 *AWS IoT SiteWise API リファレンス*の[CreateGateway](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateGateway.html)」を参照してください。
  + `coreDeviceThingName` – AWS IoT Greengrass V2 コアデバイスの AWS IoT モノの名前。例えば、`SiteWiseTutorialDevice1`。
  + `coreDeviceOperatingSystem` – のコアデバイスのオペレーティングシステム AWS IoT Greengrass V2。Gateway-version 3 にはオペレーティングシステムの指定が必要です。オプションには`LINUX_AARCH64`、、`LINUX_AMD64`、および が含まれます`WINDOWS_AMD64`。
+ `gateway-version` – ゲートウェイのバージョン。
  + ゲートウェイバージョン`3`に を使用して、MQTT 対応の V3 ゲートウェイを作成します。
+ `cli-input-json` – リクエストパラメータを含む JSON ファイル。

 次の AWS CLI コマンドを使用して、ゲートウェイが正常に作成されたことを確認します。

```
aws iotsitewise describe-gateway --gateway-id {{your-gateway-id}}
```

------

## ステップ 4: SiteWise Edge ゲートウェイソフトウェアをインストールする
<a name="install-gateway-software"></a>

ゲートウェイソフトウェアをインストールするには、前のステップでダウンロードしたインストーラパッケージを使用します。インストールプロセスでは、必要なコンポーネントを設定し、Greengrass コアサービスを開始し、デバイスを に登録します AWS IoT Greengrass。インストールが完了したら、ゲートウェイが **Edge** ゲートウェイの[AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に表示され、Greengrass サービスがデバイスで正しく実行されていることを確認します。

詳細な手順については、「[ローカルデバイスに AWS IoT SiteWise Edge ゲートウェイソフトウェアをインストールする](install-gateway-software-on-local-device.md)」を参照してください。

## ステップ 5: 外部アプリケーションに接続するように EMQX ブローカーを設定する
<a name="configure-emqx-broker-external-applications"></a>

**注記**  
 続行する前に、SiteWise Edge MQTT 対応 V3 ゲートウェイをデプロイしておく必要があります。ゲートウェイは、EMQX ブローカーの設定に必要なインフラストラクチャとセキュリティ設定を提供します。ブローカー設定は、アクティブなゲートウェイのデプロイなしで失敗します。

IoT デバイスと外部アプリケーション間の安全な通信を有効にするように EMQX ブローカーを設定します。EMQX ブローカーは、IoT デバイス、ゲートウェイ、アプリケーション間でデータをルーティングする中央メッセージングハブとして機能します。EMQX ブローカーは、ゲートウェイとエッジの接続されたアプリケーションで信頼性の高いメッセージ配信を実現します。詳細については、「[外部アプリケーションを EMQX ブローカーに接続する](connect-external-applications-emqx.md)」を参照してください。

**EMQX ブローカーを設定するには**

1. EMQX ブローカーをセットアップします。詳細な設定手順については、[「認証用の EMQX デプロイ設定を更新する」のステップ ](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)1～14 に従ってください。

1. 風力発電所のモニタリング用に MQTT トピックを設定します。MQTT 要件の詳細については、「」を参照してください[MQTT トピックの要件](connect-broker-payload-format.md#connect-broker-mqtt-requirements)。

   1. CPU 使用率: `SiteWiseTutorialDevice/cpu`

   1. メモリ使用量: `SiteWiseTutorialDevice/memory`

   1. タイムスタンプ: `SiteWiseTutorialDevice/timestamp`

1. 設定を確認し、デプロイを完了します。

   1. **確認** を選択して設定を保存します。

   1. **レビュー**ステップに達するまで**次へ**を選択します。

   1. [**Review**] ページで、[**デプロイ**] を選択します。

   1. デプロイが正常に完了するのを待ってから続行します。

1. EMQX ブローカーに送信するペイロード形式を使用してメッセージを準備します。ペイロードの構造化の詳細については、[「認証用の EMQX デプロイ設定の更新](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)」を参照してください。

1. 次のセキュリティ対策を実装します。

   1. Transport Layer Security (TLS) 暗号化 (ポート 8833) を使用して、転送中のデータを保護します。詳細については、「[AWS IoT SiteWise Edge の EMQX ブローカーへの安全な接続のために TLS を設定する](connect-app-to-broker.md#configure-tls-emqx-broker)」を参照してください。

   1. ユーザー名とパスワード認証を設定して、デバイス ID を検証します。このセキュリティ対策は、データを保護するのに役立ち、承認されたデバイスのみがシステムに接続できるようにします。詳細については、「[ユーザー名とパスワード認証を有効にする](configure-emqx-broker.md#emqx-broker-username-password-auth)」を参照してください。

EMQX では、ユーザー名、IP アドレス、クライアント ID などの識別子に基づいて認可ルールを作成できます。これは、データへのアクセスを制御するのに役立ちます。詳細については、「[EMQX で AWS IoT SiteWise Edge の認可ルールを設定する](authorization-rules-emqx-broker.md)」を参照してください。

デプロイが成功すると、EMQX ブローカーが設定され、外部アプリケーションに安全に接続する準備が整います。

**注記**  
ペイロード形式は、 AWS IoT SiteWise Edge がデータを適切に処理して取り込むための特定の構造に従う必要があります。必要な構造の詳細については、「」を参照してください[JSON ペイロード構造](connect-broker-payload-format.md#connect-broker-json-payload)。

**例: CPU、メモリ、タイムスタンプの JSON ペイロードを追加する**

**CPU JSON ペイロード**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/cpu",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 45.2
      }
    }
  ]
}
```

**メモリ JSON ペイロード**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/memory",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 67.8
      }
    }
  ]
}
```

**タイムスタンプ JSON ペイロード**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/timestamp",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 23.5
      }
    }
  ]
}
```

**注記**  
各 JSON ペイロードは、個別のメッセージとして個別に発行する必要があります。複数のプロパティ値を 1 つのメッセージに結合しないでください。各 CPU、メモリ、タイムスタンプペイロードを独自の MQTT パブリケーションとして送信します。

ペイロードは、IoT デバイスが EMQX ブローカーを介して SiteWise Edge にデバイスデータを送信するために使用する必要のある JSON 構造を定義します。この形式により、 AWS IoT SiteWise はデバイスを識別し、センサーの読み取りを処理できます。これらの設定とペイロード構造を実装すると、風力発電所モニタリングシステムがデータを収集して処理する準備が整います。

## ステップ 6: Mosquitto でデータを発行する
<a name="add-mqtt-data-source"></a>

MQTT 対応 V3 ゲートウェイを作成したら、テストデータを SiteWise Edge に送信するように Eclipse Mosquitto を設定します。Mosquitto は、デバイス間の軽量メッセージングに MQTT プロトコルを使用するオープンソースの MQTT メッセージブローカーです。Mosquitto クライアントを使用すると、風力発電所センサーからのデータをシミュレートして、MQTT トピックにメッセージを発行できます。Mosquitto を使用して、サードパーティーのサービスや追加の機器を必要とすることなく、デバイスデータをシミュレートします。詳細については、公式の Eclipse Mosquitto ウェブサイトの[ドキュメント](https://mosquitto.org)を参照してください。このチュートリアルでは、[Ingest データ](ingest-data-from-iot-things.md)チュートリアルのローカルデータと架空のデータがデモンストレーション目的で使用されています。

**Mosquitto CLI クライアントを使用して SiteWise Edge EMQX ブローカーをテストする **

1. ローカルデバイスに Mosquitto をインストールします。詳細な手順については、公式の Eclipse [Mosquitto ウェブサイトの「Download](https://mosquitto.org/download/) Mosquitto」を参照してください。

1. 産業データを転送するために外部アプリケーションを接続する方法の詳細については、「」を参照してください[外部アプリケーションを EMQX ブローカーに接続する](connect-external-applications-emqx.md)。

**重要**  
ここで設定する MQTT 接続設定が、Mosquitto publish コマンドで使用されている設定と一致していることを確認します。ホストは SiteWise Edge ゲートウェイの IP アドレスまたはホスト名である必要があります。ポートは通常 1883 (SSL/TLS を使用している場合は 8883) です。

Mosquitto を使用してテストデータを公開します。コマンドラインを開き、次のコマンドを実行します。

**例: CPU プロパティ **

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/cpu" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/cpu",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 45.2
      }
    }
  ]
}'
```

**例: メモリプロパティ**

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/memory" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/memory",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 72.1
      }
    }
  ]
}'
```

**例: Timestamp プロパティ**

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/timestamp" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/timestamp",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 1683000000
      }
    }
  ]
}'
```

**注記**  
EMQX ブローカーアドレス`localhost`としての の使用は、デモンストレーションのみを目的としています。本番環境または外部デバイスから接続する場合は、特定のデプロイ設定に適切な EMQX ブローカーアドレスを使用する必要があります。接続手順の詳細については、「」を参照してください[Edge の EMQX ブローカーにアプリケーションを接続する AWS IoT SiteWise](connect-app-to-broker.md)。

## ステップ 7: 送信先を指定する
<a name="specify-destinations"></a>

このステップでは、送信先を指定して、ソースデータの転送先を決定します。Amazon S3 バッファリング AWS IoT SiteWise を送信先として使用します。このオプションは、IoT データを保存および処理するためのスケーラブルな方法を提供します。

------
#### [ Console ]

**送信先を追加するには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動し、 **Edge ゲートウェイ**を選択します。

1. **SiteWise チュートリアルデバイスゲートウェイ**で、送信**先の追加**を選択します。

1. **送信先の詳細**で、**AWS IoT SiteWise Amazon S3 を使用してバッファリングされた** を選択します。送信先タイプの詳細については、[AWS IoT SiteWise 「ゲートウェイの送信先](gw-destinations.md#source-destination)」を参照してください。

1. 送信**先名**に、送信先の名前を入力します。例: `SiteWise Tutorial S3 Destination`。

1. **S3 アップロード設定で**、S3 バケットの場所を入力します。例えば、`s3://sitewise-tutorial-mqtt-data-[your-account-id]`。Amazon S3 の詳細については、「Amazon *Simple Storage Service ユーザーガイド*」の[Amazon S3バケットの作成、設定、操作](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)」を参照してください。

1. **データのアップロード頻度**に、1 分から 30 日までの値を入力します。例えば、`1 minute`。

1. **データストレージ設定**の下:

   1. **「ストレージにデータをコピー**する」の選択を解除します。この設定は本番環境では推奨されますが、このチュートリアルでは必要ありません。このオプションの選択を解除すると、**S3 からデータを削除する**オプションは自動的に選択解除されます。

1. **送信先の追加**を選択します。

**注記**  
このチュートリアルでは、テストに 1 分間隔を使用します。チュートリアルを完了したら、本番稼働用のニーズに合わせてこの間隔を調整したり、追加料金が発生しないように削除したりできます。

------
#### [ AWS CLI ]

**例: Amazon S3 を使用してバッファされた新しい AWS IoT SiteWise 送信先を作成する **

コマンド*AWS CLI リファレンス*の [update-gateway-capability-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/update-gateway-capability-configuration.html) を使用して、パブリッシャーを設定します。`capabilityNamespace` パラメータを `iotsitewise:publisher:3` に設定します。

```
{
    "sources": [
      {
        "type": "MQTT"
      }
    ],
    "destinations": [
      {
        "type": "SITEWISE_BUFFERED",
        "name": "your-s3-destination-name",
        "config": {
          "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/Optional/SomeFolder",
          "publishPolicy": {
            "publishFrequency": "1m",
            "localSizeLimitGB": 10
          },
          "siteWiseImportPolicy": {
            "enableSiteWiseStorageImport": true,
            "enableDeleteAfterImport": true,
            "bulkImportJobRoleArn": "arn:aws:iam::123456789012:role/your-role-name"
          }
        },
        "filters": [
          {
            "type": "PATH",
            "config": {
              "paths": [
                "#"
              ]
            }
          }
        ]
      }
    ]
  }
```

送信先の詳細については、「」を参照してください[Amazon S3 を使用して AWS IoT SiteWise バッファされた送信先を追加する](destinations-buffered.md)。

------

## ステップ 8: パスフィルターを指定する
<a name="specify-path-filters"></a>

このステップでは、パスフィルターを設定して、風力発電所のデバイスデータを監視する MQTT トピックを指定します。

パスフィルターは、2 つの特殊文字をサポートする MQTT トピックのワイルドカード仕様に従います。
+ `+` – この記号は、単一レベルのワイルドカードを表し、単一レベルの任意の文字列に一致します。
+ `#` – この記号は、トピック階層内の任意の数のレベルに一致する複数レベルのワイルドカードを表します。

**注記**  
他のパスフィルターの詳細については、「」を参照してください[パスフィルター名の特殊文字](gw-destinations.md#path-filters-special-characters)。

------
#### [ Console ]

**パスフィルターを設定するには**

**パスフィルター**の下:

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動し、 **Edge ゲートウェイ**を選択します。

1. **SiteWise チュートリアルデバイスゲートウェイ**で、送信**先の追加**を選択します。

1. **パスフィルターの追加** を選択して、次のパスフィルターを手動で入力します。
   + `SiteWiseTutorialDevice/#`
   + `windfarm/+/turbine/+/performance/#`
   + `cpu/+/idle-time`
   + `cpu/+/interruption-count/+`
   + `+/memory/consumption`
   + `timestamp/+/measurement`
   + `device/+/status/+`
   + `system/+/performance-log`

1. **送信先の追加**を選択します。

パスフィルターのベストプラクティスの詳細については、「」を参照してください[パスフィルターのベストプラクティス](gw-destinations.md#create-effective-path-filters)。

------
#### [ AWS CLI ]

パスフィルターを設定するには、次の AWS CLI コマンドを使用します。

**例 1: ワイルドカードを使用したデバイスデータ**

```
{
 "destinations": [
   {
     "name": "All Device Data Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
         "SiteWiseTutorialDevice/#",
         "windfarm/+/turbine/+/performance/#"
       ]
     }
   }
 ]
}
```

このパスフィルター設定では、マルチレベルワイルドカード (\#) を使用して、SiteWiseTutorialDevice のすべてのデータと、風力発電所のタービンのすべてのパフォーマンスデータをキャプチャします。

**例 2: CPU とメモリのパフォーマンス**

```
{
 "destinations": [
   {
     "name": "Performance Metrics Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
         "cpu/+/idle-time",
         "+/memory/consumption",
         "cpu/+/interruption-count/+"
       ]
     }
   }
 ]
}
```

この例では、デバイス全体のさまざまな CPU メトリクス (アイドル時間と中断数) とメモリ消費データをキャプチャします。

**例 3: デバイス診断**

```
{
 "destinations": [
   {
     "name": "Device Diagnostics Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
        "device/+/status/+",
        "system/+/performance-log"
       ]
     }
   }
 ]
}
```

この設定では、`+`ワイルドカードを使用して、複数のデバイスからの診断データ、特にシステムパフォーマンスログとデバイスステータスの更新をキャプチャします。

これらの 3 つのパスフィルターは、Mosquitto でテストデータを発行するために使用する MQTT トピックと一致します。フィルターにより、SiteWise Edge ゲートウェイが関連する MQTT メッセージをキャプチャして処理できるようになります。パスフィルターを追加する方法の詳細については、「」を参照してください[AWS IoT SiteWise Edge 送信先にパスフィルターを追加する](destinations-add-path-filters.md)。

------

## ステップ 9: AWS IoT リソースを設定する
<a name="configure-iot-resources"></a>

このステップでは、シミュレートされたサードパーティーデバイスを表すために必要な AWS IoT SiteWise アセットモデルとアセットを作成し、エッジゲートウェイを介したデータ取り込みを有効にします。

このステップを開始する前に、[Ingest data ](ingest-data-from-iot-things.md)チュートリアルのステップ 3～8 を完了しておく必要があります。これらのステップは、MQTT 対応 V3 ゲートウェイを介してサードパーティーデータを統合するための基本コンポーネントを確立します。また、センサーデータがどのように流れるかを定義するルールを設定し AWS IoT SiteWise、産業用風力発電所データをシミュレートするデバイスクライアントスクリプトを実行します。

** AWS IoT リソース設定を検証するには**

1. 次の AWS CLI コマンドを使用して、SiteWise チュートリアルデバイスモデルと SiteWise チュートリアルデバイスフリートモデルを作成および適切に設定したことを確認します。

   ```
   aws iotsitewise describe-asset-model --asset-model-id {{your-device-model-id}}
   ```

   次の AWS CLI コマンドを使用して、アセットモデルの ID を取得します。

   ```
   aws iotsitewise list-asset-models
   ```

1. 次の AWS CLI コマンドを使用して、SiteWise チュートリアルデバイス 1 アセットと SiteWise チュートリアルデバイスフリート 1 アセットが作成され、正しく設定されていることを確認します。

   ```
   aws iotsitewise describe-asset --asset-id {{your-asset-id}}
   ```

   次の AWS CLI コマンドを使用して、アセットの ID を取得します。

   ```
   aws iotsitewise list-assets
   ```

## ステップ 10: データを視覚化する
<a name="visualize-your-data"></a>

オープンソースバージョンの Grafana をセットアップして、風力発電所のデバイスデータを視覚化します。Grafana は、リアルタイムの運用データを表示する視覚化プラットフォームです。これらのダッシュボードは、運用効率を追跡し、インフラストラクチャ全体のメンテナンスニーズを特定するのに役立ちます。統合の詳細については、「」を参照してください[Grafana AWS IoT SiteWise との統合](grafana-integration.md)。

**Grafana をセットアップするには**

1. Grafana の最新バージョンをダウンロードしてインストールする手順については、公式 [Grafana ウェブサイトの「Grafana のインストール](https://grafana.com/docs/grafana/latest/setup-grafana/installation/#install-grafana)」を参照してください。

1. オペレーティングシステム固有の詳細な設定手順については、公式 [Grafana ](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#configure-grafana)ウェブサイトの「Configure Grafana」を参照してください。

1.  AWS IoT SiteWise データソースを設定します。これにより、Grafana サーバーで AWS IoT SiteWise プラグインを設定できます。プラグインの使用方法の詳細については、*「Amazon Managed Grafana ユーザーガイド*」の[AWS IoT SiteWise 「データソースに接続する](https://docs.aws.amazon.com/grafana/latest/userguide/using-iotsitewise-in-AMG.html)」を参照してください。

**重要**  
 AWS IoT SiteWise データソースとの互換性のために、Grafana の最新バージョンがあることを確認します。

これらのステップを完了したら、Grafana ダッシュボードを構築およびカスタマイズして、風力発電所の運用メトリクスを表示できます。これにより、エッジでの風力発電所のパフォーマンスをリアルタイムで追跡および分析できます。

**注記**  
このチュートリアルでは Grafana のオープンソースバージョンを使用していますが、 は本番環境用の Amazon Managed Grafana AWS も提供しています。Amazon Managed Grafana は、独自の Grafana サーバーをセットアップ、設定、保守する必要がないフルマネージドサービスです。  
ソリューションをスケールする準備ができたら、Amazon Managed Grafana へのアップグレードを検討してください。SiteWise データを Grafana に接続する方法の詳細については、[Grafana チュートリアルの「データの視覚化と共有](visualize-with-grafana.md)」を参照してください。

これでチュートリアルは完了です。この手順では、MQTT 対応 V3 ゲートウェイを使用してサードパーティーのデバイスデータを統合するように AWS IoT SiteWise Edge を設定しました。この設定により、エッジで産業機器データを収集、処理、視覚化できるため、レイテンシーと運用コストを削減できます。風力発電所デモを使用することで、MQTT 対応 V3 ゲートウェイを介して CPU やメモリの使用状況データなどの運用メトリクスを収集して処理しました。

IoT ソリューションを強化するには、 を活用して異常検出などの高度な機能を調べるか[Lookout for Equipment で異常を検出する](anomaly-detection.md)、[Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) *ユーザーガイド*の Amazon Quick などの他の AWS サービスと統合して高度な分析を行うことを検討してください。

## ステップ 11: チュートリアルの後にリソースをクリーンアップする
<a name="tutorial-clean-up-resources"></a>

 AWS IoT SiteWise Edge へのデータの統合に関するこのチュートリアルを完了したら、追加料金が発生しないようにリソースをクリーンアップします。

**で階層アセットを削除するには AWS IoT SiteWise**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. 左側のナビゲーションペインで [**アセット**] を選択します。

1. でアセットを削除するときは AWS IoT SiteWise、まずアセットの関連付けを解除する必要があります。

   デバイスフリートアセットからデバイスアセットの関連付けを解除するには、次の手順を実行します。

   1. デバイスフリートアセット () を選択します**SiteWise Tutorial Device Fleet 1**。

   1. **[編集]** を選択します。

   1. [**このアセットに関連付けられているアセット**] で、このデバイスフリートアセットに関連付けられている各デバイスアセットに対して [**関連付け解除**] を選択します。

   1. **[保存]** を選択します。
**注記**  
 デバイスアセットは階層として整理されなくなりました。

1. デバイスアセット (**SiteWise Tutorial Device 1**) を選択します。

1. **[削除]** を選択します。

1. 確認ダイアログで、「」と入力し**Delete**、**「削除**」を選択します。

1. デバイスアセットとデバイスフリートアセット (**SiteWise Tutorial Device Fleet 1**) ごとに、ステップ 4～6 を繰り返します。

**で階層アセットモデルを削除するには AWS IoT SiteWise**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. デバイスおよびデバイスフリートアセットを削除します。

1. 左のナビゲーションペインで **[モデル]** を選択します。

1. デバイスフリートアセット (**SiteWise Tutorial Device Fleet Model 1**) を選択します。モデルから作成されたアセットがある場合は、そのモデルを削除できません。

   階層アセットモデルを削除する場合は、最初に親アセットモデルを削除する必要があります。

1. **[削除]** を選択します。

1. 確認ダイアログで、「」と入力し**Delete**、**「削除**」を選択します。

1. デバイスのアセットモデル (**SiteWise Tutorial Device Model**) について、ステップ 4～6 を繰り返します。

**でルールを無効化または削除するには AWS IoT Core**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

1. 左側のナビゲーションペインで、**メッセージルーティング**を選択し、ルールを選択します****。

1. ルールを選択し、**[削除]** を選択します。

1. 確認ダイアログボックスでルール名を入力し、**[削除]** を選択します。

**Amazon S3 バケットを削除するには**

1. [Amazon S3 コンソール](https://console.aws.amazon.com/s3/)に移動します。

1. 左側のナビゲーションペインで、**汎用バケット**を選択します。

1. バケットリストで、作成したバケットの横にあるオプションボタンを選択し、ページの上部にある**空の** を選択します。

1. 確認ダイアログで、削除を確認し、**空**を選択します。

1. バケットが空になったら、**削除**を選択してバケットを削除します。

1. 確認ダイアログで、削除を確認するバケットの名前を入力します。

1. **[バケットを削除]** を選択します。

**SiteWise Edge ゲートウェイを削除するには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. 左側のナビゲーションペインで、**エッジゲートウェイ**を選択します。

1. Gateways で、このチュートリアル用に作成したゲートウェイを選択します。例えば、`SiteWise Tutorial Device Gateway`。

1. **[削除]** を選択します。

1. ゲートウェイを削除することを確認するには、確認ダイアログ**Delete**に「」と入力し、表示されるウィンドウで**「削除**」を選択します。

**IoT モノを削除するには**

1. [AWS IoT コンソール](https://console.aws.amazon.com/iot/)に移動します。

1. 左側のナビゲーションペインで、**管理**を選択し、**モノ**を選択します。

1. このチュートリアル用に作成した IoT モノを選択します。例えば、`SiteWiseTutorialDevice1`。

1. **[削除]** を選択します。

1. 確認ダイアログで、モノの名前を入力し、**削除**を選択します。

** AWS IoT Greengrass Core をアンインストールするには**

ローカルデバイスから AWS IoT Greengrass Core ソフトウェアをアンインストールします。詳細な手順については、「 *AWS IoT Greengrass デベロッパーガイド、バージョン* [2」の AWS IoT Greengrass 「 Core ソフトウェアのアンインストール](https://docs.aws.amazon.com/greengrass/v2/developerguide/uninstall-greengrass-core-v2.html)」を参照してください。

**重要**  
Greengrass をアンインストールすると、すべてのローカル設定とデータが削除されます。続行する前に、重要な情報をバックアップしていることを確認してください。

**(オプション) サードパーティーリソースを削除するには**

このチュートリアルを完了したら、作成した外部リソースをシャットダウンすることを検討してください。これにより、サードパーティープロバイダーからの料金の発生を防ぐことができます。

## その他のリソース
<a name="additional-resources"></a>

詳細については、次のリソースを参照してください。
+ [他の AWS サービスとやり取りする](interact-with-other-services.md)
+ [AWS IoT SiteWise Edge ゲートウェイを使用する](gateways.md)
+ [SiteWise Edge ゲートウェイのトラブルシューティング](troubleshooting-gateway.md)
+ [のセキュリティのベストプラクティス AWS IoT SiteWise](security-best-practices.md)
+ [AWS IoT の料金](https://aws.amazon.com/iot-sitewise/pricing/)
+ [にデータを取り込む AWS IoT SiteWise](industrial-data-ingestion.md)
+ [でタグを使用する AWS IoT SiteWise](tag-basics.md)