Skip to content

Leave AWS when it pays off. With no planned downtime.

Migration from AWS, Azure and GCP to Hetzner and OVH. First I work out whether it pays off. If it does not, I advise against the move.

Or email jacob@codelevel.pl.

I reply within 1 business day.

The same architecture, per month

prices checked

Small containerised application

AWS
USD 750
Hetzner
USD 210–270
OVH
USD 180–300

Large web application

AWS
USD 2,700
Hetzner
USD 510–830
OVH
USD 510–740

Large Kubernetes cluster

AWS
USD 5,050
Hetzner
USD 1,200–1,750
OVH
USD 930–1,400
Net prices as of 23 September 2026, OVH Public Cloud at the prices from 1 October 2026. AWS in Frankfurt at on-demand prices. At Hetzner and OVH from the cheapest to the most expensive sensible setup, always with a database replica and backups outside the provider. Sources and the exact setups are in the calculator.

The same application, three bills

A web application with a MySQL database, cache, search and a queue, for 100–150 people at once. On AWS: three application servers, a Multi-AZ database and managed services. At Hetzner and OVH: four dedicated servers, a database replica and backups outside the provider.

AWS

Frankfurt (eu-central-1), on-demand prices
invoice in US dollars

prices as of 23 September 2026


  • Application servers551.73 USD3× EC2 m7i.xlarge with disks
  • Database932.65 USDRDS MySQL r7g.xlarge Multi-AZ, 300 GB
  • Cache, search and queue797.37 USDElastiCache, OpenSearch, Amazon MQ
  • Network355.27 USDALB, NAT Gateway, CloudFront 2 TB, traffic, IPv4
  • Everything else (partly an estimate)81.10 USDS3, snapshots, CloudWatch, WAF

Total2,718.12 USD

in EUR, NBP rates 0.8728EUR 2,372

Net, excluding VAT. NBP rate from table 184/A/NBP/2026.

Hetzner

dedicated servers
invoice in euros

prices as of 23 September 2026


  • Application servers194.60 EUR2× AX42-1
  • Database, cache, search and queue194.60 EUR2× AX42-1: database with a replica, Valkey, OpenSearch, RabbitMQ
  • Network (partly an estimate)29.29 EURLB11, 4 IPv4 addresses, CDN
  • Backups (partly an estimate)21.20 EURStorage Box and a copy outside Hetzner
  • Setup fee8.17 EURspread over 24 months

Total447.86 EUR

Maintenance by meEUR 690Growth plan


Total with maintenanceEUR 1,138

Monthly savingEUR 1,234per month (PLN 5,374)

Servers and services are 19% of the AWS bill.
Net, excluding VAT.

OVH

dedicated servers
OVH’s Polish price list, in PLN

prices as of 23 September 2026


  • Application servers852.00 PLN2× RISE-M
  • Database, cache, search and queue852.00 PLN2× RISE-M: database with a replica, Valkey, OpenSearch, RabbitMQ
  • Network (partly an estimate)108.65 PLNfailover IP, CDN
  • Backups (partly an estimate)60.97 PLNObject Storage and a copy outside OVH
  • Setup fee71.00 PLNspread over 24 months

Total1,944.62 PLN

in EUR, NBP rates 0.2301EUR 447

Maintenance by meEUR 690Growth plan


Total with maintenanceEUR 1,137

Monthly savingEUR 1,235per month (PLN 5,376)

Servers and services are 19% of the AWS bill.
Net, excluding VAT. NBP rate from table 184/A/NBP/2026. Outside Poland OVH invoices in EUR, and prices may differ slightly.

Net prices as of 23 September 2026, AWS in Frankfurt at on-demand prices. With Reserved Instances or Savings Plans the same AWS setup would cost about EUR 1,850. An asterisk marks a line where part of the amount is my estimate (CDN, monitoring, backups). I include maintenance: with four servers that is the Growth plan (EUR 690 per month). The exact figures for your architecture are in the exit plan. Work it out for your own bill.

What I do not promise

“90% cheaper”
Part of the saving goes on admin time. I put it in the plan instead of hiding it.
“Any application can be moved”
Heavily serverless systems, or ones built on AWS managed services, are often better left where they are.
“Zero work after the migration”
Dedicated servers need updates and watching. I do that on a maintenance plan, or I train your team.

Does it make sense for you?

It makes sense if

  • Your traffic is steady, without wild swings over the day.
  • The move saves more each month than maintenance costs. The calculator shows whether it does for you.
  • You send a lot of data out: video, files, games.
  • You want a provider based in the EU, outside the reach of the US CLOUD Act.

You are probably better off on AWS if

  • You lean heavily on managed services such as Lambda, DynamoDB, Step Functions or Kinesis.
  • Traffic grows tenfold within an hour and then disappears.
  • You have AWS credits for the coming year.
  • You have Savings Plans, Reserved Instances or a minimum-spend agreement with AWS. You pay for them until the term ends, even after the move, so I put them in the plan.
  • Nobody in the company wants to read infrastructure status reports.

Send me your AWS bill

Within 2 business days I will reply with 3 concrete observations.

I do not need access to the account. A PDF invoice from the console or a Cost Explorer export for the last 3 months is enough.

Only I read the file, and I do not paste it into AI tools. I delete it when you ask, and after 12 months at the latest.

What replaces each AWS service

Some of the convenience of managed services goes away. I make up for it with automation in Terraform and Ansible, monitoring and alerts. Here is exactly what you give up.

EC2
Replacement: Dedicated servers or Hetzner Cloud
What you give up: Autoscaling in minutes. I plan the headroom up front.
RDS
Replacement: PostgreSQL with Patroni, or MariaDB with a replica, on the same servers
What you give up: Version upgrades and failover are done by me, not by AWS. OVH’s managed database costs about as much as RDS.
S3
Replacement: Hetzner or OVH Object Storage, or self-hosted Garage
What you give up: Some storage classes and lifecycle rules.
ALB
Replacement: HAProxy or a Hetzner Load Balancer
What you give up: WAF and ACM integration. Certificates come from Let’s Encrypt.
CloudFront
Replacement: Cloudflare or Bunny CDN
What you give up: Not much. It is a change of vendor more than a loss of features.
EKS
Replacement: k3s or Talos on dedicated servers, or OVH Managed Kubernetes
What you give up: With k3s, cluster upgrades are on my side. At OVH the control plane on the Free plan costs nothing.
ElastiCache
Replacement: Valkey on the same servers
What you give up: Automatic failover. I set up the replica and Sentinel myself.
OpenSearch
Replacement: OpenSearch on your own servers
What you give up: Managed upgrades and snapshots. I do them in Ansible.
SQS and Amazon MQ
Replacement: RabbitMQ
What you give up: Not much. The queues work the same; the client library changes.
CloudWatch
Replacement: Prometheus, Grafana and Loki
What you give up: The ready-made metrics of AWS services. I set up alerts from scratch.

How the migration goes

A typical schedule from an exit plan. The bar length is time, and each stage has its price. Larger systems take longer to build; your exact weeks are in your plan.

  1. Analysis

    Week 1.

    Your bill and architecture, a first estimate of the savings.

    free

  2. Exit plan

    Week 2.

    Target architecture, total cost, risks.

    from EUR 900

  3. Build alongside

    Usually weeks 3–6.

    A new environment next to the old one, in Terraform and Ansible, with performance tests.

    from EUR 1,850

  4. Switch-over

    One night after the build.

    Data replication, a DNS change and a rollback plan ready. I plan the switch-over with no downtime.

    included in the migration

  5. Maintenance

    Monthly after that.

    Updates, backups, alerts.

    from EUR 190 per month

Exit plan from EUR 900. The plan price is deducted from the migration price if you order the migration within 90 days of receiving the plan. The migration price in the plan is valid for those 90 days for the scope it describes. Migration from EUR 1,850, at the price set in the plan. Terms of the credit.

Questions about leaving the cloud

Will there be downtime?

I do not plan any. I build the new environment next to the old one and replicate the database to it. On the night of the switch the old environment forwards traffic to the new one, so writes go to one database, and then I change DNS, with the TTL lowered in advance. The rollback plan is ready before the switch.

Link to this question: Will there be downtime?
How long does a cloud exit take?

The plan takes about two weeks. Building the new environment usually takes three to six weeks, depending on the number of services. The exact schedule is in the exit plan.

Link to this question: How long does a cloud exit take?
What replaces RDS, S3 or Lambda?

RDS: PostgreSQL with Patroni or MariaDB with a replica, on the same servers as the application. OVH’s managed database is an option too, but it costs about as much as RDS. S3: Hetzner or OVH Object Storage, or self-hosted Garage on dedicated servers. Lambda depends on what it does: often a queue and an ordinary process in a container are enough. The table of replacements is above.

Link to this question: What replaces RDS, S3 or Lambda?
What does traffic cost after the migration?

Usually very little. Hetzner and OVH dedicated servers include traffic, and Hetzner Cloud includes 20 TB a month per server in the EU. With heavy outbound traffic this is often the biggest saving.

Link to this question: What does traffic cost after the migration?
Will AWS charge me for leaving?

Usually not for the data transfer itself. Under AWS’s rules as updated on 30 September 2025, on a request through AWS Support AWS waives outbound traffic charges tied to the move, and there are 90 days to finish it. This applies to moving all your data out of AWS. If some services stay on AWS, transfer between the providers is charged at the normal rates. For customers in the European Union, from 12 January 2027 the EU Data Act bans switching charges when the switch follows the procedure in that regulation. What remains are term commitments: Savings Plans, Reserved Instances and any minimum spend in your agreement with AWS. I check them at the start and put them in the plan.

Link to this question: Will AWS charge me for leaving?
Where will my data be?

In Hetzner data centres in Germany or Finland, or at OVH in France, Germany or Poland. We choose the location in the plan, with GDPR and your contracts with your own customers in mind.

Link to this question: Where will my data be?
What if something goes wrong?

After the switch the AWS database receives the changes from the new one (replication in the reverse direction), so it stays current for the transition period. Rolling back is the same procedure in the other direction, described step by step in the plan.

Link to this question: What if something goes wrong?
What if Hetzner or OVH has an outage?

I design it so that losing one server does not stop the service: database replicas, backups outside the provider and, for higher requirements, a second location. We agree the level of protection in the plan, together with its cost.

Link to this question: What if Hetzner or OVH has an outage?
Who runs the infrastructure after the migration?

I can, on a maintenance plan from EUR 190 per month. All the configuration is in your repository, so your own team can just as well take it over.

Link to this question: Who runs the infrastructure after the migration?

Posts on this topic

Check whether a cloud exit makes sense for you

Send me a Cost Explorer screenshot. I do not need access to the account.

Or email jacob@codelevel.pl.

I reply within 1 business day.

From a case study: since 2020 I have run a game server with a record of about 900 players at once. See the case study