AWS cost · Fargate
Is Fargate expensive? Where the cost really goes
Fargate gets called expensive, and the honest answer is: it costs more than raw EC2 for the same compute, because you are paying to never touch a server. That premium is usually worth it. The part that actually inflates Fargate bills is not the rate - it is the size of the tasks. You pay for the vCPU and memory a task requests, not what it uses, so a task set to 1 vCPU and 2 GB that quietly runs on a fraction of that is paying full price for capacity it never needs. Multiply by every replica and the bill looks like a pricing problem when it is really a sizing one.
Fargate bills $0.04048 per vCPU-hour and $0.004445 per GB-hour (us-east-1) for the CPU and memory a task requests - not what it uses. The real leak is over-provisioned task size. Right-size tasks to actual usage, run interruptible ones on Fargate Spot (~68% off), and switch to Graviton for 20% off the rate.
What does Fargate actually cost?
The rate is simple - vCPU plus memory, per hour (us-east-1) - and there are two ways to cut the rate itself:
| What | Rate | Unit |
|---|---|---|
| vCPU | $0.04048 | per vCPU-hour |
| Memory | $0.004445 | per GB-hour |
| Fargate Spot | ~$0.01291 | per vCPU-hour (~68% off) |
| Graviton (arm64) | 20% lower | on both vCPU and memory |
Why is the task size the real cost?
Because Fargate bills the requested size for the whole time a task runs, whether the container uses it or not. A worker that needs 0.25 vCPU but is defined with 1 vCPU pays four times over, every hour, on every replica. There is no under-utilization discount and nothing flags it - the task is healthy, it just asked for too much. That is the same shape as an oversized EC2 instance: capacity requested to be safe, then billed forever.
How do I cut a Fargate bill?
Right-size first, then cut the rate. Compare each task's requested CPU and memory against what it really uses in CloudWatch Container Insights, and pull the oversized ones down. Move fault-tolerant tasks to Fargate Spot for about 68% off, and switch tasks to Graviton for 20% off. Start by seeing what your services are running - this lists the desired and running task counts so you know where the replicas (and the cost) are concentrated:
# services in a cluster with their task counts
aws ecs list-services --cluster my-cluster --output text
aws ecs describe-services \
--cluster my-cluster --services my-service \
--query 'services[].{Name:serviceName,Desired:desiredCount,Running:runningCount}' \
--output tableThe rate cuts stack: Graviton takes 20% off, and the spot trade-off is the same one Fargate Spot asks of you.
Want to know how much of your Fargate bill is task size nobody right-sized? Connect your account read-only and see what it is wasting, in real dollars.
The role can only read - Get, Describe, List, nothing else. Read the exact permissions before you deploy it, and delete the stack whenever you want.
Frequently asked questions
Is AWS Fargate expensive?+
Fargate charges a premium over raw EC2 for the same compute - you pay for not managing servers. In us-east-1 it is $0.04048 per vCPU-hour and $0.004445 per GB-hour. For most teams the leak is not the premium itself; it is over-provisioned task sizes asking for far more vCPU and memory than the container uses.
How is Fargate priced?+
By the vCPU and memory your task requests, billed per second with a one-minute minimum. In us-east-1 that is $0.04048 per vCPU-hour and $0.004445 per GB-hour, plus a small charge for ephemeral storage above the included 20 GB. You pay for what you request, not what you use - which is why the requested size matters so much.
Why is my Fargate bill higher than I expected?+
Almost always over-provisioned tasks. A task set to 1 vCPU and 2 GB that only needs 0.25 vCPU and 0.5 GB is paying four times what it should, every hour it runs, multiplied by every replica. Because you pay for the requested size and not actual usage, the waste is invisible unless you look at task definitions against real utilization.
How do I reduce Fargate costs?+
Right-size task CPU and memory to real usage, run interruptible tasks on Fargate Spot for about 68% off, and switch tasks to Graviton (arm64) for 20% off the rate. For steady, always-on tasks, a Compute Savings Plan discounts Fargate too. Right-sizing is the biggest lever because it compounds across every replica.
Is Fargate cheaper than EC2?+
Per unit of compute, no - EC2 is cheaper if you keep the instances well utilized. Fargate wins when utilization is low or bursty, because you pay only while tasks run and carry no idle instance capacity or management overhead. For a small or spiky workload Fargate often costs less in practice; for a large steady one, well-packed EC2 is cheaper.
What is Fargate Spot?+
Fargate Spot runs tasks on spare capacity at roughly 68% off the on-demand rate, with the same 2-minute interruption trade as EC2 spot. It suits fault-tolerant, stateless tasks - workers, batch, stateless services - and is not for anything that cannot be safely interrupted.
Related cost breakdowns
Why EKS is expensive: the $73/month control plane
Every EKS cluster bills $0.10/hour - about $73/month - for the control plane before a single node runs, and $0.60/hour once it falls out of standard support. Idle and forgotten clusters are pure waste.
Why your stopped EC2 instance is still being charged
A stopped EC2 instance keeps billing for its attached EBS disk and any Elastic IP. One 8 GB volume quietly cost me ~$70 over six years. Here is what still charges when an instance is off.
Spot instances: what is safe to run on them, and what is not
Spot instances are up to 90% cheaper than on-demand - I moved almost everything to spot. The catch is a 2-minute interruption notice. Here is what is safe to run on spot and what is not.
Graviton (ARM) is ~20% cheaper than x86 for the same work
AWS Graviton instances cost about 20% less than comparable x86 at equal or better performance, and arm64 Lambda is a one-dropdown switch. Here is how to find migration candidates.