HelpWithWebGet Help Now
← Back to Blog
Hosting8 min read

Switching from DigitalOcean to Contabo: 50% Lower Cost AND More Resources

After 6+ years on DigitalOcean paying ~$300/month, I migrated to Contabo and cut my bill in half — while getting more CPU, RAM, and storage. Here's the math, the migration, and the trade-offs.

ByDino Bartolome
Server rack with glowing network cables in a dark data center
Photo by Taylor Vick on Unsplash

I've been a happy DigitalOcean customer for years. Some of my droplets had been running for 6+ years — set up, tuned, working great. The kind of infrastructure you forget about because it just runs.

But forgetting about it was part of the problem. I was paying about $300/month across DigitalOcean for what amounted to a handful of small VPSes and one beefier one. Most of those instances had been sized when I first stood them up, and I'd added storage block by block as needs grew. DO charges roughly $10/month per 100GB of block storage, and I had maybe 800GB attached across everything.

A few months back I started actually pricing alternatives. The number that came back made me look twice.

The math

Here's what I was running on DigitalOcean and what it actually cost:

  • 5-6 small droplets at roughly $12-24/mo each
  • 1 larger droplet for a more demanding workload
  • ~800 GB of block storage at $10/100GB = $80/mo just for disk
  • Plus snapshots, backups, transfer overages — small but they add up
  • Total: about $300/month

Then I priced Contabo's lineup. Their entry VPS at the time:

  • $20/mo gets you 1 TB of storage, plus solid CPU and RAM
  • $20/mo alternate config: more CPU + 400 GB NVMe SSD
  • Compare that to the $80/month I was paying *just for the 800GB of block storage* on DO — Contabo gave me more storage AND a whole server for one-quarter the price

After actually doing the migration, I cut my monthly bill roughly in half — and the new setup has more CPU, more RAM, and more storage than what I had on DigitalOcean. So it's not just “cheaper for the same thing” — it's cheaper *and* more resources.

The math is straightforward when you lay it out. Where I was paying $80/month on DO *just for the 800GB of block storage*, a single Contabo VPS at $20/month gives me 1TB of disk plus an entire server attached to it. Stack a couple of Contabo VPSes side-by-side and you've replaced the bulk of a DO fleet for half the price.

Why I didn't notice sooner

Honestly — momentum. The servers were old. They worked. I'd set them up when DO was the obvious choice (and at the time, it was). The infrastructure had been “done” for years.

The trap of staying with a provider for 6 years is that the market changes underneath you. Providers I'd barely heard of (or that didn't exist) are now offering 3-5x the value at the same price point.

DO has held their prices remarkably steady. That's a kindness in one sense — no surprise increases. But it also means competitors have been undercutting them aggressively, and if you don't shop around, you don't benefit.

The migration: what it actually takes

This is the part most people underestimate. Moving servers isn't hard *technically*. It's tedious. Here's what I did.

Step 1: Inventory

  • For each droplet:
  • What services run on it?
  • Which clients or projects depend on it?
  • What domains point at it?
  • What email or scheduled jobs originate from it?
  • What configs are baked into /etc, custom scripts, cron, etc.?

I keep my client and project workloads in separate accounts/users on each box — that's a habit that saved me a lot of pain here, because it meant I could back each one up individually and not lose track.

Step 2: Back up everything

Even though I had backups configured, before migrating I did one more full pass:

``bash # Tar each account/project independently tar -czf /backup/clientA.tar.gz /home/clientA tar -czf /backup/clientB.tar.gz /home/clientB ``

Then config and system state:

``bash # Capture critical configs tar -czf /backup/etc.tar.gz /etc crontab -l > /backup/root-crontab.txt for u in clientA clientB clientC; do crontab -u $u -l > /backup/${u}-crontab.txt 2>/dev/null done systemctl list-units --type=service > /backup/services.txt ``

Database dumps:

``bash mysqldump --all-databases > /backup/mysql-all.sql pg_dumpall > /backup/postgres-all.sql ``

Pull all of it down locally and to S3-compatible storage as a belt-and-suspenders move. Disk is cheap; recovering work you lost is not.

Step 3: Stand up the new server

On Contabo, spin up the destination VPS. Get base OS, packages, users, and security baselines in place *first* — before any client data hits it. SSH keys, firewall, fail2ban, automatic security updates, monitoring agents.

Step 4: Restore in layers

Start with the smallest, least critical client. Get them moved end-to-end, test thoroughly, then move the next. Don't try to migrate everything in one window — that's how things break in ways you can't un-break under time pressure.

  • Per client:
  • Restore home dir / project files
  • Restore database
  • Update Nginx / Apache configs
  • Reissue SSL certificates (Let's Encrypt with the same domain on a new IP)
  • Update DNS A records (lower TTLs ahead of time so propagation is fast)
  • Test from outside before touching the next one

Step 5: Run both for a week

Keep the DigitalOcean droplets running for at least a week after DNS cuts over. Two reasons: DNS propagation gives stragglers, and you want a known-good fallback for at least one full business cycle. If there's a Monday morning issue, you've still got the old server to compare against.

Step 6: Tear down DO

Once you're confident, snapshot the old droplets one more time, download the snapshots locally (just in case), and destroy them. DO bills until the moment you destroy — don't leave them running “just in case” forever.

What I gave up

Being honest about the trade-offs:

Block storage redundancy

DigitalOcean Volumes are triple-replicated underneath. Hardware failure is effectively invisible. Contabo's storage is on the local server's disks — if the underlying hardware fails, your data is at risk.

There are two mitigations I use, and they're both cheaper than paying for DO's built-in replication:

Disciplined backups. Nightly tarballs that ship off-server. Weekly full backups to a separate cold storage tier (S3-compatible). Even if Contabo lost a drive, my recovery time is hours and exposure is at most 24 hours of data.

DIY replication across two cheap VPSes. For workloads where 24h of exposure isn't acceptable, I run an active-passive pair: one primary, one hot standby on a second Contabo VPS in a different data center. For databases I use MySQL/MariaDB or Postgres native replication. For files I use rsync on a tight schedule, or for stronger guarantees, DRBD or a small Ceph cluster. The cost of *two* Contabo VPSes with replication is still less than a single DO setup with their built-in redundancy.

The point is — you can buy redundancy with disks at a cheap provider for less than you can buy it from a premium provider. You just have to engineer it yourself.

For mission-critical workloads where engineering effort is more expensive than monthly hosting, DO's built-in redundancy might still be worth the cost. For most workloads, DIY replication on cheap hardware wins on price *and* gives you better control.

Support quality

DO support is excellent. Fast, technical, generally English-native. Contabo's support is slower and feels more transactional. For experienced devops, you barely notice. For someone who relies on chat support to figure things out, it's a real difference.

Snapshot / image ecosystem

DO has a polished snapshot, image, and reserved IP UX. Contabo's control panel is functional but plain. You can do everything; it just isn't as nice.

Network performance

DO has globally distributed data centers with excellent peering. Contabo's network is fine but less optimal for global reach. If you're serving a heavily US/EU mixed audience, latency tests are worth running before committing.

What I gained

Beyond the obvious cost savings:

  • More resources per dollar — bigger disks, more CPU headroom, more RAM. Sites felt faster after the move just because the new servers had spare capacity.
  • Forced documentation — I had to write down every weird thing on those servers as I migrated them. Now I have an actual inventory.
  • Cleaner setup — when you rebuild, you don't carry forward six years of bit-rot. Old packages, weird firewall rules, abandoned services. The new boxes are tidy.

The bigger lesson

If you've been on the same cloud for 5+ years, price it out. Genuinely. The savings aren't always there, but when they are, they're often dramatic. Cloud and VPS pricing has been a race to the bottom, and the gap between “market leader pricing” and “aggressive competitor pricing” is wider than it's ever been.

Run the numbers once a year. Switch when the math is overwhelming. Stay where you are when it's close, because the migration cost is real.

What this doesn't mean

It doesn't mean “DigitalOcean is bad” — they're excellent. It doesn't mean “Contabo is best” — they have real trade-offs. It means the right host depends on your workload, your tolerance for trade-offs, and your willingness to migrate.

For my mix (mostly small business client sites, dev/staging boxes, file storage), Contabo's value is unbeatable right now. For mission-critical SaaS with global users, DO or AWS or GCP might still be the right answer.

Need a migration done right?

Migrating servers across providers is the kind of work that's easy to start and surprisingly easy to mess up partway through. If you have a sprawl of old VPSes you suspect you're overpaying for, I can audit your current spend, recommend the right destination, and handle the migration in stages with zero downtime. Most clients end up cutting their bill in half or better — and often with more headroom than they had before. Send me a message.

Need Help With Your Website?

I fix these problems every day. Send me a message and I'll take a look.

Get Help Now