AWS IoT Core additional metering details
Overview
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 on the number of 5 KB messages needed 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. |
Responses |
Metered on the number of 5 KB messages needed to encode the body section of the HTTP response |
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
- DetachThingPrincipal
- 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
Rules engine has the following pricing dimensions:
- Rules triggered for every IoT rule evaluation
- Rule actions executed to redirect data to other services or to call select in-line functions described below.
An IoT rule can invoke up to 10 IoT rule actions. In your AWS bill, the cost of IoT rule action can include the following: 1/ cost of routing data to an external service (such as Amazon S3, Amazon Kinesis, Amazon SNS), and/or 2/ cost of calling the following external functions within an IoT rule: get_thing_shadow(), aws_lambda(), get_dynamodb(), get_registry_data(). Arithmetic and logical SQL functions in IoT rule are not metered as actions. get_secret() external function call is also not metered as an IoT rule action.
An IoT rule action that sends a message to a resource inside a customer's Amazon Virtual Private Cloud (VPC) will be counted as 2 IoT rule actions. 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, if your IoT rule is evaluated, but no IoT rule action is invoked, then you pay for 1 IoT rule and 1 IoT rule action.
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.
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages