AWS IoT Core でスロットリングが発生した場合の MQTT メッセージの挙動を教えてください

AWS IoT Core でスロットリングが発生した場合の MQTT メッセージの挙動を教えてください

2021.10.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

IoT Core への MQTT メッセージの送信(Publish)には、デフォルトで最大 500 件/秒のクォータ(「Publish requests per second per connection」)が設定されていますが、AWS IoT Device SDK を利用してクォータを超える数のメッセージ送信を試みた際、それらのメッセージはどのように扱われるのでしょうか?

また、メッセージ送信時に指定した QoS オプション(0 or 1)によって、挙動は異なるのでしょうか?

どう対応すればいいの?

Publish のスロットリングが発生した場合でも、MQTT 接続は切断されない動作となります。

MQTT クライアントライブラリや、デバイス側の実装に依存するものとなりますが、QoS 0 の場合、一般的にはメッセージの動作は行われない動作となり、スロットリングされたメッセージはロストされます。

QoS 1 の場合、IoT Core からの PUBACK を受信しないことにより、一般的にはメッセージ再送を行う、もしくはタイムアウトエラーとなる動作となリます。 再送により、IoT Core 側で受信されると、メッセージはロストしません。

参考資料


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事