AWS IoT Core helps you reliably and securely connect billions of IoT devices and route trillions of IoT messages to AWS services and other devices without infrastructure management. You pay for only the specific components that you use; there’s no minimum or mandatory usage service fee. You’re billed separately for connectivity, messaging, Device Shadow usage (device state storage), registry usage (device metadata storage), and rules engine usage (message transformation and routing). This approach provides you with transparency and a low price regardless of your workload type.

AWS Free Tier with AWS IoT Core

AWS Free Tier is available to AWS IoT Core customers for 12 months starting with the date you create your AWS account. When your free usage expires or if your application use exceeds the free usage tiers as outlined below, you pay the AWS IoT Core pricing rates.

  • 2,250,000 minutes of connection 
  • 500,000 messages
  • 225,000 Registry or Device Shadow operations
  • 250,000 rules triggered and 250,000 actions applied

For example, the AWS Free Tier would help you run a 50-device workload, where each device:

  • Connects for 24 hours a day
  • Exchanges 300 messages per day (message size 5 KB or smaller) 
  • Makes 130 registry or Device Shadow operations per day (registry or Device Shadow record size 1 KB or smaller) 
  • Initiates 150 rule executions per day that invoke one action (processed message size 5 KB or smaller) 

The free usage tier applies across all AWS Regions except the AWS GovCloud (US) Region. Your usage is calculated each month across all Regions and is automatically applied to your bill. Free usage does not accumulate from one billing period to the next.

Pricing at a glance

Connectivity

Connectivity provides a secure, authenticated connection between your devices and AWS IoT Core. Connectivity is metered in one-minute increments and is based on the total time your devices are connected to AWS IoT Core.

For example, in the US East (N. Virginia) Region you pay $0.042 per device per year (one connection * $0.08/1,000,000 minutes of connection * 525,600 minutes/year) for 24/7 connectivity. To maintain connectivity, devices can send keep-alive (Ping) messages at frequencies ranging from 20 minutes to every 30 seconds, and you do not incur any additional cost for these messages. See additional connectivity pricing details »

Messaging

Messages transport device data to and from AWS IoT Core. Messaging is metered by the number of messages transmitted between your devices and AWS IoT Core.

For MQTT and HTTP, you do not incur a messages cost for messages sent or received using the reserved topic of Basic Ingest

You can send and receive messages up to 128 KB in size. Messages are metered in 5 KB increments. For example, an 8 KB message is metered as two messages.

See additional messaging pricing details »

With Firmware Update Over-the-Air (FUOTA), you can remotely deliver secure and reliable firmware updates to the devices in the field using LoRaWAN Multicast (MC) and fragmentation mechanisms defined by the LoRa Alliance.  Each FUOTA is defined as a task.

If you create a FUOTA task for a group of 1,000 devices, you will be metered for 1,000 tasks. You get the first 100 FUOTA tasks for free.

AWS IoT Core for LoRaWAN Public Network Support

AWS IoT Core for LoRaWAN Public Network Support helps customers connect their LoRaWAN devices to AWS IoT using a publicly available LoRaWAN network. The public LoRaWAN network is operated and provided as a service directly by Everynet. By using the Everynet public network, customers do not need to deploy their own private LoRaWAN network to connect their devices to AWS IoT, which helps to save cost, long-term network management needs, and reduce time-to-deployment. Currently, AWS IoT Core for LoRaWAN supports Everynet’s public network coverage in the US and UK.

Device Shadow and registry

The Device Shadow stores the desired state or actual state of a device, and the registry is used to name and manage devices. Device Shadow and registry use are metered by the number of operations that access or modify Device Shadow or registry data.

Device Shadow and Registry operations are metered in 1 KB increments of the Device Shadow or Registry record size. For example, an update to a 1.5 KB Device Shadow record is metered as two operations. See additional Device Shadow & Registry pricing details »

Creating and updating dynamic groups, adding and removing devices from your dynamic thing groups are metered as registry operations.

Rules engine

The Rules Engine helps you transform device data using arithmetic operations or external functions such as AWS Lambda. It then route the data to an AWS service such as Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB, or Amazon Kinesis. Rules Engine use is metered each time a rule is initiated and for the number of actions applied within a rule, with a minimum of one action per rule.

Rules and actions are metered in 5 KB increments of the message size. For example, a rule that processes a 5 KB message and applies no action is metered as one rule and one action. Also, a rule that processes an 8 KB message and applies two actions is metered as two rules and four actions. For data transferred in-and-out of certain rule actions from outside the Region, the actions applied would be charged at the Amazon Elastic Compute Cloud (Amazon EC2) data transfer rates as listed here under Data Transfer. 

Decoding a Protocol Buffer (Protobuf) encoded message to JavaScript Object Notation (JSON) format using decode() function is metered as “1 Action” by Rules Engine. However, Protobuf-to-JSON decode is not metered in increments of 5 KB. You pay for 1 Decode (Action) for decoding Protobuf messages up to the maximum payload size of 128 KB; however, you pay additional for Rules Triggered and Actions Executed as per regular metering.

See additional Rules Engine pricing details here »

Device Location

With AWS IoT Core Device Location, you can choose the cost-effective location technology that works for your business. When using Device Location, you can augment device data with location information to better complement the management of your device fleet.

If you also use Semtech’s Advanced Transport service (such as ROSE), you will be charged for the total amount of data transported per month. The first 50 MB is $0.145 per MB; if above 50 MB, the cost will be $0.116 per MB. We also offer a free tier for location solvers. You can use Device Location to resolve up to 1,000 locations for free, within the first 12 months starting with the date you created your AWS account. When your free usage expires or if your application use exceeds the free usage tiers, you would pay the usage rates. The free tier is available in all AWS Regions except AWS GovCloud (US). 

Device Advisor

Device Advisor is generally free except for any costs associated with AWS usage as part of their testing (such as  AWS IoT Core usage as part of testing or logs for each test in Amazon CloudWatch). AWS resource usage is visible in your AWS account and charges for these will apply to the developers’ AWS bill.

Pricing examples for AWS IoT Core components

Connectivity charges

Example 1

You have 10,000 devices that maintain constant connection to AWS IoT Core in the Europe (Ireland) Region for 30 days. The connectivity rate for the Region is $0.08/1,000,000 minutes of connection. Your charges would be calculated as follows:

  • Minutes of connection = 10,000 connections * 60 minutes/hour * 24 hours/day * 30 days = 432,000,000 minutes of connection
  • Total connectivity charges = 432,000,000 minutes of connection * $0.08/1,000,000 minutes of connection = $34.56

Example 2

The same 10,000 devices as in the previous example connect to AWS IoT Core in the Europe (Ireland) Region for 15 minutes each hour, every hour for 30 days. Your charges would be calculated as follows:

  • Minutes of connection = 10,000 connections * 15 minutes/hour * 24 hours/day * 30 days = 108,000,000 minutes of connection
  • Total connectivity charges = 108,000,000 minutes of connection * $0.08/1,000,000 minutes of connection = $8.64
 

Messaging charges

Example 1

You have one device that publishes one 2 KB message every hour to AWS IoT Core in the Europe (Ireland) Region for 30 days. AWS IoT Core then delivers each (2 KB) message to five other devices in the same Region. The MQTT and HTTP messaging rate for the first one billion messages is $1/1,000,000 messages. Your charges would be calculated as follows:

Publishing cost to the AWS IoT Core

  • Published message count: 1 message/hour * 24 hours/day * 30 days = 720 messages
  • Published message charges: 720 messages * $1/1,000,000 messages = $0.00072

Delivery cost to devices

  • Delivered message count: 5 messages/hour * 24 hours/day * 30 days = 3,600 messages
  • Delivered message charges: 3,600 messages * $1/1,000,000 messages = $0.0036

Total messaging charges

  • Total messaging charges = Published message charges + Delivered message charges
  • Total messaging charges = $0.00072 + $0.0036 = $0.00432

Example 2

You have one device that publishes ten 8 KB messages every hour to AWS IoT Core in the Europe (Ireland) Region for 30 days. Of those 10 messages sent every hour, four are sent to AWS IoT Core Rules Engine through Basic Ingest. Since you are using MQTT or HTTP, you do not incur messaging charges for the four messages sent or received using the Basic Ingest reserved topic. The other six messages are published at the rate of $1/1,000,000 messages for the first one billion messages. Your messaging charges would be calculated as follows:

Publishing cost to the AWS IoT Core

Since each message is larger than 5 KB, it is metered as two (5 KB) messages.

  • Published message count through Basic Ingest: 2 metered messages * (4 messages/hour * 24hours/day * 30 days) = 5,760 messages
  • Remaining published message count: 2 metered messages * (6 messages/hour * 24 hours/day * 30 days) = 8,640 messages
  • Messaging charges for published messages through Basic Ingest: 5,760 messages * $0 = Free
  • Messaging charges for remaining published messages: 8,640 messages * $1/1,000,000 messages = $0.00864

Total messaging charges = Messaging charges for published messages through Basic Ingest + Messaging charges for remaining published messages = $0 + $0.00864 = $0.00864

 
Example 3
 
You have one LoRaWAN device that publishes one message every 15 minutes (4 per hour) to AWS IoT Core LoRaWAN in the US East (N. Virginia) Region for 30 days. Your application sends messages to the device twice every day to change the device state. The device also sends a joint request to secure the device session once every week (rounded to four weeks in this 30 day example). The LoRaWAN messaging pricing in US East (N. Virginia) for the first one billion messages is $2.3/1,000,000 messages. Your charges would be calculated as follows:
 
Uplink cost:
 
  • Uplink message count: 4 messages/hour * 24 hours/day * 30 days = 2,880 messages
  • Uplink message charges: 2,880 messages * $2.3/1,000,000 messages = $0.006624

Downlink cost:

  • Downlink message count: 2 messages/day * 30 days = 60 messages
  • Downlink message charges: 60 messages * $2.3/1,000,000 messages = $0.000138

Join cost:

  • Join message count: 1 message/week * 4 weeks = 4 messages
  • Join message charges = 4 messages * $2.3/1,000,000 messages = $0.0000092

Total messaging charges:

  • Total messaging charges = Uplink message charges + Downlink message charges + Join message charges
  • Total messaging charges = $0.006624 + $0.000138 + $0.0000092 = $0.0067712

Device Shadow and registry charges

Example 1

You have 100 devices that initiate a total of 1,000,000 Device Shadow updates in the Canada (Central) Region. The Device Shadow record size for each update is 1.5 KB. The Device Shadow and registry rate for the Canada (Central) Region is $1.25/1,000,000 operations. Your charges would be calculated as follows:

Since the Device Shadow size exceeds 1 KB, operations are metered at the next KB multiple (2 KB) as two operations.

Total Device Shadow charges = 2 operations * 1,000,000 updates * $1.25/1,000,000 operations = $2.50

Example 2

Your solution from the previous example calls the ListThing API 100 times over 30 days. Each time, the API returns 500 records. The size of each record is 1 KB. Your charges would be calculated as follows:

Registry requests = 100 requests * 500 = 50,000 requests

Total registry charges = 50,000 requests * $1.25/1,000,000 requests = $0.0625

Rules engine charges

Example 1

You have 100 devices that initiate a total of 1,000,000 rules in the Canada (Central) Region. Each rule forwards data to Amazon S3, invoking one action. The rate for both the rules triggered and the actions initiated in Canada (Central) is $0.15 (per million rules initiated / per million actions applied). Your charges would be calculated as follows:

  • Rules initiated charges = 1,000,000 rules initiated * $0.15/1,000,000 rules initiated = $0.15
  • Actions applied charges = 1,000,000 rules initiated * 1 action executed/rule initiated * $0.15/1,000,000 actions applied = $0.15

Total rules engine charges = Rules charges + Actions charges = $0.15 + $0.15 = $0.30

Example 2

The same 100 devices from the previous example initiate a total of 1,000,000 rules in the Canada (Central) Region. However, each rule also calls an external function and then forwards data to S3, invoking two actions. Your charges would be calculated as follows:

  • Rules initiated charges = 1,000,000 rules initiated * $0.15/1,000,000 rules initiated = $0.15
  • Actions applied charges = 1,000,000 rules initiated * 2 actions applied/rule initiated * $0.15/1,000,000 actions applied = $0.30

Total rules engine Charges = Rules charges + Action charges  = $0.15 + $0.30 = $0.45

Pricing example for a workload using all AWS IoT Core components

You have 100,000 devices that maintain a constant connection to AWS IoT Core for 30 days in the Europe (Ireland) Region. Each day, each device sends 325 messages of 1 KB in size. Of the 325 messages sent per device each day, 100 initiated a Device Shadow update and 200 initiated a rule that applies one action. Your charges would be calculated as follows:

Connectivity charges

  • Minutes of connection = 100,000 connections * 60 minutes/hour * 24 hours/day * 30 days = 4,320,000,000 minutes of connection
  • Connectivity charges = 4,320,000,000 minutes of connection * $0.08/1,000,000 minutes of connection = $345.60

Messaging charges

  • Messages = 100,000 devices * 325 messages/device-day * 30 days = 975,000,000 messages
  • Messaging charges = 975,000,000 messages * $1.00/1,000,000 messages = $975.00

Device Shadow and registry charges

  • Device Shadow requests = 100,000 devices * 100 requests/device-day * 30 days = 300,000,000 requests
  • Device Shadow size is less than 1 KB, so it is rounded up to the nearest KB (1 KB)
  • Device Shadow charges = 300,000,000 requests * $1.25/1,000,000 operations = $375.00

Rules engine charges  

  • Rules initiated = 100,000 devices * 200 rules initiated /device-day * 30 days = 600,000,000 rules initiated 
  • Actions applied = 600,000,000 rules initiated * 1 action executed/rule initiated = 600,000,000 actions applied
  • Rules initiated charges = 600,000,000 rules initiated * $0.15/1,000,000 rules initiated = $90.00
  • Actions applied charges = 600,000,000 actions applied * $0.15/1,000,000 actions applied = $90.00

Total rules engine charges = $90.00 + $90.00 = $180.00

Total workload charges

  • Total charges = $346.60 + $975.00 + $375.00 + $180.00 = $1,876.60

AWS IoT Core does not involve the resale of telecommunication services and connectivity will be provided by third parties.

Discover more AWS IoT Core resources

Visit the resources page
Ready to get started?
Sign up
Have more questions?
Contact us