DEV Community

Cover image for The true cost of Fargate vs 10,000 managed CI minutes
Solo
Solo

Posted on

The true cost of Fargate vs 10,000 managed CI minutes

I was thinking about running Playwright tests in AWS ECS Fargate. Running Playwright on ECS Fargate is fast, cheap. For 10,000 minutes at 1 vCPU/2 GB in EU-London, Fargate is about $9.46 (or $7.57 on Graviton, $2.84 on Spot) versus $40–$100 for managed CI minutes on well known CI platforms like GitHub Actions, BitBucket, GitLab, AWS CodeBuild.

But minutes aren’t the whole bill—watch egress/NAT, caches & storage, and CloudWatch costs, handle Spot preemptions with retries and fallback, and rebuild the "just works" UX of managed CI (ephemeral runners, OIDC, autoscaling, sane defaults).

A quick, concrete baseline

Assumptions

Linux builds, EU (London) pricing, 1 vCPU / 2 GB RAM, 10,000 minutes (~166.7 hours).

Service What you pay for Ballpark cost for 10,000 min
ECS Fargate (1 vCPU, 2 GB RAM) Raw compute only (you self-host the runner) $9.46 in EU (London), or $8.23 in US-East
ECS Fargate (Graviton/ARM, 1 vCPU, 2 GB) Raw compute only (you self-host the runner) $7.57 in EU (London), or $6.52 in US-East
ECS Fargate Spot (Linux x86, 1 vCPU, 2 GB) Interruptible compute (you self-host the runner) $2.84 in EU (London), or $2.47 in US-East
AWS CodeBuild (general1.small) Fully managed runner minutes $50.00 ($0.005/min; first 100 min free)
GitHub Actions (Linux std) GitHub-hosted runner minutes $80.00 ($0.008/min)
GitLab SaaS (shared runners) Shared runner minutes $100.00 ($10 per 1,000 minutes)
Bitbucket Pipelines (extra minutes) Additional pipeline minutes $100.00 ($10 per 1,000 minutes)
CircleCI (Linux) Credits → minutes (Performance plan) $60.00 on Linux VM Medium (10 credits/min; credits $15 per 25,000 ⇒ ~$0.006/min). $30.00 on Docker Small (5 credits/min)
Azure Pipelines (Microsoft-hosted) Parallel job, not per-minute $40.00 for unlimited minutes after 1,800 free — buy 1 extra hosted parallel job ($40/mo)

Linux builds, EU (London) pricing, 1 vCPU / 2 GB RAM, 10,000 minutes (~166.7 hours).

But minutes aren’t the whole story The true cost of 10,000 build minutes

Data transfer & NAT

pulling repos and packages, docker layers, cache uploads. Use VPC endpoints for S3/ECR/CloudWatch and consider a package proxy (npm/pip/maven) to slash egress. You can run it in public subnet.

Caches & storage

BuildKit cache to ECR, language caches to S3. Keep short retention—caches grow fast.

Logs & metrics

CloudWatch ingestion + retention can quietly rival compute; cap retention to 7–14 days and sample.

Reliability

Fargate Spot saves the most but is preemptible—add automatic retries, idempotent pipelines, and a fallback to on-demand if the queue ages.

Product velocity

Managed CI buys you images, scaling, and fewer sharp edges. Your Fargate automation must recreate that "just works" feel (ephemeral runners, OIDC, autoscale, sane defaults). If it jut works to run tests.

Is $40 saved at 10,000 minutes justifiable—or just marginal?
At 10k, it’s mostly marginal: ≈ $40 vs CodeBuild (≈ $70 vs GitHub).
At 100k, it’s material: ≈ $405 (CodeBuild) / $705 (GitHub).
At 1M, it’s compelling: ≈ $4,054 / $7,054.

In my view, If you're building a Netlify or Vercel-style platform and can automate runner ops, ephemeral Fargate is dramatically cheaper per minute than most managed CI. The savings are real—but the non-minute costs and product trade-offs matter just as much.

  • If your CI bill dropped 60–90% with Fargate Spot, what’s the one blocker left?

  • At 10k minutes/month, is $40 saved marginal—or the start of a bigger shift? Why?

  • Would you trade occasional Spot retries for 5–10× cheaper minutes?

  • What’s your break-even minute count to justify self-hosted runners?

What do you think Choosing Fargate Spot over managed CI can justify any our your use case of CI? Let me know in the comments.

Top comments (0)