ECS on EC2 or Fargate: finding the break-even

Published November 3, 2026

ECS on EC2 vs AWS Fargate container compute break-even economics

Fargate is the expensive way to run a workload that never stops, and the cheap way to run one that mostly waits. The same 2 vCPU and 4 GB costs $72.08 a month as an always-on task in us-east-1, against $62.05 for the c6i.large instance it replaces.

The platform choice moves that number less than the utilisation does. Below about 86% of the month, the task is cheaper. Above it, you are paying Fargate for idle hours.

Every rate here comes from the same AWS price list behind the Fargate and ECS pages, and the cross-platform comparison prices EC2, ECS Managed Instances, EKS, Fargate and Lambda side by side.

Two ways to buy the same 2 vCPU

Both meters are per hour. They disagree about what counts as an hour.

An instance bills from the moment it launches until you terminate it, whether the container inside it is working or not. A Fargate task bills for the vCPU and memory it reserves while the task is running, so a task that starts, serves, and exits costs only its own lifetime.

Option (us‑east‑1, on demand)MeterMonthly, always on
c6i.large node under ECS$0.085 per instance-hour$62.05
c6g.large node under ECS (Graviton)$0.068 per instance-hour$49.64
Fargate, x86$0.04048 per vCPU-hour + $0.004445 per GB-hour$72.08
Fargate, Graviton$0.03238 per vCPU-hour + $0.00356 per GB-hour$57.67

The node is a whole machine you have to patch, scale and drain. The task is a slice of someone else’s machine, billed at a premium for the privilege. That premium is 16% at this size, which is smaller than most people assume going in.

The whole calculation is one division

The arithmetic, so you can redo it with your own numbers:

The task wins whenever the workload runs less than 86% of the month. The node has to be busy almost every hour it exists before it pays for itself, and a workload that runs eight hours a day is busy 33% of the time, not 100% of the hours you care about.

Share of the month the workload runsNode under ECSFargate, x86Fargate, Graviton
100% (always on)$62.05$72.08$57.67
75%$62.05$54.06$43.25
50%$62.05$36.04$28.84
25%$62.05$18.02$14.42

The instance row never moves, because an instance you keep for the month costs the month. The task rows scale with the work, which is the property worth paying a premium for.

Graviton moves both lines and leaves the crossing alone

Switching both sides to Graviton is the cheapest single move in this comparison. A c6g.large node is $49.64 a month, the equivalent Graviton task is $57.67, and their ratio is 0.86 again. The architecture does not change the decision rule, and it lowers both sides of it.

That makes arm64 builds the highest-value work in the list, ahead of the Fargate-versus-EC2 argument itself. On a hundred always-on workloads the Graviton saving dwarfs the platform premium. If your images are x86-only, the rebuild is the prerequisite: native dependencies need compiling again, and vendored binaries need a published arm64 artifact.

A savings plan shifts the crossing in the node’s favour

Fargate takes Compute Savings Plans, and so do the instances underneath ECS. The EC2 discount is deeper than the Fargate one, so committing moves the crossover down:

Under a 3‑year No Upfront Compute planNodeFargate taskCrossover
x86$29.96$39.6476%
Graviton$23.94$31.1477%

Committing does not rescue the always-on task. At 76% the node still wins on a constantly busy workload, by a narrower margin than the on-demand table suggests. Price both sides under the same commitment, or the comparison is meaningless.

What the task price does not include

The rate card covers vCPU and memory. Four things sit outside it and land on the same bill:

The platform fee is a separate argument

ECS charges nothing on top of the instances you run, so it adds no line to any table here. EKS charges $73.00 a month per cluster. ECS Managed Instances charges a per-node fee of $0.0102 an hour for a c6i.large, about 12% of that node’s compute.

Those fees change what a node costs, not whether a task or a node is the right shape. The ECS vs EKS comparison prices them, including the cluster size where the per-node fee overtakes the flat one.

Caveats

The checklist

  1. Measure the busy hours. Take a week of CPUUtilization (or memory, if the workload is memory-bound) from Container Insights for the service. Anything above 5–10% is real work.
  2. Turn that into a share of the month. Eight hours of genuine load a day is 33%, not 100%. Spiky traffic that averages 20% is still 20%; a burst hour does not make the month busy.
  3. Compare against 86% on demand and 76% under a plan. Below the line, Fargate is cheaper. Above it, a node is.
  4. Check the shape fits. Fargate sells particular vCPU and memory pairs, and a 2 vCPU node also carries the agent and any daemon.
  5. Try Graviton on whichever option you pick. It wins on both sides of the line.
  6. Price your own region. Every number above is us-east-1; the comparison hub and the region selectors on the Fargate and ECS pages use the same dataset.