AWS t3.micro vs t3.small: Price, Performance & When to Upgrade
The AWS t3.micro and t3.small are the two most popular entry-level burstable EC2 instances. They share the same CPU architecture and vCPU count, but differ in RAM and burst capacity — and the price difference is exactly 2×. Choosing the wrong one wastes money; choosing the wrong one in the other direction causes production incidents.
This guide breaks down every difference with real numbers so you can make the right call.
Specs at a Glance
| Spec | t3.micro | t3.small |
|---|---|---|
| vCPUs | 2 | 2 |
| Memory | 1 GiB | 2 GiB |
| Architecture | x86_64 | x86_64 |
| Network | Up to 5 Gbps | Up to 5 Gbps |
| CPU Baseline | 10% per vCPU | 20% per vCPU |
| CPU Credits/hr | 12 | 24 |
| Max Credit Balance | 288 | 576 |
| EBS Bandwidth | Up to 2,085 Mbps | Up to 2,085 Mbps |
| On-Demand (us-east-1) | $0.0104/hr | $0.0208/hr |
The single biggest difference: t3.small has 2× the RAM and 2× the CPU burst capacity. Everything else is identical.
Pricing Comparison
Both instances are available On-Demand and as Spot. Here's the full cost breakdown at us-east-1 rates:
t3.micro — us-east-1
t3.small — us-east-1
The difference between t3.micro and t3.small is exactly $7.49/month On-Demand in us-east-1. If avoiding one production memory incident per year saves you more than $90, the upgrade pays for itself.
Pricing varies significantly by region. In eu-north-1 (Stockholm), both instances are slightly cheaper than us-east-1. Use the t3.micro page and t3.small page on CloudBench to see live per-region pricing.
CPU Burst Behavior: The Critical Difference
Both t3.micro and t3.small are burstable instances — they earn CPU credits when idle and spend them when under load. But the credit economy is very different between the two.
| Credit Metric | t3.micro | t3.small |
|---|---|---|
| CPU baseline (per vCPU) | 10% | 20% |
| Credits earned per hour | 12 | 24 |
| Max credit balance | 288 (24 hrs) | 576 (24 hrs) |
| Time to fill from empty | 24 hours | 24 hours |
In practice: a t3.micro starts running into credit exhaustion under sustained CPU load above 10%. A t3.small handles sustained loads up to 20% without touching its credit balance.
Both instances support T3 Unlimited mode, which lets them burst above their CPU credit balance and charge overage at $0.05 per vCPU-hour. This is enabled by default on t3 instances launched in a VPC. If your t3.micro is consistently bursting, check your CPUSurplusCreditsCharged metric in CloudWatch — you may already be paying extra without realizing it.
Benchmark Scores
Since both instances use the same underlying Intel Xeon processor and vCPU configuration, single-core Sysbench scores are essentially identical. The multi-core score is also the same (2 vCPUs on both).
| Benchmark | t3.micro | t3.small |
|---|---|---|
| Sysbench Single-Core | ~1,850 | ~1,850 |
| Sysbench Multi-Core | ~3,700 | ~3,700 |
| Value Score (score/$) | Higher | Lower |
Raw CPU performance is identical. The t3.micro wins on price-to-performance ratio — but only if you never hit the memory ceiling or credit limit.
See real benchmark data: t3.micro benchmarks | t3.small benchmarks
Use Cases
t3.micro is the right call for:
- Low-traffic websites and APIs — WordPress sites, static-backed APIs, or small admin panels with <50 concurrent users
- Development and staging environments — Perfect for personal dev servers, staging instances, or CI runners that sit idle most of the time
- Microservices and sidecars — Individual services in a larger architecture that handle a narrow, low-load function
- Cron jobs and schedulers — Burst when running, idle the rest of the time — exactly what t3.micro excels at
- Database replicas (read-only, low query volume) — MySQL or PostgreSQL read replicas on light traffic
t3.small is the right call for:
- Node.js or JVM applications — The JVM alone eats 300–500 MB at startup. With 1 GiB total on t3.micro, you're left with almost nothing for your actual app
- Small databases (primary instances) — MySQL, PostgreSQL, or Redis primaries need headroom for OS, connections, and buffer pools
- Docker hosts — Each container has overhead. One container can fit on t3.micro; two or more almost always need t3.small
- Applications with sustained 10–20% CPU baseline — If your app consistently uses 10–15% CPU, t3.micro burns credits constantly. t3.small handles it without touching the credit balance
- Production workloads where memory OOM = downtime — Don't risk it for $7.49/month
When to Upgrade: The Decision Checklist
- Your application's memory usage is regularly above 700 MB (leaving a 300 MB buffer from the 1 GiB limit)
- CloudWatch shows CPUSurplusCreditsCharged > 0 — you're already paying overage on Unlimited mode
- Your CPUCreditBalance is consistently near zero
- You've had a memory OOM kill even once
- You run a JVM-based app (Spring Boot, Kafka, Elasticsearch) or any runtime with a large baseline heap
- The instance is a production primary — the $7.49/month insurance is worth it
- Memory usage stays below 600 MB (checked in CloudWatch)
- CPU burst credits are never exhausted (CPUCreditBalance stays positive)
- This is a dev, staging, or non-critical environment
- Workload is bursty rather than sustained
Regional Pricing: Where to Run Each
AWS pricing varies by region. The cheapest regions for t3 instances are generally us-east-1 (N. Virginia) and eu-north-1 (Stockholm). eu-north-1 in particular often has the lowest Spot prices due to lower demand.
| Region | t3.micro OD | t3.micro Spot | t3.small OD | t3.small Spot |
|---|---|---|---|---|
| us-east-1 | $0.0104/hr | ~$0.0031/hr | $0.0208/hr | ~$0.0063/hr |
| eu-west-1 | $0.0116/hr | ~$0.0035/hr | $0.0232/hr | ~$0.0070/hr |
| eu-north-1 | $0.0114/hr | ~$0.0022/hr | $0.0228/hr | ~$0.0044/hr |
| ap-southeast-1 | $0.0132/hr | ~$0.0040/hr | $0.0264/hr | ~$0.0079/hr |
Spot prices are approximate and fluctuate. Check CloudBench for live rates.
Verdict
Start with t3.micro. It's the right default for anything non-critical. At $7.49/month, the cost of being wrong is low. Monitor your CloudWatch metrics — specifically MemoryUtilization and CPUCreditBalance — for 1–2 weeks. If either shows sustained pressure, upgrade to t3.small.
Don't run JVM apps on t3.micro. The memory math doesn't work. Start with t3.small for any Java, Kotlin, or Scala service.
For cost-sensitive workloads where interruptions are acceptable, Spot pricing on t3.micro (~$0.0031/hr) is hard to beat — roughly $2.23/month for a complete dev environment. See our Spot vs On-Demand guide for when that makes sense.
Compare Live Pricing
CloudBench tracks On-Demand and Spot prices for t3.micro and t3.small across all AWS regions, updated in real time.