EMQX CloudのMQTTデータをAWS DynamoDBに保存可能です
Amazon DynamoDBは、高速で予測可能なパフォーマンスとシームレスなスケーラビリティを提供する、フルマネージドのNoSQLデータベースサービスです。DynamoDBは、分散型データベースの運用とスケーリングの管理負担を軽減し、ハードウェアのプロビジョニング、設定と構成、レプリケーション、ソフトウェアのパッチ適用、クラスタのスケーリングに悩まされることがない。また、DynamoDBは静止時の暗号化機能を備えており、機密データの保護に伴う運用負荷や複雑さを解消します。
今回は、温度と湿度のデータをシミュレーションし、MQTTプロトコルでEMQX Cloudに報告した後、EMQX Cloudのデータ統合でNATゲートウェイを有効にして、公衆回線経由でAWS DynamoDBにデータを保存します。
EMQX Cloudの紹介
EMQX Cloud は、EMQが提供する世界初のIoT向けフルマネージドMQTT 5.0パブリッククラウドサービスです。EMQX Cloudは、ワンストップのO&Mコロケーションと、MQTTサービスのための独自の隔離された環境を提供します。Internet of Everythingの時代において、EMQX Cloudは、業界アプリケーションを迅速に構築し、IoTデータの収集、送信、計算、永続化を容易に実現することができます。
EMQX Cloudは、クラウド事業者が提供するインフラにより、世界数十の国や地域で利用でき、5GやInternet of Everythingのアプリケーションに、低コストで安全かつ信頼性の高いクラウドサービスを提供します。
詳細は、EMQX Cloudのウェブサイトを参照するか、EMQX Cloudのドキュメントを参照してください。
デプロイメントを作成する
EMQXクラスタの作成
ログイン後、アカウントメニューの「Cloud Console」をクリックすると、新しいデプロイメントを作成するための緑色のボタンが表示されるようになります。EMQX Cloudでは、スタンダードプランとプロフェッショナルプランの14日間の無料トライアルを提供しています。このチュートリアルでは、プロフェッショナルデプロイメントをデモとして使用します。
EMQX CloudのAWSデプロイメントを作成し、これ以外の設定はデフォルトにします。
ステータスが「実行中」になると、配置の作成が完了します。
DynamoDBインスタンスの作成
初めてDynamoDBインスタンスを作成する場合は、ヘルプドキュメントを参照してください。まず、DynamoDBコンソールに移動し、Create Tableをクリックします。
テーブル名、パーティションキーなどの主要な情報を記入し、実際のビジネスニーズに応じて設定することができます。
テーブルのステータスがアクティブになるまで、テーブル「temp_hum」の作成が成功したことを意味します。
NAT Gatewayを有効にする
NAT gateways は、ネットワークアドレス変換サービスを提供し、VPCピアリング接続を必要としないパブリックネットワークリソースにアクセスする機能をプロフェッショナル展開に提供することができます。
データ統合
DynamoDBリソースの作成
「Data Integrations」ページに移動します。データ統合ページで、DynamoDBリソースをクリックします。
DynamoDB接続の詳細を入力し、testをクリックします。テストに失敗した場合は、DynamoDBサービスを確認してください。テストに合格したらNewボタンをクリックすると、Create Resource successfullyというメッセージが表示されます。
新しいルールを作成する
リソースが正常に作成されたら、データ統合ページに戻り、新しく作成したリソースを探し、create ruleをクリックします。我々の目標は、temp_hum/emqxトピックに監視情報がある限り、エンジンがトリガーされるようにすることです。ここでは、特定のSQL処理が必要です:
- トピック "temp_hum/emqx"のみを対象とする。
- 必要な3つのデータ(温度、湿度)を取得する
以上の原則に従えば、最終的に得られるSQLは次のようになるはずです:
SELECT id as msgid, topic, payload FROM "temp_hum/emqx"
SQL入力ボックスの下にある「SQLテスト」をクリックすると、データを入力することができます:
- topic: temp_hum/emqx
- payload:
{ "temp": 26.3, "hum": 46.4 }
Testをクリックすると、取得したデータ結果が表示されます。設定が正しければ、テスト出力ボックスは以下のように完全なJSONデータを取得するはずです:
テストが失敗した場合は、SQLが準拠しているか、テストでのトピックと記入されたSQLが一致しているかなどをご確認ください。
ルールにアクションを追加する
ルールの設定が完了したら、[次へ]をクリックしてアクションを設定・作成します。次に、以下のようにフィールドとタグを入力します:
DynamoDB Table:temp_hum Hash Key:msgid
検証
MQTTXを使って、データ報告のシミュレーションを行う。
メッセージの購読・発行には、クロスプラットフォームのMQTT 5.0デスクトップクライアントであるMQTTXを使用することをお勧めします。
追加ボタンをクリックし、デプロイメント情報を入力してデプロイメントに接続します。broker.emqx.ioを作成したデプロイメントの接続アドレスに置き換える必要があります。EMQX Cloudコンソールにクライアント認証情報を追加します。トピック名とペイロードメッセージを入力して、メッセージを発行します。
ルールモニタリングの表示
ルール監視を確認し、成功回数に1回追加する。
で検索した結果を表示しています。
Amazon DynamoDBのNoSQL Workbenchは、モダンなデータベース開発と運用のクロスプラットフォームなクライアントサイドGUIアプリケーションです。DynamoDBに接続するために利用できます。
Operation Builderのページに移動します。テーブル 'temp_hum' を選択します。ここでは、温度と湿度のデータ転送の結果を確認することができます。
まとめ
これまで、EMQX Cloudデータ統合を使用して、データの全プロセスをパブリックネットワーク経由でAWS DynamoDBに保存しました。その後、AWSサービスと統合して、内蔵ツールを使って分析を実行し、洞察を抽出し、トラフィックの傾向を監視するなど、データでより多くのことを行うことができ、IoTアプリケーションの構築に集中する時間を節約することができます。