AWS IoT Analytics の使用開始 コンソール - AWS IoT Analytics

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

AWS IoT Analytics の使用開始 コンソール

このチュートリアルを使用して、IoT デバイスデータに関する有用なインサイトを発見するために必要な AWS IoT Analytics リソース コンポーネントとも呼ばれます を作成します。

メモ
  • 次のチュートリアルで大文字を入力すると、AWS IoT Analytics により自動的に小文字に変更されます。

  • また、AWS IoT Analytics コンソールには、チャネル、パイプライン、データストア、データセットをワンクリックで作成できるクイックスタート機能もあります。この機能は、AWS IoT Analytics コンソールにサインインするときに確認できます。

    • このチュートリアルでは、AWS IoT Analytics リソースの作成について各ステップを順を追って説明します。

以下の手順に従って、AWS IoT Analytics チャネル、パイプライン、データストア、およびデータセットを作成します。このチュートリアルでは、AWS IoT Core コンソールを使用して、AWS IoT Analytics に取り込まれるメッセージを送信する方法も説明します。

AWS IoT Analytics コンソールにサインインします。

使用を開始するには AWS アカウントが必要です。すでに AWS アカウントを持っている場合は https://console.aws.amazon.com/iotanalytics/ に進んでください。

AWS アカウントを持っていない場合は、次のステップに従って作成します。

AWS アカウントを作成する
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて検証コードを入力するように求められます。

    AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティのベストプラクティスとして、管理ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。

  3. AWS Management Console にサインインして https://console.aws.amazon.com/iotanalytics/ に進みます。

チャネルの作成

チャネルは、生データ、未処理、および非構造化の IoT デバイスデータを収集してアーカイブします。チャネルを作成するには次の手順に従います。

チャネルを作成する
  1. https://console.aws.amazon.com/iotanalytics/とデータの準備AWS IoT Analyticsセクションで、チャネルの表示 を選択します。

    
      「AWS IoT Analytics によるデータの準備」のスクリーンショット。
    ヒント

    ナビゲーションペインから チャネル を選択することもできます。

  2. チャネル ページで、チャネルの作成 を選択します。

  3. チャネルの詳細の指定 ページで、チャネルの詳細情報を入力します。

    1. チャネル名は一意で識別しやすいものを入力してください。

    2. オプション Tags タグ で、1 つまたは複数のカスタムタグ キーと値のペア をチャネルに追加します。タグを使用すると、AWS IoT Analytics のために作成するリソースを識別することができます。

    3. Next 次へ をクリックします。

  4. AWS IoT Analytics では、生で未処理の IoT デバイスデータが Amazon Simple Storage Service Amazon S3 バケットに保存されます。独自の Amazon S3 バケットを選択できます。その場合は、Amazon S3 バケットへのアクセスと管理を自分で行うことも、AWS IoT Analytics がこれらを行うようにすることもできます。

    1. このチュートリアルでは、ストレージタイプ で、 サービス管理ストレージ を選択します。

    2. 生データ保存期間の選択無期限 を選択します。

    3. 次へ をクリックします。

  5. ソースの設定ページ で、AWS IoT Core からメッセージデータを収集するために AWS IoT Analytics の情報を入力します。

    1. AWS IoT Core トピックフィルター update/environment/dht1 など を入力します。このチュートリアルでは、後でこのトピックフィルターを使用してメッセージデータをチャネルに送信します。

    2. IAM ロール名 エリアで 新規作成 を選択します。新しいロールの作成 ウィンドウでロールの 名前 を入力し、次に ロールの作成 を選択します。これで、適切なポリシーがアタッチされた新しいロールが自動的に作成されます。

    3. Next 次へ をクリックします。

  6. 選択内容を確認し、チャネルの作成 を選択します。

  7. 新しいチャネルが チャネルページに表示されていることを確認します。

データストアの作成

データストアはメッセージデータの受信と保存を行いいます。データストアはデータベースではありません。データストアは、 Amazon S3 バケット内にあるスケーラブルでクエリ可能なリポジトリです。異なるデバイスまたは場所から取得されたメッセージに対して、複数のデータストアを使用できます。または、パイプラインの設定と要件に応じて、メッセージデータをフィルタリングできます。

データストアを作成するには以下の手順を実行します。

データストアを作成する方法
  1. https://console.aws.amazon.com/iotanalytics/ の AWS IoT Analyticsとデータの準備セクションで、データストアの表示 を選択します。

  2. データストア ページで、データストアの作成を選択します。

  3. データストア詳細の指定ページで、データストアに関する基本情報を入力します。

    1. データストア ID に、一意のデータストア ID を入力します。この ID は作成後には変更できません。

    2. オプショナルタグ新しいタグを追加を選択すれば、データストアに 1 つまたは複数のカスタムタグ キーと値のペア を追加できます。タグを使用すると、AWS IoT Analytics のために作成するリソースを識別することができます。

    3. 次へをクリックします。

  4. ストレージタイプの設定 ページで、データの保存方法を指定します。

    1. ストレージタイプ で、サービス管理ストレージ を選択します。

    2. 処理されたデータを保持する期間を設定します 処理データの保存期間の設定 で、無期限 を選択します。

    3. 次へをクリックします。

  5. AWS IoT Analytics データストアでは現在、JSON と Parquet のファイル形式がサポートされています。データストアのデータ形式で、JSON または Parquet を選択します。ファイル形式 でサポートされるファイルタイプについては、「AWS IoT Analytics」を参照してください。

    次へ をクリックします。

  6. オプション AWS IoT Analytics ではデータストア内のカスタムパーティションがサポートされているため、プルーニングされたデータをクエリすればレイテンシーを改善することができます。サポートされるカスタムパーティションの詳細については、「カスタムパーティション」を参照してください。

    Next 次へ をクリックします。

  7. 選択内容を確認してから、データストアの作成を選択します。

  8. データストアページに新しいデータストアが表示されていることを確認します。

パイプラインを作成する

データストアにチャネルを接続するには、パイプラインを作成する必要があります。ベーシックなパイプラインでは、データの収集とメッセージの送信先となるデータストアの識別を行うチャネルが指定されるだけです。詳細については、「パイプラインアクティビティ」を参照してください。

このチュートリアルでは、データストアにチャネルを接続するだけのパイプラインを作成します。後で、パイプラインアクティビティを追加すればこのデータを処理できます。

パイプラインを作成するには以下の手順を実行します。

パイプラインを作成するには
  1. https://console.aws.amazon.com/iotanalytics/ の AWS IoT Analyticsセクションで、データの準備パイプラインの表示を選択します。

    ヒント

    ナビゲーションペインで パイプラインを選択することもできます。

  2. パイプライン ページ で、Cパイプラインの作成 をクリックします。

  3. パイプラインの詳細情報を入力します。

    1. パイプライン ID とソースのセットアップにパイプライン名を入力します。

    2. パイプラインのソースを選択します。これは AWS IoT Analytics チャネルで、パイプラインによりここからメッセージが読み取られます。

    3. パイプラインの出力を指定します。これは、処理されたメッセージデータの保存先となるデータストアです。

    4. オプション タグ で、1 つまたは複数のカスタムタグ キーと値のペア をパイプラインに追加します。

    5. メッセージ属性の推測 ページで、属性名と値の例を入力し、リストからデータタイプを選択して、属性の追加 を選択します。

    6. 必要な属性の数だけ前の手順を繰り返したら、次へを選択します。

    7. 現時点ではパイプラインアクティビティは追加しません。メッセージの強化、変換、フィルタリング ページで 次へ を選択します。

  4. 選択内容を確認し、パイプラインの作成 選択します。

  5. 新しいパイプラインが パイプライン ページに表示されていることを確認します。

注記

AWS IoT Analytics リソースを作成したので、これを使用して以下を実行できます。

  • チャネルを使って生で未処理の IoT デバイスメッセージデータを収集する。

  • IoT デバイスメッセージデータをデータストアに保存する。

  • パイプラインを使って、データのクリーニング、フィルタリング、変換、および強化を行う。

次に、IoT デバイスに関する有用なインサイトを得るために AWS IoT Analytics SQL データセットを作成します。

データセットの作成

注記

データセットは、通常、表形式で編成される場合とそうでない場合があるデータの集合です。対照的に、AWS IoT Analytics では、データストアのデータに SQL クエリを適用することでデータセットを作成します。

これで、チャネルでパイプラインに生のメッセージデータをルーティングし、データストアにデータを保存してクエリを実行できます。データに対してクエリを実行するには、データセットを作成します。データセットには、データストアのクエリに使用する SQL のステートメントと式、および、指定した日時にクエリを繰り返すオプションのスケジュールが含まれます。オプションのスケジュールを作成するには、Amazon CloudWatch のスケジュール式のような式を使用できます。

データセットを作成する方法
  1. https://console.aws.amazon.com/iotanalytics/ で、左側のナビゲーションペインデータセット を選択します。

  2. データセットの作成 ページで SQL の作成 を選択します。

  3. データセットの詳細を指定 でデータセットの詳細を指定します。

    1. データセットの名前を入力します。

    2. データストアのソース で、前の段階で作成したデータストアを識別する一意の ID を選択します。

    3. オプション タグ で、1 つまたは複数のカスタムタグ キーと値のペア をデータセットに追加します。

  4. SQL 式を使用して、データをクエリし、分析的な質問に答えます。クエリの結果はこのデータセットに保存されます。

    1. クエリの作成 フィールドに、ワイルドカードを使用してデータを最大で 5 行表示する SQL クエリを入力します。

      SELECT * FROM my_data_store LIMIT 5

      AWS IoT Analytics でサポートされている SQL 機能の詳細については、「AWS IoT Analytics の SQL 式」を参照してください。

    2. クエリのテスト を選択すれば、入力の正誤を確認でき、さらに、クエリの後に結果をテーブルに表示できます。

      注記
      • チュートリアルのこの時点では、データストアが空である可能性があります。空のデータストアで SQL クエリを実行しても結果は返されないため、__dt しか表示されないかもしれません。

      • Athena により、実行できるクエリ数が制限されるため、長期間にわたって実行されることがないように、慎重に SQL クエリを合理的なサイズに制限する必要があります。このため、慎重に SQL クエリを合理的なサイズに制限する必要があります。

        テスト中にクエリで LIMIT 句を使用することをお勧めします。テストが成功したら、この句を削除できます。

  5. オプション 指定した時間枠のデータを使用してデータセットコンテンツを作成する場合、一部のデータが処理に間に合わない可能性があります。オフセット、またはデルタを指定すれば遅延を許可できます。詳細については、「Amazon CloudWatch Events を通じた遅延データ通知の取得」を参照してください。

    この時点ではデータ選択フィルターを設定しません。データ選択フィルターの設定ページで 次へ を選択します。

  6. オプション このクエリを定期的に実行してデータセットを更新するようにスケジュールできます。データセットスケジュールの作成と編集はいつでも行うことができます。

    この時点では、クエリを繰り返す実行はスケジュールしないため、クエリスケジュールの設定 ページでは、次へ を選択します。

  7. AWS IoT Analytics により、このデータセットコンテンツのバージョンが作成され、分析結果が指定期間保存されます。保存期間は 90 日をお勧めしますが、カスタムの保存ポリシーを設定することもできます。また、保存されるデータセットコンテンツバージョンの数を制限することもできます。

    デフォルトのデータセット保存期間を 無期限 として使用し、バージョニング を無効のままにしておくことができます。分析の結果の設定 ページで 次へを選択します。

  8. オプション データセット結果の配信ルールを、AWS IoT Events などの特定の宛先に設定できます。

    このチュートリアルの他の段階では結果を提供しないので、データセットコンテンツ配信ルール ページで 次へ を選択します。

  9. 選択内容を確認してから、データセットの作成 選択します。

  10. データセット ページに新しいデータセットが表示されていることを確認します。

AWS IoT によるメッセージデータの送信

クエリ可能なデータストアにデータを保存するパイプラインにデータをルーティングするチャネルがある場合、メッセージデータを AWS IoT Analytics に送信する準備ができたことになります。次のいずれかのオプションを使用して、データを AWS IoT Analytics に送信できます。

  • AWS IoT メッセージブローカーを使用します。

  • AWS IoT Analytics BatchPutMessage API オペレーションを使用します。

次の手順では、AWS IoT Core コンソールで AWS IoT メッセージブローカーからメッセージデータを送信して、AWS IoT Analytics によりこのデータが取り込まれるようにします。

注記

メッセージのトピック名を作成する場合は、次のことに注意してください。

  • トピック名では大文字と小文字が区別されません。同じペイロード内に exampleEXAMPLE という名前のフィールドがある場合は重複と見なされます。

  • トピック名は $ 文字から始めることはできません。$ で始まるトピック名は予約済みのトピックで、AWS IoT によってのみ使用されます。

  • トピック名に個人を特定できる情報を含めないでください。この情報は暗号化されていない通信やレポートに表示される可能性があります。

  • AWS IoT Core は、AWS アカウント間や AWS リージョン間でメッセージを送受信することはできません。

AWS IoT でメッセージデータを送信する方法
  1. AWS IoT コンソールにサインインします。

  2. ナビゲーションペインで、テスト を選択し、次に MQTT test client MQTT テストクライアント を選択します。

  3. MQTT テストクライアント ページで、トピックへの発行 を選択します。

  4. トピック名 で、チャネルの作成時に入力したトピックフィルターに一致する名前を入力します。この例では update/environment/dht1 を使用します。

  5. メッセージペイロード で、次の JSON コンテンツを入力します。

    { "thingid": "dht1", "temperature": 26, "humidity": 29, "datetime": "2018-01-26T07:06:01" }
  6. オプション 追加のメッセージプロトコルオプションを使用する場合は 設定を追加 を選択します。

  7. 発行 を選択します。

    これにより、チャンネルによってキャプチャされたメッセージが発行されます。その後、パイプラインによりメッセージがデータストアにルーティングされます。

AWS IoT メッセージの進行状況の確認

次の手順を実行すれば、チャネルにメッセージが取り込まれたことを確認できます。

AWS IoT メッセージの進行状況を確認する方法
  1. https://console.aws.amazon.com/iotanalytics/ にサインインします。

  2. ナビゲーションペインで、チャネル を選択し、前の段階で作成したチャネル名を選択します。

  3. データセットを作成 ページで、下にスクロールして モニタリング セクションに到達したら、表示される時間枠 1h 3h 12h 1d 3d 1w を調整します。先週のデータを表示する場合は 1w 1 週間 などのように、値を選択します。

同様の機能を使用して、Pipeline's details パイプラインの詳細 ページでパイプラインアクティビティのランタイムとエラーを監視できます。このチュートリアルでは、アクティビティをパイプラインの一部として指定していないため、ランタイムエラーは表示されません。

パイプラインのアクティビティを監視する方法
  1. ナビゲーションペインで、パイプライン を選択し、次に、前に作成したパイプラインの名前を選択します。

  2. パイプラインの詳細 ページで、下にスクロールして モニタリング セクションに到達したら、時間枠インジケータ 1h 3h 12h 1d 3d 1w のうちの 1 つを選択することで、表示される時間枠を調整します。

クエリ結果へのアクセス

データセットのコンテンツは、クエリの結果が含まれている CSV 形式のファイルです。

  1. https://console.aws.amazon.com/iotanalytics/ で、左側のナビゲーションペインの Datesets データセット を選択します。

  2. Datasets データセット ページで、前に作成したデータセットの名前を選択します。

  3. データセット情報ページの右上で、今すぐ実行 を選択します。

  4. データセットの準備ができているかどうかを確認するには、そのデータセットの下にデータセットのクエリが正常に開始されましたというようなメッセージが表示されているか確認します。Dataset content データセットコンテンツ タブにはクエリ結果が含まれており、Succeeded 成功 が表示されます。

  5. 成功したクエリの結果のプレビューを表示するには、データセットコンテンツ タブでそのクエリ名を選択します。クエリ結果を含む CSV ファイルを表示または保存するには、ダウンロード を選択します。

    注記

    AWS IoT Analytics では、データセットコンテンツ ページに Jupyter Notebook の HTML 部分を埋め込むことができます。詳細については、「コンソールを使用した AWS IoT Analytics データの可視化」を参照してください。

データの探索

データの保存、分析および可視化についてはいくつかのオプションがあります。

Amazon Simple Storage Service

データセットのコンテンツを Amazon S3 バケットに送信して、既存のデータレイクとの統合、または社内アプリケーションと可視化ツールからのアクセスができます。CreateDataset オペレーションの contentDeliveryRules::destination::s3DestinationConfiguration フィールドを確認します。

AWS IoT Events

デバイスやプロセスのオペレーション時の障害や変化をモニタリングし、このようなイベントが発生した時に追加のアクションを開始するサービスである AWS IoT Events への入力としてデータセットコンテンツを送信できます。

これを実行するには、CreateDataset オペレーションを使用してデータセットを作成し、フィールド contentDeliveryRules :: destination :: iotEventsDestinationConfiguration :: inputName で AWS IoT Events 入力を指定します。ロールの roleArn も指定する必要があります。これは iotevents:BatchPutMessage を実行するための AWS IoT Analytics アクセス許可を付与するものです。データセットのコンテンツが作成されるたびに、AWS IoT Analytics により、データセットコンテンツの各入力がメッセージとして、指定した AWS IoT Events 入力に送信されます。たとえば、データセットに次のコンテンツが含まれている場合を考えてみましょう。

"what","who","dt" "overflow","sensor01","2019-09-16 09:04:00.000" "overflow","sensor02","2019-09-16 09:07:00.000" "underflow","sensor01","2019-09-16 11:09:00.000" ...

その後、AWS IoT Analytics により次のようなフィールドを含むメッセージが送信されます。

{ "what": "overflow", "who": "sensor01", "dt": "2019-09-16 09:04:00.000" }
{ "what": "overflow", "who": "sensor02", "dt": "2019-09-16 09:07:00.000" }

関心のあるフィールドを認識した AWS IoT Events 入力を作成したり whatwhodt のうちの 1 つまたは複数、イベントでこれらの入力フィールドを使用してアクションのトリガーや内部変数の設定を行う AWS IoT Events 検出器モデルを作成したりします。

Jupyter Notebook

Jupyter Notebook は、アドホックデータ検索と高度な分析を実行するためのたオープンソースのソリューションです。IoT デバイスデータに関して、より複雑な分析を深く掘り下げて適用でき、予測のための k 平均クラスタリングモデルや回帰モデルなどの機械学習手法を使用できます。

AWS IoT Analytics では、Amazon SageMaker ノートブックインスタンスを使用して Jupyter Notebook をホストします。ノートブックインスタンスを作成する前に、AWS IoT Analytics と Amazon SageMaker の関係を作成する必要があります。

  1. SageMaker コンソールに移動してノートブックインスタンスを作成します。

    1. 詳細を入力し、新しいロールの作成 を選択します。ロールの ARN を書き留めておきます。

    2. ノートブックインスタンスを作成します。

  2. IAM コンソールに移動し、SageMaker のロールを変更します。

    1. このロールを開きます。管理ポリシーが 1 つあります。

    2. インラインポリシーの追加を選択し、サービスIotAnalytics を選択します。アクションの選択 を選択し、検索ボックスに GetDatasetContent を入力して選択します。ポリシーのレビュー を選択します。

    3. ポリシーが正しいことを確認し、名前を入力したら、ポリシーの作成 を選択します。

これにより、AWS IoT Analytics からデータセットを読み取るロール許可が新しく作成されます。

  1. https://console.aws.amazon.com/iotanalytics/ に戻り、左側のナビゲーションペインの ノートブック を選択します。ノートブック ページで、ノートブックの作成 を選択します。

  2. テンプレートの選択 ページで IoTA ブランクテンプレート を選択します。

  3. ノートブックのセットアップ ページで、ノートブックの名前を入力します。データセットソースの選択 で、前に作成したデータセットを選択します。ノートブックインスタンスの選択 エリアで、SageMaker で作成したノートブックインスタンスを選択します。

  4. 選択内容を確認したら、ノートブックの作成 を選択します。

  5. ノートブック ページで、ノートブックインスタンスが Amazon SageMaker コンソール内で開きます。

ノートブックテンプレート

AWS IoT Analytics ノートブックテンプレートには AWS が作成した機械学習モデルと可視化が含まれており、AWS IoT Analytics ユースケースの使用を開始する際に役立ちます。これらのノートブックテンプレートを使えば詳細を調べることができ、再利用すればIoTデバイスデータへの適合と即値の獲得を実現できます。

AWS IoT Analytics コンソールには次のノートブックテンプレートがあります。

  • コンテキスト異常の検出 – ポアソン指数加重移動平均 PEWMA モデルを用いて風速測定値のコンテキスト異常を検出するアプリケーションです。

  • ソーラーパネルの出力予測 – ソーラーパネルの出力を予測するための、区分時系列モデル、季節時系列モデル、線形時系列モデルのアプリケーションです。

  • ジェットエンジンの予知保守 – ジェットエンジンの故障を予測するための多変量長期短期記憶 LSTM ニューラルネットワークおよびロジスティック回帰のアプリケーションです。

  • スマートホームの顧客の区分 – スマートホーム使用状況データにおける様々な顧客セグメントを検出するための k-平均および PCA 分析 PCA のアプリケーションです。

  • スマートシティの混雑予測 – 都市高速道路の利用率を予測するための LSTM のアプリケーションです。

  • スマートシティの大気汚染予測 – 都市中央部の大気汚染を予測するための LSTM のアプリケーションです。