Someone asked me for help in reducing the AWS IoT cost. That person provided the maximum yearly expense per device and asked how to achieve it.
I could not give any hints based on that single piece of information. It looks like a common misunderstanding, so I decided to share my thoughts on this topic.
Starting the conversation with “I can spend X USD per year” does not move the cost optimization exercise an inch further.
The only answer I could provide in that case is, “Do not connect any devices to AWS to minimize your expenses”.
Begin the cost optimization by describing the business case, requirements, and expected value.
Those are the foundations for asking more precise questions, like:
- Is streaming real-time data required, or could you create batches at the edge?
- Do edge devices have any pre-processing capabilities?
- How will you consume gathered data on the backend? (That defines the way you will store it.)
- …
Create the first draft calculation once you understand the business scenario and have gathered detailed answers to the above questions.
That iteration will give you some cost estimation. The accuracy depends on the amount of detail collected during the interview and your understanding of the AWS services.
Hopefully, the projected expenses fit into the allocated budget.
What if you understand the business case, used some tricks to reduce the AWS costs, and still exceeded the budget?
In that case, you need a second meeting with the owner.
Prepare a list of business assumptions and requirements generating the most significant expenses.
- Maybe real-time telemetry streaming is not mandatory to achieve the business goal?
- Perhaps you can pre-process data at the edge and transfer only aggregated information.
- Does it really make sense to update reporting dashboard every 15 minutes?
- …
The brainstorming continues until you agree on the new set of requirements and/or business goals.
Based on the new input, create a second cost calculation.
The cycle repeats:
- Business goal fits into the budget, or
- You confirm that the initiative will not be profitable and terminate the engagement.
Any of those outcomes is a success.
That is the way I approach cost estimation.