Pricing model Azure vs. AWS

This #Gossipiece is going to compare the pricing model between Azure and AWS, on their IoT platform.

AWS is using a pay-as-you-go model: https://aws.amazon.com/iot-core/pricing/

while Azure is using a tier-based model: https://azure.microsoft.com/en-us/pricing/details/iot-hub/

A lot of people will take the pay-as-you-go model in the wrong way. “You only pay for what you use!” Hey, wait…. this is NOT equal to Cheap, not always!

To better understand the pricing model of both company, I did a quick comparison based on the same/similar spec.

Assumptions:

Region:

  • AWS-Paris
  • Azure-France (central)

Currency:

  • Dollar

Assumption of devices:

  • Number: 100, 1,000, 10,000,100,000
  • uplink Messages per device per day: 24, 1440, 86400
    • uplink message usually refers to measurements data, e.g., temperature, vibration.
  • downlink message per device per day: 100
    • downlink includes command messages from cloud to devices

Only Uplink

when we only calculate the uplink messages

From the table, we can conclude that if the message number is lower than 14,400,000 per day (in total), AWS is definitely cheaper than Azure. That is about 100,000 device and each of them sends data per hour.

Other cases…. AWS become incredibly expensive to use… For example, if you have 1000 device, and they are sending data every second. That is 2,592,000,000 messages per month. You have to pay $2728.32 to AWS while Azure only cost you $625 using tier B3.

There is one thing tho, if you have 10000 devices and sends data per second, it actually excels the limit of each IoT hub can offer today. I simply add another IoT hub, i.e., multiply the number of the IoT Hubs. Maybe Microsoft will charge more?

With some Downlinks and other operations

Azure pricing does not differentiate from uplink and downlink message, however, basic tier does not support Cloud to device message. Hence we will need to choose the standard tier this time.

For AWS, price is the same for downlink messages, so we can simply add the 100 operation messages. However, AWS charges extra for device shadow and registry usage. Here is a problem, if you build a consumer solution, and you have millions of customers. They will generate a lot of operations that will cost extra! For simplicity, we are not going to include this. Therefore, in our calculation, AWS price doesn’t change.

We switch from Basic tier to Standard tier for Azure

Not difficult to note that as long as daily message number is lower than 86,400,000, AWS is still cheaper than Azure. This is equivalent to 1000 devices sending data every second.

Summary

  1. If you expect your business gonna grow to hundreds of thousands of devices, better negotiate with AWS for a better price, pay-as-you-go will be super expensive.
  2. If your business will have millions of consumers using an app managing their devices… better be careful with AWS… it’s gonna be super expensive.
  3. If you are running a small business, won’t reach to millions of message per day. Just go for AWS. It’s way cheaper than Azure. Especially for individual developers, just use AWS.
  4. Azure is really designed for enterprises, really huge businesses.