To Serverless or not to Serverless, that is the question

Marcin Sodkiewicz
3 min readAug 2, 2023

Back-of-the-envelope estimations with https://www.aws-geek.com/

Motivation

Me & my team were migrating our systems to the AWS many years ago. We started in 2016 and these were our first steps in the AWS. We weren’t big fans of lift & shift migrations (to say the least), as we knew that the cloud had much more to offer. We fell in love with serverless architectures, but we were still very price conscious as we were working for a low-cost airline after all.

At the time, we had a lot of discussions about TCO, key system characteristics, migration effort and return on investment, etc. For all the great things about serverless, it’s not always the best choice for high throughput systems, and at the time we were looking for quick wins. We first needed to find the best candidates for serverless migration. What we lacked was a simple back of the envelope estimation tool that would tell us which way to go.

This is why I have created https://www.aws-geek.com — just to share with the community a simple tool that can be useful whenever you are faced with such tasks. It’s critical to mention here that this tool is meant for estimations only as it won’t show full TCO, cost of services used along your compute which are crucial for cost of solution or even cost of EBS & it doesn’t take into account all the best things about serverless architectures.

Tool evolution

This website is not new and it’s been there for a while, yet recently I have put few updates and migrated it from the previous solution. Let me briefly describe my journey.

First version

It started as a React app hosted on Github Pages with a simple redirect set up on GoDaddy, and it didn’t even support https. Another issue is the AWS Pricing APIs themselves.

  • Some AWS APIs for loading prices did not support CORS, so I had to use CloudFlare workers to bypass CORS as described in this article.
  • The EC2 pricing API has payloads larger than 250MB per region! I found an API that served this data in a more digestible format, but it did not support many regions and had quite outdated prices.

Current version

Now I serve data from S3 via CloudFront using my own data, which is prepared daily in the background by AWS Lambdas and StepFunctions in a minimal format that is easy to read and use.

Improvements:

  • Update data more frequently which is important especially for spots
  • Region picker (and it support il-central-1 that was added yesterday)
  • Support for reserved instances
  • Support for Windows instances (which are shockingly expensive)
  • Toggling chart series
  • Consistent series colours

Regarding data sources that I have built and I am using in aws-geek you can check them out under:

Summary

In my opinion this tool is very useful especially to convince people to use serverless. Out of my experience in majority of situations migration to serverless is very beneficial (not only in cost dimension).

I hope you will find this tool or pricing endpoints very useful in your work and that it will save you some time :)

Please keep in mind that it should only be used for back-of-the-envelope compute pricing estimates and there are many more things to consider when redesigning a system.

--

--