What's the best AWS Compute option for your project?

Michael Wittig – 25 Feb 2020

There are many good reasons why you should move to the cloud and AWS in particular. Benefit from the latest innovations or consume sophisticated technology as a commodity (relational databases, Hadoop clusters, data warehouses, …) to lower your time to market. You can automate every single task to increase the quality of your operations. Pay as you go by default for maximum freedom with options for longer-term commitments for lower prices. An elastic world allows new services and processes that will transform the way you think IT. Last but not least, you get the same capabilities across the globe. The only downside: AWS offers so many choices and freedom! What’s the best option to run your applications?

Decision Tree

Do you prefer listening to a podcast episode over reading a blog post? Here you go!

You can run your application on virtual machines using EC2. If you prefer containers, ECS Fargate is your choice. But you can also use the latest Serverless capabilities to run your application on Lambda. But what’s the difference?

EC2 in a nutshell

Amazon EC2 is the service to spin up (virtual) machines in minutes. Windows and Linux are supported. Up to 448 cores, 26 TB memory, and 100 Gbps network, GPUs, and massive amounts of storage. Billed per second (Linux only). You will not find a missing feature. EC2 is the most mature option and has you covered!

Fargate in a nutshell

AWS Fargate runs your Docker containers. No need to install, configure, or patch a cluster. It feels like EC2, but you get lightweight containers. Up to 4 cores, and 30 GB memory. With flexible per second billing. Fargate is the easiest way to run Docker containers on AWS. You have to use either the ECS or Kubernetes (EKS) API to interact with Fargate.

Looking for a new challenge?

  • tecRacer

    Cloud Consultant • AWS Migrations

    tecRacer • Premier AWS Consulting Partner • Germany, Austria, Portugal, and Switzerland
    Assessment Transformation Change Management

    Senior Lead Full Stack Developer

    DEMICON • AWS Advanced Consulting Partner • Remote
    AWS JavaScript/TypeScript Angular React

Lambda in a nutshell

AWS Lambda is the latest technology and evolves quickly. Upload your source code, and AWS runs it for you. Lambda is to most convenient way to execute source code on AWS. The convenience comes with limitations: You have to follow the event-driven programming paradigm, 15 minutes are all you get in a single execution, and the number of supported programming languages is limited.

With so many choices, you need guidance. That’s why I created a decision tree!

Download the free AWS Compute Decision Tree (PDF format). I hope you find it useful!

The following list helps you to choose the best compute option for your project:

Criteria Possible Options
Windows only? EC2
> 30 GB memory required EC2
> 4 cores required EC2
> 1 Gbits networking required EC2
Requires GPUs EC2
Stateful application EC2
Shared file system EC2
Many concurrent users EC2
Risk-averse when using new technologies EC2 or Fargate
Lift&Shift project EC2 or Fargate
New In-house development Fargate or Lambda
Stateless application Fargate or Lambda
Infrequently used Lambda


AWS offers many choices to run your application. As AWS users, we have to pick the option that is best for us. Lucky you, if your requirements map to a single choice (e.g., Windows workload => EC2). Otherwise, choose the option that matches most often.

Become a cloudonaut supporter

Michael Wittig

Michael Wittig ( Email, Twitter, or LinkedIn )

We launched the cloudonaut blog in 2015. Since then, we have published 360 articles, 50 podcast episodes, and 48 videos. It's all free and means a lot of work in our spare time. We enjoy sharing our AWS knowledge with you.

Please support us

Have you learned something new by reading, listening, or watching our content? With your help, we can spend enough time to keep publishing great content in the future. Learn more

Amount must be a multriply of 5. E.g, 5, 10, 15.

Thanks to Alan Leech, Alex DeBrie, ANTHONY RAITI, Christopher Hipwell, Jaap-Jan Frans, Jason Yorty, Jeff Finley, Jens Gehring, jhoadley, Johannes Grumböck, Johannes Konings, John Culkin, Jonas Mellquist, Juraj Martinka, Kamil Oboril, Ken Snyder, Markus Ellers, Ross Mohan, Ross Mohan, sam onaga, Satyendra Sharma, Shawn Tolidano, Simon Devlin, Thorsten Hoeger, Todd Valentine, Victor Grenu, and all anonymous supporters for your help! We also want to thank all supporters who purchased a cloudonaut t-shirt.