What must you know about the implementation of MQTT protocol at AWS Cloud?

MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT). It is of the most popular protocols in the Internet of Things domain. AWS supports MQTT, which is the default communication method between devices and AWS IoT Core service. But there are some significant differences between the implementation of the MQTT protocol at AWS and the OASIS specification.

QoS (Quality of Service) levels define the assurance for message delivery. According to the specification, the QoS 0 determines at most once delivery. AWS documentation states that IoT Core will deliver messages sent using QoS 0 zero or more times. In other words, devices or applications might receive duplicated messages when using QoS 0. Developers need to implement proper handling of replications to avoid unexpected issues.

QoS 2 guarantees precisely once message delivery (no missing data, no duplicates). AWS does not support this functionality.

AWS limits the size of the MQTT message payload to 128 KB. IoT Core will reject messages bigger than that quota.

AWS charges MQTT messages for every 5 KB. MQTT message of 7 KB cost equals two messages.

MQTT specification and AWS IoT Policies use different wildcard characters. AWS IoT Policy defines allowed actions for devices and applications communicating over MQTT. Wildcard characters help to specify flexible MQTT topic filters for subscribers. Wildcards from the MQTT specification will not work as expected in AWS IoT Policy. That could lead to misconfiguration issues of the IoT system, impact its operations, and produce a security vulnerability.

Please carefully read the AWS documentation before applying your MQTT knowledge during the design and implementation of IoT solutions using AWS Cloud.


MQTT Version 5.0 Specification
AWS IoT Core documentation
AWS IoT Core pricing

Support quality content❤️ Donate💰

Sign up for news: (by subscribing you accept the privacy policy)