EMQX Dedicated New Feature: Event History is available for private beta test. →

EMQX CloudのMQTTデータをAWS DynamoDBに保存可能です

EMQX Cloud Team
May 26, 2023
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データの収集、送信、計算、永続化を容易に実現することができます。

MQTT Cloud

EMQX Cloudは、クラウド事業者が提供するインフラにより、世界数十の国や地域で利用でき、5GやInternet of Everythingのアプリケーションに、低コストで安全かつ信頼性の高いクラウドサービスを提供します。

詳細は、EMQX Cloudのウェブサイトを参照するか、EMQX Cloudのドキュメントを参照してください。

デプロイメントを作成する

EMQXクラスタの作成

ログイン後、アカウントメニューの「Cloud Console」をクリックすると、新しいデプロイメントを作成するための緑色のボタンが表示されるようになります。EMQX Cloudでは、スタンダードプランとプロフェッショナルプランの14日間の無料トライアルを提供しています。このチュートリアルでは、プロフェッショナルデプロイメントをデモとして使用します。

Standard and Professional plans

EMQX CloudのAWSデプロイメントを作成し、これ以外の設定はデフォルトにします。

Create an AWS deployment

ステータスが「実行中」になると、配置の作成が完了します。

status is Running

DynamoDBインスタンスの作成

初めてDynamoDBインスタンスを作成する場合は、ヘルプドキュメントを参照してください。まず、DynamoDBコンソールに移動し、Create Tableをクリックします。

Create DynamoDB instances

テーブル名、パーティションキーなどの主要な情報を記入し、実際のビジネスニーズに応じて設定することができます。

Create DynamoDB Table

テーブルのステータスがアクティブになるまで、テーブル「temp_hum」の作成が成功したことを意味します。

the status of the table is active

NAT Gatewayを有効にする

NAT gateways は、ネットワークアドレス変換サービスを提供し、VPCピアリング接続を必要としないパブリックネットワークリソースにアクセスする機能をプロフェッショナル展開に提供することができます。

Enable NAT Gateway

データ統合

  1. DynamoDBリソースの作成

    「Data Integrations」ページに移動します。データ統合ページで、DynamoDBリソースをクリックします。

    Go to the Data Integrations page

    DynamoDB接続の詳細を入力し、testをクリックします。テストに失敗した場合は、DynamoDBサービスを確認してください。テストに合格したらNewボタンをクリックすると、Create Resource successfullyというメッセージが表示されます。

    Fill in the DynamoDB connection details

  2. 新しいルールを作成する

    リソースが正常に作成されたら、データ統合ページに戻り、新しく作成したリソースを探し、create ruleをクリックします。我々の目標は、temp_hum/emqxトピックに監視情報がある限り、エンジンがトリガーされるようにすることです。ここでは、特定のSQL処理が必要です:

    • トピック "temp_hum/emqx"のみを対象とする。
    • 必要な3つのデータ(温度、湿度)を取得する

    以上の原則に従えば、最終的に得られるSQLは次のようになるはずです:

    SELECT 
    id as msgid,
    topic, 
    payload 
    
    FROM "temp_hum/emqx"
    

    Create a new rule

    SQL入力ボックスの下にある「SQLテスト」をクリックすると、データを入力することができます:

    • topic: temp_hum/emqx
    • payload:
    {
      "temp": 26.3,
      "hum": 46.4
    }
    

    Testをクリックすると、取得したデータ結果が表示されます。設定が正しければ、テスト出力ボックスは以下のように完全なJSONデータを取得するはずです:

    JSON data

    テストが失敗した場合は、SQLが準拠しているか、テストでのトピックと記入されたSQLが一致しているかなどをご確認ください。

  3. ルールにアクションを追加する

    ルールの設定が完了したら、[次へ]をクリックしてアクションを設定・作成します。次に、以下のようにフィールドとタグを入力します:

     DynamoDB Table:temp_hum
     Hash Key:msgid
    

    Add Action to Rule

検証

  1. MQTTXを使って、データ報告のシミュレーションを行う。

    メッセージの購読・発行には、クロスプラットフォームのMQTT 5.0デスクトップクライアントであるMQTTXを使用することをお勧めします。

    追加ボタンをクリックし、デプロイメント情報を入力してデプロイメントに接続します。broker.emqx.ioを作成したデプロイメントの接続アドレスに置き換える必要があります。EMQX Cloudコンソールにクライアント認証情報を追加します。トピック名とペイロードメッセージを入力して、メッセージを発行します。

    MQTTX

  2. ルールモニタリングの表示

    ルール監視を確認し、成功回数に1回追加する。

    View rules monitoring

  3. で検索した結果を表示しています。

    Amazon DynamoDBのNoSQL Workbenchは、モダンなデータベース開発と運用のクロスプラットフォームなクライアントサイドGUIアプリケーションです。DynamoDBに接続するために利用できます。

    connect to DynamoDB

    Operation Builderのページに移動します。テーブル 'temp_hum' を選択します。ここでは、温度と湿度のデータ転送の結果を確認することができます。

    Go to the Operation Builder page

まとめ

これまで、EMQX Cloudデータ統合を使用して、データの全プロセスをパブリックネットワーク経由でAWS DynamoDBに保存しました。その後、AWSサービスと統合して、内蔵ツールを使って分析を実行し、洞察を抽出し、トラフィックの傾向を監視するなど、データでより多くのことを行うことができ、IoTアプリケーションの構築に集中する時間を節約することができます。