A SaaS company in the Netherlands was paying $3,500/month ($42,000/year) on AWS for an application serving 2,000 daily active users. Optimum Web migrated the entire stack to a Hetzner dedicated server ($89/month) with zero downtime in 3 business days for $299 fixed price. Performance was identical — TTFB actually improved from 180ms to 165ms. Annual savings: $40,920. The migration paid for itself in 2.5 hours of the first month's savings.
This case study shows the exact AWS bill breakdown, what we migrated, how the DNS cutover worked without downtime, and the full before/after performance comparison.
The Problem: "Our AWS Bill Keeps Growing But Our Traffic Doesn't"
The client built their SaaS on AWS 4 years ago when they were a startup expecting rapid scaling. The scaling stabilized at 2,000 DAU. But the AWS bill kept creeping up:
| AWS Service | Monthly Cost |
|---|---|
| EC2 (2× m5.xlarge) | $780 |
| RDS (db.r5.large, Multi-AZ) | $920 |
| S3 + CloudFront | $340 |
| Data transfer (outbound) | $580 |
| ElastiCache (Redis) | $410 |
| Other (EBS, CloudWatch, Route53) | $470 |
| **Total** | **$3,500/month = $42,000/year** |
For 2,000 daily users, this was massively overprovisioned. The application needed approximately 4 CPU cores, 16GB RAM, and 500GB SSD — hardware available on a Hetzner dedicated server for €79/month ($89).
Why Companies Overpay for Cloud
Cloud infrastructure makes sense when you need rapid elastic scaling, highly variable traffic (Black Friday spikes 10×), or managed ML/IoT services. For stable, predictable workloads — dedicated servers cost 80–95% less with identical or better performance.
The dedicated server is often faster because resources are not shared with other tenants. The AWS "noisy neighbor" problem — where another customer's heavy workload degrades your VM performance — does not exist on dedicated hardware.
The real barrier is psychological: teams are afraid migration will break something. This fear costs $40,000/year.
The Migration (3 Days)
Day 1 — Server Setup: Provisioned Hetzner AX102 server (AMD Ryzen 9 7950X, 128GB RAM, 2× 1TB NVMe RAID) — €79/month. Installed Ubuntu 24.04, Docker, Docker Compose. Replicated the application stack in Docker: app containers, PostgreSQL 16, Redis 7, Nginx with SSL.
Day 2 — Data Migration: PostgreSQL: pg_dump on AWS RDS → pg_restore on new server (4GB database, 12 minutes). S3 files: rclone sync to local NVMe storage (180GB, 2 hours). Redis: exported snapshot, imported on new server. Application tested end-to-end — all 47 features verified.
Day 3 — Zero-Downtime DNS Cutover: Lowered DNS TTL to 60 seconds 24 hours before cutover. Updated DNS A record to new server IP. Monitored for 4 hours: zero errors, zero failed requests. SSL certificate (Let's Encrypt) configured with auto-renewal. Old AWS resources kept running for 7 days as rollback insurance. After 7 days with zero issues — all AWS services terminated.
The Result
| Metric | AWS | Hetzner Dedicated | Change |
|---|---|---|---|
| Monthly cost | $3,500 | $89 | −97% |
| Annual cost | $42,000 | $1,068 | Save $40,932 |
| TTFB (Time to First Byte) | 180ms | 165ms | 8% faster |
| Database response | 45ms | 38ms | 16% faster |
| CPU available | 4 vCPU (shared) | 16 cores (dedicated) | 4× more |
| RAM available | 16GB (shared) | 128GB (dedicated) | 8× more |
| Downtime during migration | — | 0 minutes | Zero downtime |
Cost & Timeline
| Item | Detail |
|---|---|
| Service | OW-MIG-01: Move Project From Cloud to Own Server |
| Price | $299 fixed |
| Timeline | 3 business days |
| Included | Server setup, Docker deployment, PostgreSQL migration, file sync, Redis migration, DNS cutover, SSL, monitoring, 7-day rollback period |
| Monthly savings | $3,411/month ($40,932/year) |
| ROI | 2.5 hours of the first month's savings |
Note: The Hetzner dedicated server (€79/month) is a separate cost, paid directly to Hetzner. We handle the setup and migration. You own the server.
💰 Paying $1,000+/Month for Cloud? You Might Not Need It.
Cloud to Dedicated Server Migration — $299 fixed price. Zero downtime. 2–3 day delivery. 7-day rollback plan included. Average client saves $10,000–$40,000/year.
- ✓Server provisioning (Hetzner, DigitalOcean, or your choice)
- ✓Full Docker stack replication
- ✓Database migration (PostgreSQL, MySQL, MongoDB)
- ✓File & media migration (rclone sync)
- ✓Zero-downtime DNS cutover
- ✓SSL + monitoring setup + 7-day rollback plan
$299 · 2–3 days · Service ID: OW-MIG-01 · 14-day warranty
Migrate My Server — $299 →Need CI/CD on the New Server?
After migration, many clients add a CI/CD pipeline so deployments are automatic. [Setup CI/CD Pipeline — $249](/fixed-price/setup-cicd-pipeline#checkout) — GitHub Actions or GitLab CI connected to your new server via Docker. 2–3 day delivery.
Total for migration + CI/CD: $548. Plus need automated backups? [Backup Setup — $129](/fixed-price/backup-setup-verification) with daily off-site copy and restoration verification.
Could This Be Your Problem? (5 Signs You're Overpaying for Cloud)
- Your monthly cloud bill is > $500 and your traffic is stable (not growing 10×)
- You serve < 50,000 daily users (one dedicated server handles this easily)
- You don't use cloud-specific managed services (Lambda, DynamoDB, SageMaker)
- Your application runs in Docker or can be containerized
- You're paying for 'just in case' scaling that hasn't happened in 2+ years
If 3 or more apply, you're likely overpaying by $500–$4,000 per month.
→ [Migrate My Server — $299](/fixed-price/move-project-to-server#checkout) · Zero downtime · 7-day rollback → [Add CI/CD Pipeline — $249](/fixed-price/setup-cicd-pipeline#checkout) · Auto-deploy on git push
