← Journal
09 Jun 2026 · 9 min read

The humble VPS: why your early startup doesn't need ECS or Cloud Run

Pre-product-market-fit, a €20 server with Docker Compose beats a managed container platform on cost, speed and sleep. The real numbers — and the honest moment to switch.

Every few weeks a founder arrives at our door with a two-person team, a hundred daily users, and an AWS bill that reads like a mid-sized company’s. ECS on Fargate, an application load balancer, a NAT gateway, ECR, CloudWatch, a managed Postgres two sizes too large. The architecture diagram is beautiful. The product has not found its market yet.

Nobody made a mistake, exactly. They followed “best practice.” But best practice for whom?

What the managed platform actually costs

The line items are individually modest and collectively relentless. At the time of writing, a single always-on Fargate task with one vCPU and two gigabytes of memory runs roughly $35–40 a month. You will run at least two for “high availability.” The load balancer in front adds about $20 before traffic. The NAT gateway — required the moment your private-subnet containers need to call the internet — is around $35 plus data processing. Add image storage, log ingestion, and the staging copy of everything, and a startup serving a few hundred users is paying $150–300 a month before it has stored a single customer record.

Cloud Run is honest at zero: scale-to-zero means a side project costs pennies. But the moment you have steady traffic — or set a minimum instance so users stop hitting cold starts — the curve bends upward, and egress pricing does the rest.

Meanwhile, a capable VPS — four vCPUs, eight gigabytes of RAM, from an EU provider like Hetzner or a US one like DigitalOcean — costs €15–25 a month. It will comfortably run your application, your Postgres, your Redis and your background workers, with room to spare, for years of early-stage traffic.

monthly cost sustained load the break-even ridge ECS Fargate + ALB + NAT Cloud Run, steady traffic VPS — resize when the step comes platform base fee, day one
Fig. 1 — The cost terrain. Managed container platforms charge a base camp fee before your first user; a VPS climbs in small, deliberate steps.

What you are actually buying — and not using

The premium buys real things: autoscaling, multi-AZ failover, managed certificate rotation, per-service IAM. The question is whether those things are load-bearing for you yet.

  • Autoscaling, when your traffic fits comfortably on one machine at 10% utilisation.
  • Multi-AZ failover, when your honest SLA is a status tweet and an apology.
  • A private network topology, when your entire estate is one app and one database.
  • Per-task IAM roles, when your whole team is two people who share a password manager.

You also buy complexity that bills you in hours rather than dollars: a deploy that takes eight minutes instead of forty seconds, debugging that happens through three layers of abstraction, and a mental model no new hire holds in their head for the first month.

The quiet VPS practice

A VPS in 2026 is not a snowflake server lovingly hand-fed. Run it with the same discipline you would bring to any platform:

  • Everything in containers, orchestrated by Docker Compose, committed to git.
  • Caddy or Traefik in front — TLS certificates renew themselves.
  • A deploy that is one small CI job: build, push, pull, restart. Under a minute.
  • Nightly off-site backups of the database and volumes, restored quarterly to prove they work.
  • Basic telemetry — node exporter, uptime checks, log rotation — and a second, smaller VPS for staging.

This stack is boring, auditable and portable. For EU founders there is a quiet bonus: providers like Hetzner keep your data on EU soil with GDPR-friendly processing agreements, which simplifies your first compliance conversation considerably.

When the platform wins

We are not romantics. There is a ridge on the cost curve, and beyond it the managed platform genuinely earns its fee. You will know you are approaching it when:

  • Traffic is genuinely elastic — tenfold spikes you cannot ride out on an oversized box.
  • Compliance audits demand the isolation and audit trails that platform IAM gives you cheaply.
  • The team is large enough that “who restarted the server” becomes an actual question.
  • Your service count has outgrown one Compose file and you are reinventing an orchestrator badly.

Here is the part that matters: if you ran your VPS with containers from day one, the migration to ECS, Cloud Run or Kubernetes is days, not months. The container was always the unit. You simply change what schedules it.

Start low. Climb when the terrain demands it. The summit fee can wait until you can see the summit.