AWS IoT + CloudWatchでさらっと可視化

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

こんにちは。技術3課の森です。 東京での生活をしている最中、乗り換える必要のない電車に乗ってたはずなのに、人がいっぱい降りるから一緒に降りてしまい、 目的地をあっさりと通過してしまった経験を本日しました。

AWS IoTとCloudWatchで可視化

以前、nakamuraが書いたブログに似たことをやってみました。 ただやるだけではなく、できるだけManagementConsoleを使わずにやってみたかったので、いくつかプログラミングを交えてやってみました。

実行環境の準備

まずは環境の準備から始めます。以下の3つをインストールしてください。

  • AWS CLI
  • AWS SDK for Python
  • mosquitto (MQTT Broker)
  • jq

実行環境の作成

実行環境の構成

まずは構成です。

今回デバイスは自分のPCを使い、mosquittoでPublishするようにします。

環境作成スクリプト

まずはAWS IoTのPolicyとThingsを作成します。 ここは簡単に作りたかったので、 AWS CLI + Bash を使って作成しています。

データ

PublishするJSONデータを作成します。 単純なものであれば、手で作成する方が早いですが、今回はより多く送ってみようということで、 初心者PythonistがJSONで300項目を用意するプログラムを作成してみました。

ここだけは事前にCloudWatchのPutMetricDataを許可したRoleを作成しておいてください。

データをPublish

ここでやっとPublishします。何度でも実行できるようにシェルスクリプトで実装しました。

実装したシェルスクリプトを実行します。

Publishしたデータを可視化

先ほど実行したシェルスクリプト。結果はCloudWatchのメトリクスから確認することができます。

今回は少し異なるデータも用意し、Publishしたため、下の図のようにデータ出力結果が斜めの線になっています。

まとめ

今回はシェルスクリプトやPythonを使って何度でも簡単に実行できるようにしたことと
OSSでも実現はできるものの安価で簡単に可視化できるCloudWatchを使いました。

ただ、これが正解ではなく、適材適所、そのシチュエーションを考えて、
どういったAWSサービスを使って、DataSourceや可視化するツールを選択する必要があります。

「こんな感じでするともっとかっこいい」とかあれば、教えていただけると次のネタにさせてもらいます。

AWS運用自動化サービス「Cloud Automator」