Hey, I'm Marat šŸ‘‹
Published on

Finding the right AWS compute service for your workload

Authors

Photo by veeterzy on Unsplash Photo by veeterzy on Unsplash

In April of 2020, I decided to tackle a long-standing problem with AWS: how does one decide on the appropriate service for their undertaking? To ā€œsolveā€ or at the very least assist with this problem, I released the AWS Compute Decision Tree. The decision tree requires you, the reader, to answer a bunch of questions until you finally reach a recommended AWS service.

The original decision tree was by no means perfect. Several workloads were missing, some decision lines were just plain invalid, and as always, AWS released a slew of new services which the tree doesn’t cater for. So, I decided to take another stab and create version 2.

What’s changed?

The underlying premise is exactly the same. You still have three streams, analytics, application, and machine learning. You still answer a bunch of questions, and you still get those sweet sweet AWS service recommendations at the end.

But, a few things have changed.

Streaming

The original tree didn’t cater for streaming workloads. It’s quite a significant oversight but one that has now been addressed. I’ve added Amazon Kinesis Data Analytics, AWS Glue, and Amazon EMR to support streaming workloads using either SQL or PySpark. Pick your poison.

Serverless

re:Invent 2021 released a whole host of serverless services, including but not limited to Amazon Redshift Serverless and Amazon EMR Serverless. Again, we’ve updated the decision tree to differentiate between the serverfull and serverless variants.

Edge Compute

Whilst still nowhere near complete, I’ve finally added some edge compute capabilities through the use of AWS Panorama and AWS IoT Greengrass.

Future iterations would possibly add AWS Outpost, AWS Snowball, AWS Snowcone and more. I’m no edge compute specialist, so I’d rather not rush this one.

It comes in two flavours!

The original decision tree was a single PDF that was reasonably easy to consume but hard to maintain. Version 2 tries to solve this by creating three draw.io diagrams (one for each stream) as well as a choose your own adventure style storyboard.

So now, without further ado:

Application

AWS Application Compute Decision TreeAWS Application Compute Decision Tree

Analytics

She’s a big one… AWS Analytics Compute Decision TreeShe’s a big one… AWS Analytics Compute Decision Tree

Machine Learning

AWS Machine Learning Compute Decision TreeAWS Machine Learning Compute Decision Tree

Choose your own adventure

You’re going to love this one. Head on over and play what is probably the least exciting choose your own adventure game :)

AWS Compute Decision Tree Story Board

I’ve open-sourced it!

I decided to open-source the decision tree. Do I hope someone will contribute? A little. Do I think people will? Probably not. But that’s OK. Whatever makes it easier for people to find, share, get value, or even modify for themselves is a win in my book.

If you’d like to contribute, provide commentary, or star the repo to get notified of any changes, head on over to: servian/aws-compute-decision-tree

I had fun updating the tree and adding support for new and missing services. If you have any feedback, comments or suggestions, please let me know in the comment section below or raise them as an Issue in GitHub.