The Tale of Two Mongos

dynamic-python-developer
Feb 21 · 6 min read

Are you looking for a 100% Free MongoDB Cluster? Or maybe you want to upgrade that 100% Free Cluster? This is the tale of two Mongos and my impressions of the value of both.

Photo by Ilyas Aliev on Unsplash

One of the two Mongos is billed as being 100% Free and a Cluster. Ooh, aah. (See also: cloud.mongodb.com)

The problem with the 100% Free Cluster is that this is limited, as all free things are, to only 512 MB of storage although they do provision a cluster of 3 servers and they expect you to upgrade at some point. The upgrade is the real issue, for me. For only $9 per month, you will get a whopping 2 GB storage. Ok. This is not awesome and there is no way to incrementally add storage, as far as I can tell.

This is where the story gets a bit weird, I know, but I like weird.

Azure. Cosmos DB.

Yeah, I know what you’re thinking. Azure? Really? Keep reading.

Apparently, Cosmos DB can smell and taste just like MongoDB which means it is probably MongoDB under the hood. And you can provision a Serverless Cosmos DB and they say, “Serverless makes it easy to run spiky workloads that don’t have sustained traffic.” I had to try twice to get my Serveless Account setup because it failed the first time and I was not able to fix this other than to delete the failed Account and try again. Azure will sell you 1 million Request Units for 28.2 cents. Ok. So I only pay for what I use or need. And Azure will sell you 1 GB for every 25 cents which means there is an upgrade path that makes more sense to me than that Free Forever Mongo and this is where I think the makers of MongoDB could use some business sense because I would be more willing to upgrade if the upgrade path were more incremental. Azure will also give you two backup copies for Free.

Now, I prefer using a VM when accessing my Databases but then I also have the ability to quickly deploy REST APIs in the form of Microservices (read about it here) and for me, this is also much more secure than the other thing and I prefer to only have to deal with a CIDR block once or not so often as would be the case otherwise. I also prefer fronting my MongoDB with a cheaper block of storage and I can get this from a VM. Then I pick and choose what to store in the Serverless Mongo based on how important the data might be. For instance, I use MongoDB to process a Word Cloud from all my articles so I can display a Word Cloud and while this may be old-school it can also be useful. The data for the Word Cloud is easy to cogitate and there is very little value in making the Word Cloud Analytics more persistent than a temporary scratch-pad as is the case if the Database were hosted in a VM. The source data I use to cogitate the World Cloud consumes much less storage than the words for the Word Cloud so I put the source data in a more persistent database. In the event my VM has to get recycled the cost, for this application, would be a bit of time to reproduce the words and the analytics for the Word Cloud, and doing this is not a big deal. The source data in the form of the URLs where the source words can be retrieved is the real value, for me. I might also store the text from each article because I do not have an automated means to grab the source text so saving the text persistently becomes a valuable thing for me.

The cheapest Azure VM I can find would cost a bit less than $9 per month. Hmmm. This also gives me 1.75 GB RAM and 70 GB disk for this same $9 per month. This would give me what I might need for a Docker-based MongoDB Cluster I can connect to via that Dynamic Pluggable Microservice Framework Lite because I can use it to deploy the Microservices I need to properly manage the two classes of data for my Word Cloud and Azure handles the backups and I am not locked into a much more expensive upgrade path as would be the case with the makes of MongoDB. There is also an upgrade path for local VM storage that makes sense with Azure and I can have SSD storage for something like 30 cents a month for every 4 GB of SSD. And all this means I can have exactly what I want or need for that $9 per month and I can grow what I need in a more organic manner.

The other reason to have local VM storage comes from the desire to reduce data transfer in and out of the Azure network because this is another source of revenue for a Cloud Provider and I would rather not have to spend money just to munch on data when the munching is not a real cost.

This is the real question, in my mind. Hmmm.

Maybe the MongoDB Cloud people are just not aware of their options. On the one hand, it is kind of cool they give you a cluster of 3 somethings that are likely Docker Containers because this would be cheap for them. While not giving their customers a more granular upgrade path and this seems unwise for them assuming they wanted to compete with companies like Microsoft who seem to use MongoDB under the guise of Cosmos DB.

I do not see why the MongoDB Cloud people could not simply resell Azure services while tracking the amount of storage one may consume when billing their customers for the more granular upgrades. But no matter.

I am giving Azure a try and I am not saying this because I can include a link I might get something from and I am a bit bitter about this to be sure.

I am giving Azure a try because I now do not need to spend any money with the MongoDB Cloud people and I still get to use MongoDB once I transfer my data from the Free Forever Cluster into a new shiny $9 per month Cluster.

Just to be fair. I am now earning $40 per month from the data I might store in Azure so the cost is not an issue. I have plans to grow my data and hopefully the money I might make from it so I am keen to look for an upgrade path that makes more sense to me than the other one.

AWS wants way too much money for their DynamoDB and that option is not compatible with MongoDB which means I would not only spend more money with AWS but I would also have to spend more time building the code I would need to get me to the point of spending more money. Not a big win.

Meanwhile, I am using that Free Forever MongoDB Cluster where there is no cost I will be giving Azure a test drive to see if their pricing structure is on the level.

It seems the pricing calculator is not up to date with the actual offerings at Azure which means the VM I wanted is not even available and this seems a bit dishonest from where I am sitting. The actual VM I might be able to have would cost 2x what I saw in the pricing calculator. May the buyer beware.

Ok. The VM is being created. I Will report again once I have given Cosmos DB a whirl with Python and pyMongo.

Dynamic Python

Python is so dynamic

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store