On this page

AWS Charges Extra for Storage Performance That Civo Ships by Default

AWS vs Civo benchmark comparing CPU, disk IOPS, and pricing. Discover why Civo delivers 8x faster performance and up to 85% lower cost than AWS.

I've been running workloads on AWS for years. Most of us have. You pick AWS because everyone picks AWS, and at some point you stop asking whether it's actually the best deal.

Last week I decided to run an actual cloud VM benchmark to find out.

I spun up a 2-vCPU instance on AWS and an equivalent one on Civo Cloud - same OS (Ubuntu 24.04), same core count, roughly the same RAM - and ran a full cloud VM benchmark covering CPU, memory, and disk I/O using my open-source vm-benchmark tool. Same tests, same duration, fully automated.

The results were... not what I expected. Especially the disk numbers.

Key findings from this AWS vs Civo benchmark:

  • Civo delivered 21.6% more CPU throughput with dedicated cores vs AWS hyperthreading
  • Civo's NVMe storage delivered 8x more IOPS than AWS EBS gp3 defaults
  • AWS wins on memory bandwidth by 12.9% - but it rarely matters in practice
  • Civo costs $21.73/mo vs AWS's $34.37/mo base - and $184.37/mo if you provision AWS to match Civo's disk performance

AWS vs Civo Benchmark Architecture

This diagram shows how the AWS vs Civo benchmark was executed using identical VM setups to compare CPU, memory, and disk performance.

Key Difference

  • AWS: Uses EBS (network storage) β†’ higher latency, limited IOPS
  • Civo: Uses NVMe (local storage) β†’ low latency, high IOPS

This architecture difference explains why Civo delivers significantly better disk performance in real-world workloads.

The Test Setup

Notice anything? Both say "2 vCPUs" on the tin. But AWS gives you 2 hyperthreads sharing one physical core. Civo gives you 2 actual dedicated cores. Same marketing label, very different silicon underneath.

You won't find this distinction on any pricing page. But it shows up the second you run a benchmark.

Benchmarking tools:

  • CPU: sysbench - prime number computation, single-threaded, 30 seconds
  • Memory: sysbench - 5 GiB transfer, 1 MiB blocks, 30 seconds
  • Disk: fio - direct I/O, 4 GiB file, iodepth=4, numjobs=4, 30 seconds

CPU Benchmark: Civo's Dedicated Cores vs AWS Hyperthreading

That's a 21.6% difference. Not a rounding error - a genuine gap you can feel in build times and response latencies.

It comes back to that hyperthread thing. AWS's two vCPUs share one physical core - they're fighting over the same execution units, cache lines, and pipeline. Under real load, a hyperthread gets maybe 60-70% of what a full core can do. Civo's vCPUs each get their own core. No sharing, no contention.

Think about what that means in practice: if you're running CI builds, serving web traffic, or doing any single-threaded work, you'd need to upgrade to a bigger AWS instance just to match what Civo hands you at the base tier.

Memory Bandwidth Benchmark: AWS Takes This Round

Fair's fair - AWS has a 12.9% edge on memory bandwidth. Probably comes down to differences in hypervisor memory config and NUMA topology.

But here's the thing: both machines are pushing 18-21 GB/s of sequential memory throughput. Unless you're running Redis at serious scale or doing in-memory analytics on massive datasets, neither machine will ever bottleneck on RAM speed. For web services, APIs, databases, containers - basically everything most of us actually run - this gap is invisible in production.

Disk I/O Benchmark: Civo NVMe vs AWS EBS gp3 Performance

Alright, here's where I started double-checking my test scripts because the numbers seemed wrong. They weren't.

The 4 KiB Block Test (IOPS Capacity)

This is the test that matters if you run Postgres, MySQL, MongoDB, or anything that does lots of small random reads and writes - which is basically every web app with a database.

IOPS:

Average Latency:

Civo's disk is 5-9x faster across the board. I genuinely thought I'd misconfigured something. I hadn't.

AWS EBS gp3 IOPS Limit: The Hidden Throttle

That 12.1 MiB/s number on AWS, identical across every single test? It's not a hardware problem. It's a billing wall.

AWS EBS gp3 volumes ship with a hard cap of 3,000 IOPS. Do the math:

3,000 IOPS x 4 KiB = 12,000 KiB/s = ~12 MiB/s

Your disk isn't slow. AWS is throttling it because 3,000 IOPS is all the base tier includes. Want more? Open your wallet:

  • Provisioned IOPS on gp3: up to 16,000 IOPS at $0.005/IOPS/month
  • io2 volumes: up to 256,000 IOPS at $0.065/IOPS/month

To match what Civo gives you by default (~26,000 random read IOPS), you'd need to provision about 23,000 extra IOPS on gp3. At $0.005 per IOPS per month, that's an extra $115/month just for disk performance - on top of the instance cost, on top of the volume cost. I'll break down the full pricing comparison below, and the numbers are eye-opening.

On Civo? 25,800 IOPS. Included. No provisioning knobs to turn, no extra line items, no "oh that's why my bill jumped" moments.

This is what frustrates me about AWS pricing. You pay for the instance. You pay for the storage volume. Then you pay again to unlock performance that the hardware is perfectly capable of delivering. It's like buying a car and discovering the engine is software-limited unless you pay a monthly subscription.

Sequential Bandwidth: Large Block I/O Comparison

I ran a supplemental test with 1 MiB blocks to measure raw sequential bandwidth - the kind that matters for backups, ETL, and ML data loading.

Even when we're kind to AWS and test large sequential blocks, Civo's local NVMe storage pushes over 1 GB/s in both directions. AWS EBS maxes out around 500 MiB/s reads and 271 MiB/s writes at this tier.

The difference comes down to something simple: where does the disk physically live? AWS EBS is network-attached storage - your reads and writes travel over the network to a remote storage server and back. Civo uses local NVMe drives sitting right inside the host machine. Physics wins this argument every time. A local disk will always beat a network hop, and the latency numbers prove it.

AWS vs Civo Performance Summary

Civo wins 4 out of 5 categories. And the one category AWS wins - memory bandwidth - is the one least likely to matter for typical workloads.

AWS vs Civo Pricing: The Real Cost Comparison

This is where the benchmark story gets really interesting. Let's put actual dollars next to those performance numbers.

Base Instance Pricing

Right out of the gate, the Civo instance is 28% cheaper. But the AWS number is misleading - it doesn't include storage.

What AWS Actually Costs With Storage

On AWS, disk is a separate line item. Let's add a 50 GB EBS gp3 volume to make it a fair comparison (Civo includes 50 GB):

So the real apples-to-apples starting price is $34.37/mo on AWS vs $21.73/mo on Civo. AWS is already 58% more expensive before we've touched a single performance knob.

But here's where it gets ugly.

The Cost to Match Civo's Disk Performance on AWS

Remember those benchmark numbers? Civo delivered ~26,000 random read IOPS and ~1 GB/s sequential bandwidth out of the box. AWS EBS gp3 gives you 3,000 IOPS and 125 MiB/s by default. To close that gap, you need to provision more - and AWS charges for every bit of it.

Read that again. To get comparable disk performance on AWS, you'd pay $184.37/month. On Civo, you get that performance - and better - for $21.73/month.

That's 8.5x more expensive on AWS for the same performance tier.

The Full Picture

And I haven't even mentioned data transfer. AWS charges for egress bandwidth - it starts at $0.09/GB after the first 100 GB. Civo doesn't charge for data transfer at all. If you're serving any meaningful amount of traffic, that's another line item adding up every month.

This is what I mean when I say AWS perfected the art of layered pricing. Each charge looks small in isolation. Instance cost - reasonable. Storage cost - just a few bucks. But then you need IOPS. Then you need throughput. Then there's egress. Then snapshots. Then KMS key usage. By the time you've built something that actually performs well, you're paying 5-8x what the "starting at" price suggested.

Civo's model is the opposite: one price, full performance, no surprises. The $21.73/mo on the pricing page is the $21.73/mo on your invoice.

If you're a startup, an indie hacker, a SaaS team - anyone who doesn't absolutely need RDS, Lambda, and the rest of the AWS universe - these numbers are hard to argue with. You're getting more compute, more IOPS, more bandwidth, and zero data transfer fees for a fraction of the cost.

When AWS Is Still the Right Choice

Look, I'm not here to tell you to migrate everything off AWS tomorrow. AWS is genuinely the right choice when:

  • You're deep in the managed services ecosystem - RDS, Lambda, S3, SQS wired together
  • Compliance requirements specifically call for AWS certifications
  • Your team has years of AWS muscle memory and tooling
  • You need EBS features like cross-region snapshots or io2 Block Express for extreme workloads

That ecosystem didn't get massive by accident. It's genuinely good.

But if you're on AWS because that's just what you've always used? These benchmarks are worth sitting with. A 2-vCPU Civo instance flat-out outperforms the equivalent AWS instance on CPU and disk - and costs less. At some point, inertia stops being a good enough reason.

πŸ“š Read More

πŸ‘‰ How to Avoid GitHub Token Rate Limiting Issues (Complete Guide)

πŸ‘‰ Managing Terraform State Locking in S3 Without DynamoDB

πŸ‘‰ GCP Billing Kill Switch Using Terraform (Cost Control Guide)

Conclusion: Is Civo Cloud Worth It Over AWS?

At the same instance tier, Civo gives you 21% more CPU throughput, 8x more disk IOPS, and 2-4x more sequential bandwidth - for $21.73/month vs $34.37/month on AWS. And if you want AWS to actually match Civo's disk performance, you're looking at $184/month. That's 8.5x the price for equivalent performance.

The performance gap alone is significant. But the pricing story is what really stuck with me. Civo charges you a price and gives you the full machine - dedicated cores, NVMe storage, free bandwidth. AWS charges you a price, then charges you again to remove the speed limits they put on the machine you already paid for.

I'm not switching everything off AWS - I still use plenty of managed services that don't have equivalents elsewhere. But for raw compute? For running databases, web apps, CI pipelines, anything that hits the disk regularly? It's getting really hard to justify paying 58% more (at minimum) for less performance.

Sometimes the default cloud provider isn't the best one. It's just the one nobody benchmarks.