Connectivity
Your device can ping as often as every 30 seconds at no charge for MQTT PINGREQ or PINGRESP messages.
Messaging
MQTT Message Metering
MQTT CONNECT | Metered as the size of the message including Will topic size and Will message payload. If using MQTT5, the message is also metered on any additional string and binary variable-header properties and Will properties, such as user properties. |
MQTT PUBACK (received from device) | If using MQTT5, metered based on the size of the message including user properties. Otherwise, metered as a single 5 KB message. |
MQTT SUBSCRIBE | Metered on the size of the topic submitted in the Subscribe message, plus the size of any user properties sent (if using MQTT5). |
MQTT PUBLISH (received from device) | Metered on the size of the payload and topic in bytes. If using MQTT5, the size of the user properties, response topic, correlation data, and content type are also included in the payload size metered. |
MQTT PUBLISH (sent by service) |
Metered on the size of the payload and topic in bytes. If using MQTT5, the size of the user properties, response topic, correlation data, and content type are also included in the payload size metered. |
MQTT RETAINED | Metered on the size of the payload and topic in bytes. If using MQTT5, the size of the user properties, response topic, correlation data, and content type are also included in the payload size metered. For MQTT inbound messages published with the RETAIN flag, your account would be metered for inbound MQTT PUBLISH and for MQTT RETAINED |
The following MQTT messages are excluded from metering:
- MQTT PINGREQ
- MQTT PINGRESP
- MQTT DISCONNECT
- MQTT CONNACK
- MQTT PUBACK (sent by service)
- MQTT SUBACK
- MQTT UNSUBSCRIBE
MQTT messages transferred inside a WebSocket connection are metered like MQTT messages inside a mutually authenticated TLS connection.
HTTP Request and Response Metering
Requests | Metered by the number of 5 KB messages required to encode the body section of the HTTP request. If using the HTTP publish message API, the size of the user properties, response topic, correlation data, and content type are also included in the payload size metered. |
Negative Responses |
If HTTP responses with HTTP response codes in the 4xx and 5xx range contains a body, AWS IoT Core meters the number of 5 KB message needed to encode the response body |
LoRaWAN Metering
LoRaWAN.Uplink | Metered on the number of messages (sent by device) |
LoRaWAN.Downlink | Metered on the number of messages (sent by service) |
LoRaWAN.Join | Metered on the number of messages (sent by device) |
LoRaWAN.UplinkACK | Metered on the number of messages (sent by service) |
LoRaWAN.DownlinkACK | Metered on the number of messages (sent by device) |
Sidewalk Metering
Sidewalk.Uplink | Metered on the number of messages (sent by device) |
Sidewalk.Downlink | Metered on the number of messages (sent by service) |
Note: Messages sent by Amazon Sidewalk devices that use the Amazon Sidewalk Integration feature to connect to AWS IoT Core are metered using LoRaWAN messaging pricing levels.
Registry
You are charged for a Registry operation each time you make a call to one of the following API operations:
- AddThingToThingGroup
- AttachThingPrincipal
- CreateThing
- CreateThingGroup
- CreateDynamicThingGroup
- CreateThingType
- DescribeThing
- DescribeThingGroup
- DescribeThingType
- ListPrincipalThings
- ListThingGroups
- ListThingGroupsForThing
- ListThingPrincipals
- ListThings
- ListThingsInThingGroup
- ListThingTypes
- UpdateThing
- UpdateThingGroup
- UpdateDynamicThingGroup
- UpdateThingGroupsForThing
- GetWirelessDeviceStatistics
- GetWirelessGatewayStatistics
For all List operations, metering takes into account total size of all records returned by API call. For example, if a ListThings API call returns (50) 2 KB Things from Registry, your request Is charged for (100) 1K increments, and is metered as 100 requests. If you opt-in for Registry Events, any update messages will be subject to messaging charges.
Device Shadow
Device Shadow operations are metered when you make an API call to GetThingShadow or UpdateThingShadow, or when an MQTT message creates, updates, or gets a Device Shadow. If you opt-in for Device Shadow updates, the update messages will be subject to messaging charges.
Rules Engine
A rule can invoke up to 10 actions, where an action is an external function call (such as get_thing_shadow(), aws_lambda(), get_dynamodb()), or a call to an external service (such as Amazon S3, Amazon Kinesis, Amazon SNS). Arithmetic and logical SQL functions are not metered as actions. The following external functional call(s) are not metered as actions: get_secret().
A rule action that sends a message to a resource inside a customer's Amazon Virtual Private Cloud (VPC) will be metered with an additional action. This additional action does not count towards the 10 actions per rule limit. VPC is supported for the following rule action(s): Apache Kafka action.
A rule that is triggered will always meter, at minimum, one rule and one action. For example, a 5 KB message that initiates one rule will meter one rule and one action even if it does not invoke any corresponding actions.
Rules that process a message generated by AWS IoT Core are metered as a single rule, regardless of message size. For example, a 7 KB Device Shadow document may publish a /delta or /documents message that is quite large; however any rules initiated by such an update will be metered as if the message were 5 KB.
Protobuf-to-JSON Decode: Decoding a Protocol Buffer (Protobuf) message to JavaScript Object Notation (JSON) format using decode() function in Rules Engine will be metered as 1 Action. Rules Engine will charge for decode actions within a Rule, and the decode actions can be optimized by caching the descriptor file. When you decode a Protobuf message using Rules Engine, you will be charged for 1 Rule Triggered + 1 Rule Action (for sending the data to a downstream AWS service) + 1 Protobuf-to-JSON Decode. However, you will not be charged in 5kB increments for decoding Protobuf messages to JSON. You will charged for 1 Decode (Action) upto the maximum Protobuf payload size of 128kB.
Standard EC2 data transfer rates listed here under “Data transfer” apply to the following rules actions(s): HTTP action.
Discover more AWS IoT Core resources