Best VPS Under $20 in 2026 — I Ran the Same Workload on AWS and 5 VPS Providers

AWS t3.medium: 2 vCPU, 4GB RAM, $30.37/month. Contabo VPS M: 6 vCPU, 16GB RAM, $11.99/month. I deployed an identical Docker stack on both and benchmarked throughput, latency, and total cost over 30 days. The $12 VPS did not just compete — it won on four of six metrics.

Quick Answer: Best VPS Under $20

Contabo VPS M at $11.99/mo — 6 vCPU, 16GB RAM, 400GB SSD. It matched AWS t3.medium on throughput and beat it on memory-bound workloads by a wide margin. The per-core speed is 25% slower, but when you have 3x the cores and 4x the RAM, aggregate performance is not close. For the best balance of speed and price, Hetzner CX32 at $9.59/mo delivers the fastest per-core CPU in this tier — ideal for single-threaded workloads like PHP, WordPress, and database queries.

The AWS Comparison Nobody Makes

Here is a number that should bother you: AWS t3.medium costs $30.37/month for 2 vCPU and 4GB RAM. That is the on-demand price for a burstable instance in us-east-1 with 30GB gp3 storage and modest bandwidth. It is what thousands of startups and small teams pay because AWS is the default and nobody questions defaults.

Now look at what $10-20 buys from a VPS provider:

Provider Price vCPU RAM Storage Bandwidth
AWS t3.medium $30.37 2 4 GB 30 GB gp3 100 GB free, then $0.09/GB
Contabo VPS M $11.99 6 16 GB 400 GB SSD 32 TB included
Hetzner CX32 $9.59 4 8 GB 80 GB SSD 20 TB included
Kamatera (custom) ~$18 4 8 GB 60 GB SSD 5 TB included
Vultr $12.00 2 4 GB 80 GB NVMe 4 TB included

Contabo gives you 3x the cores, 4x the RAM, and 13x the storage for 60% less money. Even Hetzner — at under ten dollars — matches or beats t3.medium on every spec except the AWS ecosystem. The bandwidth comparison is where it gets absurd: serving 1TB from AWS costs $92 in data transfer fees. On Contabo, that same 1TB is a rounding error against a 32TB monthly allowance.

But raw specs are only half the story. I wanted to know if those specs translate to real-world performance, so I ran the same workload on all of them.

What $20/Month Actually Enables in 2026

The $10-20 tier is where VPS hosting stops being a toy and starts being infrastructure. This is not a shared hosting replacement — this is a production server that runs the same workloads companies pay $50-100/month for on AWS or GCP.

Here is what I have personally run in this price range over the past year:

Production Web Applications

  • WooCommerce with 80,000 monthly visitors
  • Three WordPress sites behind Nginx reverse proxy
  • Node.js API handling 2,500 req/sec
  • Django app with Celery workers and Redis queue

Infrastructure & DevOps

  • 8-container Docker Compose stack (web + DB + cache + monitoring)
  • PostgreSQL with 6GB buffer pool serving 400 queries/sec
  • Self-hosted GitLab Runner processing 600 builds/month
  • Grafana + Prometheus + Loki monitoring stack

The difference between the under-$10 tier and this one is not incremental — it is structural. At $5, you are managing memory like a scarce resource, killing processes to free up headroom. At $15, you have enough RAM to let PostgreSQL cache your entire dataset, enough CPU to run background jobs without affecting response times, and enough storage for proper logging and backups. You stop optimizing around limitations and start building around capabilities.

The spec disparity at this tier is wild, though. Contabo gives you 16GB RAM for $12. DigitalOcean gives you 2GB for the same price. That is an 8x difference for the same money. Understanding why — and whether it matters for your workload — is the entire point of this guide. Use our VPS calculator to figure out what resources your application actually needs.

#1. Contabo VPS M — The AWS Killer on Paper (and in Practice)

The verdict: 6 vCPU, 16GB RAM, 400GB SSD, 32TB bandwidth for $11.99/month. Matched AWS t3.medium on aggregate throughput. Destroyed it on memory-bound workloads. Lost on per-core speed and operational tooling.

I deployed a Docker Compose stack on Contabo VPS M and AWS t3.medium: Nginx as reverse proxy, a Node.js API with 4 worker processes, PostgreSQL 16 with a production-sized dataset (2.3 million rows, 1.8GB on disk), and Redis for session caching. Same Docker images, same configuration, same load test hitting both simultaneously from an external server in Virginia.

The results genuinely surprised me.

Metric Contabo VPS M ($11.99) AWS t3.medium ($30.37)
Requests/sec (API endpoint)2,8403,120
p95 latency42ms31ms
PostgreSQL queries/sec4,2002,800
Peak RAM usage (full stack)11.2 GB / 16 GB3.6 GB / 4 GB
DB buffer pool hit ratio99.7%94.2%
Monthly cost (30 days)$11.99$30.37 + bandwidth

AWS won on per-request latency because each core is faster. But Contabo won on database throughput because 16GB of RAM let me set shared_buffers = 4GB and effective_cache_size = 12GB, which meant 99.7% of queries hit the buffer cache. On AWS with 4GB total, PostgreSQL was constantly reading from disk. The 5.4% buffer cache miss rate translated to 33% fewer queries per second.

This is the core Contabo insight: if your workload is memory-bound — databases, caching layers, game servers, anything that benefits from keeping data in RAM — Contabo's 16GB at $12 is not just competitive with AWS. It is objectively better. The individual cores are slower (our single-core benchmark: 3,100 versus 4,200 on Hetzner), and provisioning takes hours rather than seconds. But for persistent workloads that need RAM above all else, nothing in this price range comes close.

The honest trade-offs: no API for programmatic management, support averages 2-4 hours for a response, the control panel looks like it was built in 2015, and there is a setup fee on monthly billing (waived on annual plans). Read our full Contabo review for the complete picture.

What I Would Run on This Server

  • PostgreSQL or MySQL with a 4-8GB buffer pool — this is where 16GB RAM pays for itself
  • Docker Compose stacks with 10-15 containers — enough headroom for everything
  • Self-hosted services: Nextcloud + Gitea + Grafana + Prometheus simultaneously
  • Minecraft or Valheim server with 20+ players and mods
  • Multiple WordPress sites with WooCommerce and Redis object caching

What I Would Not Run on This Server

  • Latency-sensitive APIs where p99 matters more than throughput
  • Compilation-heavy CI/CD pipelines — slower cores mean slower builds
  • Anything requiring instant scaling or infrastructure-as-code automation

#2. Hetzner CX32 — Fastest Cores Under $20

If Contabo is the answer to "how much RAM can I get for twelve dollars," Hetzner is the answer to a completely different question: "how fast can each core be for under ten dollars?" The CX32 delivers 4 vCPU, 8GB RAM, 80GB SSD, and 20TB bandwidth at $9.59/month. Each vCPU scored 4,200 in our single-core benchmark — 35% faster than Contabo, and within striking distance of AWS t3.medium's burstable performance.

I ran the same Docker stack on Hetzner. The API endpoint hit 3,050 requests/second — between Contabo and AWS. But p95 latency came in at 28ms, beating AWS's 31ms. For single-threaded applications — PHP processing a WordPress page, a Python script crunching data, a PostgreSQL query scanning an index — Hetzner's per-core speed produces measurably faster response times than anything else at this price point.

The math that makes Hetzner hard to beat: AWS t3.medium gives you 2 vCPU at $30.37/month. Hetzner CX32 gives you 4 vCPU at $9.59/month. Twice the cores for a third of the price, and each core benchmarks within 10% of AWS. The only thing AWS offers that Hetzner does not is the ecosystem: managed databases, auto-scaling, 25+ regions, IAM roles. If you do not need those things, paying $30 for what $10 can buy is not a premium — it is a mistake.

The limitation is geographic. Hetzner has two US datacenters: Ashburn and Hillsboro. If your users are concentrated on one coast or you put Cloudflare in front of everything, this does not matter. If you need Dallas, Miami, or Chicago presence, Vultr's 10 US locations are hard to ignore. Hetzner's support is email-only, which is fine when things work and frustrating when they don't. No managed database add-ons, no Kubernetes service, no Windows option.

Technically the CX32 falls in the under-$10 tier. I included it here because it competes directly with $12-18 plans from other providers — and it wins that competition on both price and per-core performance simultaneously.

Key Specs

Price
$9.59/mo
CPU
4 vCPU (4,200 score)
RAM
8 GB
Storage
80 GB SSD

Pros

  • Highest single-core CPU score in this tier — 4,200 versus 3,100 (Contabo) and 4,000 (Kamatera)
  • $9.59 for 4 vCPU + 8GB RAM — cheapest performance-per-dollar on this page
  • 20TB bandwidth — more than most workloads will ever touch
  • Hourly billing ($0.015/hr) for dev/test environments you spin down at night
  • Free snapshots, firewall rules, and block storage volumes

Cons

  • Two US datacenters only (Ashburn, Hillsboro) — no central or southern presence
  • Email-only support — no live chat, no phone
  • No managed databases, no Kubernetes add-on, no app platform
  • No Windows OS option

#3. Kamatera — Build-Your-Own Cloud Instance

Every other provider on this list hands you a fixed plan. Two vCPU and 4GB, take it or leave it. Kamatera does something nobody else does at this price: it lets you allocate resources however you want.

This matters more than it sounds. I have a monitoring stack — Grafana, Prometheus, Loki, and an alerting service — that needs 8GB RAM but barely touches the CPU. On a preset plan, I would buy 4 vCPU / 8GB and waste three cores. On Kamatera, I configured 1 vCPU / 8GB / 30GB SSD for $12/month. That specific combination does not exist on any other provider's pricing page.

Going the other direction: a friend runs batch data processing that needs raw CPU but barely any RAM. He configured 4 vCPU / 2GB / 20GB SSD for about $14/month. On Contabo, the closest option would be $11.99 for 6 vCPU / 16GB — fourteen gigabytes of RAM he never uses. On Vultr, 4 vCPU plans start at $24. Kamatera's custom pricing eliminates the waste.

At a balanced configuration of 4 vCPU / 8GB RAM / 60GB SSD, Kamatera comes in around $18/month. CPU benchmarked at 4,000 single-core on Intel Xeon hardware, with NVMe storage hitting 55,000 IOPS. Three US datacenters in New York, Dallas, and Santa Clara. The $100 free trial credit lets you test for a month before spending anything. And the hourly billing ($0.024/hr for a 2/4 config) means you only pay for the hours your server exists — spin it up Friday, destroy it Sunday, pay for 48 hours.

Honest Warning: The Pricing Calculator

Kamatera's configuration page is genuinely confusing. It is easy to accidentally add a managed load balancer ($20/mo), extra IPs ($5 each), cloud firewall ($5/mo), or premium support ($25/mo) and end up with a $60 invoice instead of $18. Go through the checkout page slowly. Uncheck everything you did not deliberately select. I got burned on my first order by a pre-checked backup add-on I did not notice.

Sample Configurations Under $20

Use Case Config Price/mo Why This Config
Monitoring stack1 vCPU / 8GB / 30GB~$12RAM-heavy, CPU-light
Batch processing4 vCPU / 2GB / 20GB~$14CPU-heavy, RAM-light
Balanced web app2 vCPU / 4GB / 40GB~$15General-purpose
Database server2 vCPU / 8GB / 80GB~$19Buffer pool + storage

#4. Vultr — The Infrastructure Platform

Vultr's $12/month plan gives you 2 vCPU, 4GB RAM, and 80GB NVMe. On raw specs, Contabo gives you 4x the RAM and 5x the storage for the same money. So why would anyone pick Vultr?

Because Vultr is not selling you a server. It is selling you a platform.

I needed to deploy an API that served users across the US with sub-50ms latency everywhere. That means servers in at least three regions. On Contabo, I would need three separate accounts, three different control panels, and a prayer that the New York, St. Louis, and Seattle datacenters all provision within the same week. On Vultr, I deployed three $12 instances across New York, Dallas, and Los Angeles in 47 seconds via the API, configured Cloudflare load balancing across them, and had coast-to-coast coverage running before I finished my coffee.

The benchmark numbers confirm what the specs suggest: 4,300 per-core CPU score (fastest on this page), 52,000 IOPS on NVMe (fastest on this page), 2.5 Gbps between US datacenters. Per-core, Vultr matches or beats everything. The constraint is total resources — 4GB RAM at $12 means you are running a focused workload, not a kitchen sink.

The scaling path matters: If your $12 VPS outgrows itself, Vultr lets you resize to $24 (4 vCPU, 8GB), $48 (8 vCPU, 16GB), or jump to bare metal and GPU instances without changing providers. On Contabo, you have VPS plans and that is it. On Hetzner, you have VPS and dedicated but no GPU. If you anticipate growth, starting on the platform you want to stay on saves a painful migration later. Read our full Vultr review for performance data across all tiers.

Key Specs ($12/mo plan)

Price
$12.00/mo
CPU
2 vCPU (4,300 score)
RAM
4 GB
Storage
80 GB NVMe

Pros

  • 10 US datacenter locations — unmatched geographic coverage for low-latency deployments
  • Sub-60-second API provisioning for infrastructure-as-code workflows
  • Highest per-core CPU (4,300) and IOPS (52,000) on this page
  • Free DDoS protection, private networking, snapshots, and firewall
  • Bare metal, GPU, and managed Kubernetes available for scaling up

Cons

  • 4GB RAM at $12 — Contabo gives 4x more at the same price
  • Bandwidth overage charged at $0.01/GB beyond 4TB
  • No managed database service at this tier
  • Ticket and chat support only — no phone line

#5. DigitalOcean — When You Want AWS Without the Bill

DigitalOcean is the closest thing to AWS in this list. Not on specs — the $18/month Droplet gives you 2 vCPU, 4GB RAM, 80GB SSD, and 4TB bandwidth, which is roughly what Vultr offers for $12. The premium buys you something harder to quantify: an ecosystem that makes running production applications simpler.

Here is a concrete example. I needed to deploy a web app with a PostgreSQL database, object storage for user uploads, and a CDN for static assets. On a bare VPS (Contabo, Hetzner), that means installing PostgreSQL manually, configuring WAL archiving for backups, setting up MinIO for S3-compatible storage, and wiring Cloudflare for the CDN. Maybe six hours of work for someone experienced.

On DigitalOcean: Managed PostgreSQL ($15/mo), Spaces object storage ($5/250GB), built-in CDN, and the Droplet itself. Click, click, click, done. The database has automatic failover, point-in-time recovery, and connection pooling built in. The total cost is higher ($38 versus $12 on Contabo), but the operational burden is dramatically lower. If your time is worth more than the price difference — and for most professional developers it is — DigitalOcean's managed approach is the smarter economic choice.

Their community tutorial library (3,000+ guides) is the best free resource on the internet for learning server administration. I have been doing this for years and I still reference their PostgreSQL tuning and Nginx configuration guides. The $200 free trial credit gives you two months to build and test before paying a cent.

When DigitalOcean Beats Contabo (Despite 4x Less RAM)

  • Team projects: Multiple developers need dashboard access — DO has proper team management with RBAC
  • Database workloads: Managed PostgreSQL with automated backups beats self-managed on Contabo for reliability
  • First production app: If this is your first time running a production server, DO's documentation and managed services prevent the mistakes that take down servers
  • Compliance requirements: SOC 2 Type II certified, 99.99% uptime SLA with credits

Key Specs ($18/mo plan)

Price
$18.00/mo
CPU
2 vCPU (4,000 score)
RAM
4 GB
Storage
80 GB SSD

Pros

  • Best managed services ecosystem: databases, Kubernetes, App Platform, Spaces, Functions
  • 3,000+ community tutorials — best documentation for learning server administration
  • $200 free trial credit with 60-day window — generous enough to run production test
  • 99.99% uptime SLA with service credits — best reliability guarantee on this list
  • 8 US datacenter locations with consistent sub-40ms inter-region latency

Cons

  • 4GB RAM at $18 — $6 more than Vultr for identical base specs
  • Standard SSD, not NVMe — 40,000 IOPS versus Vultr's 52,000
  • Backups cost 20% of Droplet price extra ($3.60/mo at this tier)
  • No Windows OS support

The Test: Identical Stack, Five Providers, One Winner

I deployed the same Docker Compose stack on every provider's best plan under $20: Nginx (reverse proxy), Node.js API (4 workers), PostgreSQL 16 (production dataset: 2.3M rows), and Redis (session cache). Each server was deployed in the US datacenter closest to Virginia, tested over 7 days with production-representative load, and monitored with external uptime checks at 1-minute intervals.

Metric Contabo ($11.99) Hetzner ($9.59) Kamatera (~$18) Vultr ($12) DO ($18) AWS t3.medium ($30)
API req/sec 2,840 3,050 2,950 3,180 2,900 3,120
p95 latency (ms) 42 28 35 30 38 31
PG queries/sec 4,200 3,800 3,500 2,600 2,400 2,800
Disk IOPS (4K rand) 15,200 22,000 55,000 52,000 40,000 16,000 (gp3)
7-day uptime 100% 100% 100% 100% 100% 100%
Peak RAM usage 11.2 / 16 GB 6.8 / 8 GB 6.5 / 8 GB 3.4 / 4 GB 3.5 / 4 GB 3.6 / 4 GB

Three observations from this data:

First: Contabo dominated the database benchmark. PostgreSQL queries per second was 50% higher than the next-best (Hetzner) because the 16GB of RAM kept the entire dataset cached. This is not a Contabo CPU advantage — it is a RAM advantage. Database performance is overwhelmingly determined by whether your working set fits in memory.

Second: Vultr and Hetzner traded blows on API throughput and latency, both matching or beating AWS t3.medium despite costing 60-70% less. If your workload is web-serving or API-serving (CPU-bound, not memory-bound), either one is a credible AWS replacement.

Third: Every single VPS provider on this list beat or matched AWS on at least one metric while costing dramatically less. The only thing AWS offers that none of these providers match is the managed services ecosystem. If you are using RDS, ElastiCache, ALB, CloudWatch, and IAM extensively, migrating to a VPS means replacing all of that with self-managed alternatives. If you are running a single EC2 instance with a Docker stack, you are paying a 2-3x premium for infrastructure you are not using.

Full raw data is on our benchmarks page.

Full Comparison Table

Provider Price/mo vCPU RAM Storage Bandwidth US DCs Hourly Free Trial
Contabo VPS M $11.99 6 16 GB 400 GB SSD 32 TB 3
Hetzner CX32 $9.59 4 8 GB 80 GB SSD 20 TB 2
Kamatera ~$18 4 (custom) 8 GB (custom) 60 GB SSD 5 TB 3 ✓ $100
Vultr $12.00 2 4 GB 80 GB NVMe 4 TB 10
DigitalOcean $18.00 2 4 GB 80 GB SSD 4 TB 8 ✓ $200

The Spec Disparity Problem

This is the thing that makes the under-$20 tier uniquely frustrating to shop for: the range of what you get for the same money is enormous.

For $12/month, you get:

  • Contabo: 6 vCPU, 16 GB RAM, 400 GB SSD
  • Vultr: 2 vCPU, 4 GB RAM, 80 GB NVMe
  • DigitalOcean: 1 vCPU, 2 GB RAM, 50 GB SSD

That is a 6x difference in vCPU count, an 8x difference in RAM, and an 8x difference in storage — all for the same monthly price. Nowhere else in the hosting market is the spread this wide.

The reason is not that DigitalOcean is ripping you off. It is that "VPS hosting" is not one product. It is at least three:

  • Raw compute rental (Contabo, Hetzner): You get hardware. That is it. Install your own software, manage your own backups, handle your own security. Maximum resources, minimum hand-holding.
  • Infrastructure platform (Vultr): You get hardware plus a serious API, multi-region deployment, and a path to bare metal and GPU. Fewer resources per dollar, but the platform itself has value.
  • Managed cloud (DigitalOcean): You get hardware plus managed databases, Kubernetes, app deployment, object storage, and the best documentation in the industry. Fewest resources per dollar, but lowest operational burden.

Choosing between them is not about which has the best specs. It is about what your actual bottleneck is. If your application needs RAM and you know how to manage a Linux server, Contabo's 16GB at $12 is the obvious choice. If your bottleneck is operational complexity and you want to spend time writing code instead of configuring PostgreSQL WAL archiving, DigitalOcean's managed stack is worth the premium. If your bottleneck is geographic reach and API-driven automation, Vultr fills a gap nobody else does.

For help figuring out your actual needs, our VPS size calculator asks the right questions. For a deeper dive into how providers perform under sustained load, check our benchmark data. And if you are migrating from AWS specifically, our ultimate VPS guide walks through the process step by step.

Frequently Asked Questions

Can a $12 VPS really replace AWS t3.medium for production workloads?

For many workloads, yes. I ran an identical Docker stack (Nginx + Node.js API + PostgreSQL + Redis) on Contabo's $11.99 VPS M and AWS t3.medium ($30.37/month). Contabo handled 2,800 requests per second versus AWS's 3,100 — a 10% gap in throughput for 60% less cost. The real difference is operational: AWS gives you IAM, CloudWatch, auto-scaling groups, and managed RDS. Contabo gives you a server and a terminal. If you can run your own PostgreSQL and do not need auto-scaling, a $12 VPS matches or exceeds t3.medium performance. If you need managed services and elastic scaling, AWS earns its premium.

Why does Contabo offer 16GB RAM for $12 when DigitalOcean charges $48 for similar specs?

Three factors. First, Contabo uses older-generation AMD EPYC processors at higher density — more VPS instances per physical server means lower per-unit cost but 25-35% slower per-core performance. Second, Contabo does not invest in managed services, Kubernetes platforms, or developer-experience features that DigitalOcean maintains. Third, Contabo's support is slower (2-4 hour average response) and their control panel is minimal. You are paying DigitalOcean for the ecosystem, the API, the documentation, and the operational safety net. If you do not need those things, Contabo's hardware-per-dollar ratio is genuinely 4x better.

What production workloads can I run on a $15–20 VPS?

At the $15-20 tier with 4-16GB RAM, you can run serious production infrastructure: WooCommerce or Magento stores handling 50,000-100,000 monthly visitors, multi-service Docker Compose stacks with 8-12 containers, PostgreSQL or MySQL databases with properly sized buffer pools, self-hosted GitLab or Gitea instances, CI/CD runners processing 500+ builds per month, Node.js or Python API servers handling 2,000-3,000 requests per second, and game servers for 20-30 concurrent players. This tier is no longer budget hosting — it is genuine production infrastructure.

Should I get one $20 VPS or two $10 servers?

One server is simpler and usually better. Two servers add redundancy but double your maintenance surface — two sets of security patches, two firewall configs, two backup schedules. Split into two servers only if: you need to isolate your database from your web server for PCI compliance, you are running services that compete for the same resources (a CPU-heavy CI runner next to a latency-sensitive API), or you need geographic redundancy across datacenters. Vultr and DigitalOcean make multi-server setups easiest with private networking and load balancers. For most people, one properly configured server with automated backups handles everything in this price range.

How does VPS bandwidth compare to AWS data transfer costs?

This is where VPS providers absolutely destroy AWS on cost. AWS charges $0.09 per GB for data transfer out (after the first 100GB free). Serving 1TB of data from AWS costs $92.16 in bandwidth alone — more than a year of Contabo's VPS M plan. Contabo includes 32TB of bandwidth. Hetzner includes 20TB. Even Vultr includes 4TB at the $12 tier. For bandwidth-heavy workloads like media streaming, file hosting, or CDN origin servers, the bandwidth savings alone justify switching from AWS to a VPS provider.

Is it worth paying more for NVMe storage over standard SSD at this price tier?

It depends on your workload. NVMe delivers 3-5x the random IOPS of standard SATA SSD. For database-heavy applications (PostgreSQL, MySQL, MongoDB), the difference is measurable — query response times drop 30-50% on random read workloads. For web serving, the difference is negligible because most content is cached in RAM after the first read. Vultr's $12 plan uses NVMe and scored 52,000 IOPS in our tests. Contabo's $11.99 plan uses standard SSD at roughly 15,000 IOPS but gives you 400GB versus Vultr's 80GB. If your database fits in RAM, storage speed barely matters. If it does not, NVMe is worth the trade-off in capacity. See our NVMe VPS guide for detailed benchmarks.

Can I run a game server on a $15 VPS?

Easily. Contabo's $11.99 plan with 16GB RAM handles Minecraft (25+ players with plugins), Valheim (10-15 players), Palworld (8-10 players), Terraria, and most Source engine games. For competitive multiplayer where tick rate matters, Hetzner's faster per-core performance (4,200 single-core score versus Contabo's 3,100) provides noticeably smoother gameplay. The key metric for game servers is single-threaded CPU speed and RAM — most game server software is single-threaded or lightly threaded. Pick a datacenter close to your players and prioritize per-core speed over core count.

What is the best VPS under $20 for running Docker containers?

Contabo VPS M at $11.99 for pure container density — 16GB RAM lets you run 10-15 lightweight containers or 5-8 heavier services without hitting memory walls. Hetzner CX32 at $9.59 for faster container startup and image builds thanks to superior per-core performance. Vultr at $12 if you need API-driven container orchestration and multi-region deployments. Docker's memory overhead is roughly 50-100MB per container plus the application's own requirements. On Contabo's 16GB, I ran Nginx, PostgreSQL, Redis, two Node.js services, Grafana, Prometheus, Loki, and a background worker simultaneously — total memory usage was 11.2GB with comfortable headroom. Check our Docker VPS guide for container-specific benchmarks.

How do I migrate from AWS EC2 to a VPS without downtime?

The cleanest migration path: First, containerize everything on EC2 using Docker Compose — this makes your stack portable. Second, provision your VPS and install Docker. Third, copy your Docker Compose file and environment variables. Fourth, dump and restore your database (pg_dump for PostgreSQL, mysqldump for MySQL). Fifth, update your DNS to point to the new VPS IP with a short TTL (300 seconds). Sixth, run both servers in parallel for 24-48 hours while DNS propagates. Total migration takes 2-4 hours of hands-on work. For zero-downtime migration of stateful services, use Cloudflare as a reverse proxy and switch the origin server IP without touching DNS. Our VPS guide covers the full process.

My Top Picks Under $20

For memory-bound workloads (databases, Docker stacks, game servers): Contabo at $11.99/mo — 16GB RAM beats AWS t3.medium on database throughput for 60% less cost. For CPU-bound workloads (PHP, APIs, single-threaded apps): Hetzner at $9.59/mo — fastest per-core speed under $20, cheaper than everything else on this page.

AC
Alex Chen — Senior Systems Engineer

Alex has spent the past 3 years running identical workloads on AWS EC2, Google Cloud Compute, and independent VPS providers to find out where the cloud premium is justified and where it is not. He has benchmarked 50+ providers across US datacenters and manages production infrastructure on both hyperscaler and VPS platforms. Learn more about our testing methodology →