Please don't surprise your customers with Azure Cosmos DB costs...
- RU/s are confusing, new and different. Please assume that your current and potential customers are not going to understand how they work for a while.
- Notify your customers via portal alerts when their costs are on track to increase by more than 50% on the next invoice.
- Every service needs a trial mode. There needs to be a very cheap and limited way that current and potential customers can test drive Azure services without being surprised by thousands of dollars in charges.
- Don’t default to 800 RU/s when creating an Azure Cosmos DB Table with the .NET client library. The minimum is 400 RU/s. Default to the minimum so that your current and potential customers are less likely to be surprised by the cost.
- Reduce the minimum RU/s from 400 down to 50 and change the increment to 50 RU/s. There is a lot of potential value to be gained by Azure Cosmos DB with more flexible pricing. There are many use cases where SLA is a lower priority.
- Make it very clear in the portal that when selecting additional regions for geo-redundancy the costs will be multiplied. This is not at all obvious and when combined with the learning curve around RU/s I believe you will have many customers surprised when the cost doubles or triples.
- Notify your Cosmos DB customers when they are consuming zero bytes and executing zero transactions for more than a week. Inform them they are still paying for the service as if they were using 10 GB of data and thousands of transactions a day.
Hi Robin, thank you for your feedback. Will take one at a time.
1. We realize RU/s (provisioned throughput) is a different model than people may be used to. It is however, not different than say provisioning a VM where you are paying for compute, IO and memory. Customers here too do not want to over-provision as there are unused resources. The same goes for Cosmos DB. Where we need to do better, is in helping people measure their usage and tune their RU/s. This work is planned and ongoing.
2. We are currently planning on enhancements to Azure Advisor in the portal around this.
3. Cosmos DB has three different means for Trial. There is the Azure Trial itself. There is also our Emulator (https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator). Finally, there is TryCosmosDB, (https://azure.microsoft.com/en-us/try/cosmosdb/)
4. I will review this with our SDK team. Agree we should use minimums as defaults.
5. 400 RU/s is already very low. When combined with the ability to provision a database at 400 RU/s and share you are effectively able to get the lower RU/container you are looking for. Currently, 50 RU/s is unplanned.
6. Work on this is also planned.
7. This is similar to what we are planning for Azure Advisor feature.
Thank you again for your suggestions.
Adam Sasine commented
#5! I think Cosmos DB is missing out on many developers and applications because hobbyists, who also work for companies and who also make OSS libraries, are unlikely to choose a database with a minimum price of $24/month. $5/month would be ideal and make Cosmos DB much more competitive with Azure SQL Database and AWS DynamoDB.
We need a small database to experiment with and are leveraging SQL Server in Azure for $5/mo. We would prefer to select Cosmos DB, however the ~$23 minimum cost per month is to great. We need something in the <$10/mo range (ideally $5/mo.).
Or rename the product to Azure CostMost DB ;-)
I just realized that my almost idle and empty CosmosDB instance made more than 100$ last month. I was not aware of the fact that I pay per collection.
I also got burned by RU/s, not understanding that they are effective for 1 hour even if you use the RU for just 10 minutes.
rob smith commented
Want to use Cosmos DB but our model is many smaller collections, where each collection is for a tenant of a multi-tenant platform. CosmosDB pricing makes our model untenable, simply because the Cosmos charge works out more than our platform. There needs to be a pricing model for smaller businesses, especially ones that need multiple collections. This is the last step preventing us from moving to a complete Azure serverless architecture. Its very frustrating and is causing us issues at a time when we wish to be growing our business. Azure could actually be very helpful in this but with this Cosmos DB pricing it is actually slowing us down.
Greg Keogh commented
I very strongly agree with points 3, 4 and 5 here, in that there should be a free/trial tier and some very low cost tiers for Cosmos DB. I'm using Cosmos DB in a couple of live projects and experimenting with it in some others. In all cases the collections only contain several thousand documents or vertexes and the traffic is very low, but the minimum monthly cost is $AU28 at the lowest setting of 400 RU. A few of these accumulate and become a burden on a developer or a small business. So a free or low cost tier would be most welcome for people who enjoy the Cosmos DB data models but have no interest in vast scalability or performance.