Skip to main content
Containers

EKS vs. Fargate vs. EC2: The Real Cost of Running Containers on AWS

Everyone's pushing containers, but the bill's on you. We crunched the numbers on EKS, Fargate, and EC2—and found that the cheapest option isn't always the one that saves you money.

Containers Are Not Free—Stop Pretending They Are

Everyone tells you containers are the future, and they're right—but that doesn't mean they're cheap. The cloud giants are laughing all the way to the bank: enterprise spending on cloud infrastructure hit $143 billion in Q2 2026, up 43% year over year (Synergy Q2 2026). And you're probably overpaying for the privilege of running your containers. The real question isn't whether to use containers; it's where you run them. Today, you have three main paths: AWS EKS (managed Kubernetes), AWS Fargate (serverless containers), and plain old EC2 (self-managed). Each has its fanboys, but only one makes sense for most workloads. Let's break it down.

The Contenders: EKS, Fargate, and EC2

Before we dive into the numbers, let's set the stage. EKS is AWS's managed Kubernetes service—it automates cluster infrastructure management, but you still pay for the underlying EC2 instances your workloads run on (AWS EKS). Fargate is a serverless compute engine for containers—you don't manage servers at all; you just define your task and AWS handles the rest, scaling up to 16 vCPU and 120 GB of memory per task (AWS Fargate). And EC2 is the raw, unmanaged compute service where you pick an instance type, provision it, and install Docker or Kubernetes yourself (AWS Documentation).

Each has its place. EKS is for teams that need Kubernetes-specific features or are already invested in that ecosystem. Fargate is for teams that want zero infrastructure management. EC2 is for teams that want maximum control and are willing to do the work. But here's the catch: control and convenience come at a price—sometimes literal, sometimes hidden.

Head-to-Head: What You're Actually Paying For

Let's compare them on four concrete criteria: pricing model, management overhead, scaling flexibility, and operational control. I'll use a typical scenario: a containerized web service that needs 2 vCPU and 8 GiB memory, running 24/7. I'll also assume you're using On-Demand pricing for EC2 and EKS, because that's what most people start with—and where most people overpay.

CriterionEKS + EC2 (On-Demand)FargateRaw EC2 (On-Demand)
Pricing modelPay per EC2 instance + EKS control plane feePay per vCPU and GB per secondPay per second per instance
Management overheadYou manage worker nodes, upgrades, scalingAWS manages everythingYou manage everything
ScalingManual or via Cluster AutoscalerAutomatic, per-task scalingManual or via ASG
Operational controlFull control over nodes and podsLimited—no access to underlying hostsFull control over instances

Now, let's talk money. In us-east-1, an m5.large instance (2 vCPU, 8 GiB) costs $0.096/hour on On-Demand (AWS EC2 Price List API). That's about $70/month. If you run that instance for your EKS worker node, you'll pay that plus a control plane fee—EKS charges $0.10 per hour for the control plane (AWS EKS), which adds another $72/month. So EKS + EC2 runs you ~$142/month for a single 2-vCPU/8-GiB node.

Fargate, on the other hand, charges per second based on vCPU and memory. AWS doesn't publish a simple per-hour price, but the pricing page says you pay for vCPU and GB per second (AWS Fargate). For a rough comparison, Fargate's price is typically about 1.5x the equivalent EC2 On-Demand price. For 2 vCPU and 8 GiB, that's roughly $0.14/hour, or ~$102/month—still less than EKS+EC2 because you don't pay a separate control plane fee, but more than raw EC2.

Raw EC2 gives you the same m5.large for $0.096/hour (~$70/month), but you have to do everything yourself: install Docker, manage the host OS, set up auto-scaling, etc. If you're comfortable with that, you save a chunk of change.

But wait—there's more. The cloud giants are pushing you toward serverless, and they're not doing it out of the kindness of their hearts. AWS's own Graviton-based instances cost up to 20% less than comparable x86 instances (AWS Graviton). An m7g.large (Graviton3) costs $0.0816/hour, while an m7i.large (x86) costs $0.1008/hour (AWS EC2 Price List API). That's a 19% savings just by switching to ARM. And Graviton instances use up to 60% less energy (AWS Graviton), which is good for the planet and your conscience, but not necessarily your wallet—though it does reduce AWS's costs, which they may or may not pass on.

So, the raw cost hierarchy is: EC2

Who Should Use Each (and Why Most of You Should Choose Fargate)

Here's my blunt take:

  • Use EKS if you're already running Kubernetes on-premises, or if you need specific K8s features like custom controllers or network policies, and your team is comfortable managing worker nodes.
  • Use Fargate if you want to focus on your application, not your infrastructure—especially if you have a small team or unpredictable traffic.
  • Use raw EC2 if you have deep expertise and a workload that's stable enough to benefit from long-term commitments like Savings Plans or Reserved Instances, which can cut costs by up to 72% or 75% respectively (AWS Documentation).

But here's the kicker: most teams are overestimating their ability to manage EKS or EC2. The management overhead of EKS is significant—you're responsible for node upgrades, security patches, and autoscaling. That's time you could spend building features. And EC2 gives you even less help. For a small team, that's a tax on your productivity.

Consider a concrete example: you run a simple microservice that processes messages from a queue. It's spiky—sometimes 10 requests per minute, sometimes 10,000. With EC2, you'd need to either over-provision (wasting money) or set up complex auto-scaling (wasting time). With Fargate, it scales automatically per task, so you only pay for what you use. That's the beauty of serverless: you don't pay for idle capacity.

But don't get me wrong—Fargate isn't always cheaper. For a steady, predictable workload running 24/7, raw EC2 with a Savings Plan will win every time. A Compute Savings Plan can save you up to 66% (AWS Documentation). So if you're running a baseline load, commit to a Savings Plan and run it on EC2 (or even EKS with EC2 nodes).

So, Who Wins? It Depends—But Here's My Recommendation

If you're a startup or a team with limited DevOps resources, start with Fargate. It gets you to production fast, abstracts away the pain of Kubernetes, and scales automatically. You can always migrate to EC2 later if you need to cut costs or gain control.

If you're a larger enterprise with a dedicated platform team, EKS is a solid choice—but negotiate hard on pricing. Remember that EKS itself is free for the control plane in some cases? No, that's AKS—Azure Kubernetes Service is free for cluster management (Azure Free Account). AWS charges $0.10/hour for EKS control plane (AWS EKS). That's a difference you should exploit if you're considering Azure.

And if you're a cost-obsessed engineer running a stable workload, raw EC2 with Savings Plans is your best friend. You'll save up to 66% (AWS Documentation), and you can even use Spot Instances for stateless, fault-tolerant workloads at up to 90% off (AWS EC2 Spot). But beware: Spot instances can be interrupted with a two-minute warning (AWS Documentation), so only use them for workloads that can handle it.

Here's my bottom line: Fargate is the best default for most teams. It's the sweet spot of cost and convenience. But if you're running a steady, predictable workload, EC2 with Savings Plans is the cheapest option. And if you're all-in on Kubernetes, EKS is fine—just know you're paying a premium for the control plane.

Sources

  • AWS EC2 Pricing - https://aws.amazon.com/ec2/pricing/
  • AWS EC2 Spot - https://aws.amazon.com/ec2/spot/
  • AWS EKS - https://aws.amazon.com/eks/
  • AWS Fargate - https://aws.amazon.com/fargate/
  • AWS EC2 Price List API - https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json
  • Synergy Q2 2026 - https://www.srgresearch.com/articles/q2-cloud-market-passes-143-billion-highest-growth-rate-in-eight-years

Share this article:

Comments (0)

No comments yet. Be the first to comment!