ECS has the simplest pricing model in the container world: no control plane fee. Unlike EKS ($73/month per cluster), ECS charges nothing for the orchestration layer. You pay only for the compute that runs your containers — either EC2 instances you manage or Fargate compute that AWS manages.
This makes ECS significantly cheaper than EKS for teams that don't need Kubernetes. The cost difference compounds: no control plane fee means you can run separate clusters for dev, staging, and production without paying $219/month just for orchestration overhead.
TL;DR: ECS control plane is free. You pay for compute only: EC2 instances (you manage) or Fargate ($0.04048/vCPU-hour + $0.004445/GB-hour). EC2 launch type is 40-60% cheaper than Fargate due to bin-packing efficiency and Savings Plans. Fargate is simpler and better for variable workloads. Optimize with: Graviton (20% off), Spot capacity providers (60-90% off for stateless tasks), and right-sized task definitions.
ECS Pricing Components
Control Plane: Free
| Feature | ECS | EKS (for comparison) |
|---|---|---|
| Control plane cost | $0 | $73/month per cluster |
| Multiple clusters | Free | $73 each |
| API, scheduling, service discovery | Included | Included |
EC2 Launch Type Compute
You provision EC2 instances and ECS places tasks on them. You pay standard EC2 pricing:
| Instance | vCPU | Memory | On-Demand/month |
|---|---|---|---|
| m7g.medium (Graviton) | 1 | 4 GiB | $30 |
| m7g.large (Graviton) | 2 | 8 GiB | $59 |
| m7g.xlarge (Graviton) | 4 | 16 GiB | $119 |
| c7g.large (Graviton) | 2 | 4 GiB | $50 |
Fargate Compute
Pay per task based on vCPU and memory allocated (see Fargate pricing for current rates):
| Resource | Price (Linux/ARM) |
|---|---|
| vCPU | $0.03238/hour (ARM) / $0.04048/hour (x86) |
| Memory | $0.003556/GB-hour (ARM) / $0.004445/GB-hour (x86) |
| Ephemeral storage | $0.000111/GB-hour (over 20GB) |
Fargate ARM (Graviton) saves 20% over x86 Fargate with the same performance. Always use ARM unless your container requires x86.
A task with 1 vCPU and 2GB memory costs approximately:
- Fargate x86: $32.68/month
- Fargate ARM: $26.15/month
- EC2 equivalent (share of m7g.large): ~$15-20/month (depending on bin-packing)
EC2 vs Fargate: Detailed Cost Comparison
Small Production Service (4 tasks, 1 vCPU each)
| Component | EC2 Launch Type | Fargate |
|---|---|---|
| Compute | 2x m7g.large = $119/mo | 4 tasks x $26/mo = $104/mo |
| Bin-packing overhead | ~20% unused capacity | None (per-task billing) |
| Savings Plans (30% off) | $83/mo | $73/mo |
| Management effort | Patching, scaling, monitoring | Zero |
| Best monthly cost | $83 | $73 |
For small deployments, Fargate can be competitive — especially with Graviton.
Medium Production Service (20 tasks, 1 vCPU each)
| Component | EC2 Launch Type | Fargate |
|---|---|---|
| Compute | 6x m7g.xlarge = $714/mo | 20 tasks x $26/mo = $521/mo |
| Savings Plans (30% off) | $500/mo | $365/mo |
| Spot (mix 50/50) | $357/mo | $287/mo (Fargate Spot) |
| Best monthly cost | $357 | $287 |
At medium scale, the gap narrows further with Fargate Spot.
Large Production Service (100 tasks, 2 vCPU each)
| Component | EC2 Launch Type | Fargate |
|---|---|---|
| Compute (On-Demand) | ~$2,380/mo | ~$5,215/mo |
| With Savings Plans | ~$1,666/mo | ~$3,650/mo |
| With Spot (stateless) | ~$952/mo | ~$1,564/mo |
| Best monthly cost | $952 | $1,564 |
At scale, EC2 wins decisively due to bin-packing efficiency and deeper Savings Plans discounts.
Cost Optimization Strategies
1. Use Capacity Providers with Spot
ECS Capacity Providers manage the mix of On-Demand and Spot instances automatically (see the ECS developer guide for setup):
- Set a base of On-Demand instances for stability
- Configure Spot for additional capacity
- ECS distributes tasks across both automatically
Savings: 40-70% on compute costs with a 70/30 Spot/On-Demand mix.
2. Graviton Everywhere
Switch all ECS compute to Graviton (ARM64):
- EC2: m7g/c7g instances (20% cheaper than Intel equivalents)
- Fargate: ARM launch type (20% cheaper than x86)
Most container images support multi-arch builds. Test in dev first, then roll out to production.
3. Right-Size Task Definitions
Task definitions that request more CPU/memory than needed waste capacity:
- Review CloudWatch metrics for actual CPU/memory utilization per task
- Reduce task size to match P95 usage
- Use task-level auto-scaling to add more tasks instead of oversizing individual ones
4. Auto-Scale Services
Don't run more tasks than needed. Configure service auto-scaling:
- Target tracking: Scale based on CPU utilization (target 60-70%) or ALB request count
- Step scaling: Add/remove tasks based on CloudWatch alarm thresholds
- Scheduled scaling: Scale up before business hours, down after
5. Savings Plans for Baseline
Apply Compute Savings Plans to your baseline ECS compute:
- Covers both EC2 instances and Fargate tasks
- 1-year No Upfront saves approximately 30-35%
- Commit to 50-60% of your consistent On-Demand baseline
Related Guides
- AWS ECS vs EKS vs Fargate
- AWS Fargate Pricing Guide
- AWS EKS Pricing Guide
- AWS EC2 Pricing: Every Model and Discount
Frequently Asked Questions
How much does ECS cost per month?
ECS itself is free — there's no control plane charge. You pay only for compute: EC2 instances or Fargate tasks. A small production service with 4 Fargate ARM tasks (1 vCPU, 2GB each) costs approximately $105/month. Add an ALB ($22/month) and you're at roughly $127/month total.
Is ECS cheaper than EKS?
Yes, by at least $73/month per cluster (the EKS control plane fee). If running multiple clusters, the savings multiply. The underlying compute (EC2 or Fargate) costs the same on both platforms. Choose ECS for simplicity and cost; choose EKS only if you need the Kubernetes ecosystem.
Should I use EC2 or Fargate for ECS?
Use Fargate for: small/medium workloads, variable traffic, dev/test environments, and when you want zero infrastructure management. Use EC2 for: large-scale production with steady demand, workloads requiring Spot instances, and when bin-packing efficiency matters at scale. Many teams use both — Fargate for dev/staging, EC2 for production.
Does Fargate support Spot?
Yes. Fargate Spot provides up to 70% savings over regular Fargate pricing. It works like EC2 Spot — tasks can be interrupted with 30 seconds notice. Use it for fault-tolerant workloads: batch processing, queue workers, and any service behind a load balancer with multiple tasks.
Optimize Your ECS Costs
ECS's free control plane is already a cost advantage over EKS. Maximize it with:
- Graviton compute — 20% savings on both EC2 and Fargate
- Spot capacity — 60-70% off for stateless and fault-tolerant tasks
- Right-sized task definitions — Match CPU/memory to actual usage
- Auto-scaling — Scale to demand instead of provisioning for peak
- Savings Plans — Cover baseline compute at 30-35% off
Lower Your ECS Costs with Wring
Wring helps you access AWS credits and volume discounts to lower your ECS costs. Through group buying power, Wring negotiates better rates so you pay less per compute hour.
