By Wolfgang Unger
Introduction
Your are hosting your services and data on AWS, but since january 20, 2025 you think over this
decision?
After all, AWS is an american company, hosting your data and services in Frankfurt, will not change
this fact.
DSGVO, US CLoud Act (which may allow U.S. law enforcement agencies access to AWS servers not only in
the US),
european sovereignty may be some of the keywords in your considerations.
So you want migrate your infrastucture from AWS to an european cloud provider.... I have choosen
Hetzner as a good alternative for my analysis and blog
The million-dollar question
Intention is one thing feasibility another. Can you indeed migrate from AWS to Hetzner ?
After all AWS is now almost 20 years present and offers more than 200 services.
Lets try to answer this question on a higher level . We cant analyse your services in detail
here, these
are too individual from customer to customer but lets look at the migration on a abstract level and
ignore the service tier in detail for now.
If you are basically using EC2 a lot on AWS you will be able to migrate them quite easy to Hetzner.
You will also save a considerable amount of your cloud costs with this migration, since the prices for VMs on
Hetzner are much lower as on AWS.
As showed in this
UMH blog from Jeremy Theocharis
here, see the following numbers to get an idea:
Cloud Provider |
Type |
vCPUs |
RAM |
Monthly Cost |
Hetzner Cloud |
CPX41 |
8 |
16 GiB |
$32.70 (billed hourly) |
AWS EC2(1-Year) |
c6g.2xlarge |
8 |
16 GiB |
$180.60 |
AWS EC2(On-Demand) |
c6g.2xlarge |
8 |
16 GiB |
$226.59 |
Azure VM |
F8 |
8 |
16 GiB |
$331.4 (billed hourly) |
Please keep in mind the prices are updated monthly, make your own comparison.
But if you use a lot of managed services, like RDS and others and use a lot of Lambda, maybe EventBridge, your conclusion might be, you cannot
migrate this infrastructure with reasonable effort
Your Current Cloud Infrastructure
The answer to the million-dollar question will depend on your infrastructure and must be analysed individual.
But lets define an example Infrastructure to approach the answer on this question on an abstract level:
- You have a multi-account environment in AWS with lets say a Master/Organisational Account and 3
Stage accounts (DEV, INT, PROD).
Of course it may be more accounts but lets keep it simple and after all this small multi account
setup will do for the analysis.
- You have data stored on AWS, for example mainly on S3 and you are using some services like Route53, EC2, Loadbalancers, RDS,
EKS and Lambda.
- You are hosting your source code in Gitlab or Github and you also use CI/CD outside of AWS, like
Gitlab.
- You use IaC to deploy your infrastructure, which might be Terraform or CloudFormation.
Lets have a closer look if you could migrate this infrastructure from AWS to Hetzner.
Multi Account Setup
AWS got really mature and great Multi Account and Organisational Features with Consolidated Billing,
Organisational Units, SCPs and more.
This has grown over years, a lot of this was not available when I started to work 2014 on AWS.
You won't find all these features on Hetzner yet, but you can setup multi account environments.
First option is of course open/create multiple Hetzner accounts. This is/was also the approach on
AWS before Organisations and
Landing Page facilitated this a lot.
All you need is a email address and a credit card, so you could use dev@yourcompany.com ,
int@yourcompany.com etc
But there is a second real good option.
Inside your account you can create 'Projects'. This is a concept you won't know from AWS
Inside these projects you can define your infrastructure, that means define VPCs, VMs and so on.
So these projects serve really good to create multiple environments for your stages like Dev, Int, Prod.
You can invite users to these projects and define those users for each projects different.
So this gives you a basic IAM.
But indeed just basic. There is not yet a IAM on Hetzner available you could compare to AWS IAM features.
If you define a admin user he is admin over all resources in the project.
The billing will be for the account, so all of your projects will be billed together.
Services and data
We cannot make a complete services comparison in this blog, probably a dedicated blog about this will follow,
but lets have a look what Hetzner got to offer.
On the top right you can open this menu:
We will only focus on DNS and Cloud for today.
DNS ( Route53)
With this service you can create hosted zones and dns entries, so it can kind of replace Route53
Important to handle your domains and the forwarding to your services, loadbalancers and so on.
Cloud
If you switch to cloud you'll see pretty much so screenshot I have added for the multi account setup.
So on top level the projects, usage, activities, limits, support & referals.
If you select one of your projects, you will get an overview page over this projects, a landscape where your servers are and
this menu on the right which also gives an inside of your project and its resources:

You can see, I got currently 2 servers, 2 volumes in my test project.
If you click on 'Create resource' you will see pretty much the same resources.
So we got :
Network - The VPC in AWS. Essential. It also allows you to define the IP Mask, subnets, routes and more.
Firewalls - more or less Security Groups in AWS - Firewalls allow you to restrict or allow traffic based on rules
VMs - Similar to EC2 on AWS. A large selection of instances is available, this deserves a dedicated blog one day.
Volumes - Similar to EC2 EBS volumes. Youc can attach and detach a volume to a VM.
Primary IPs - the public IP address of your VM.
Floating IPs - Similar to Elastic IP on AWS. A Floating IP can be assigned and reassigned to any server at any time in any location.
Snapshots - Should be self explaining , a snapshot is a full copy of your server's disk
Load Balancer - you should be familar with this concept, it will distribute traffic between multiple target servers.
Buckets - Similar to S3 Buckets in AWS. But of course not yet with all S3 features you know from AWS
So for our example infrastructure, we used to have S3, EC2, Loadbalancers, RDS, EKS and Lambda on AWS:
- S3 and EC2 can be substituted pretty easy on Hetzner. Also Loadbalancers
- RDS becomes a little be more difficult, there is no managed database service yet on Hetzner, so you would have to
install your Postgres, MySQL or any other Database on a VM and take care of updates on your own.
This will be more work but also save costs.
- Same is valid for EKS, which was launched 2018 on AWS, you will have to setup you Kubernetes Cluster on your own on Hetzner using
kubectl or other tools.
- Lambda is not available on Hetzner. So you have to replace them with a different architecture, which might by scripts on a server,
sysadim, fission, apache openWhisk or other solutions.
So probably you will achieve to migrate your infrastructure to Hetzner, the effort and time will depend pretty much on what
services you are currently using on AWS. If it's just EC2 then you will have a easy task, if you use a lot of managed services,
have deep lambda and for example event bridge integration it's gonna be a bigger challenge.
Git and CI/CD
If you already use Gitlab, Github, Jenkins and other non-native AWS build tools, you will have not much trouble on this part.
You will have to adapt your pipelines, technical users, tokens, target servers, but there should be no showstopper here.
IaC - Infrastructure as Code
If you are using Cloudformation or CDK on AWS, you should be aware these are not portable to other cloud providers !
Not to Azure, Google and of course also not on Hetzner.
If you are using Terraform, which was designed as multi plattform IaC tool from the very beginning, it was a good choice.
There is a Hetzner provider available for Terraform please have a look on this project
Hetzner Terraform Provider
Conclusion
If you can migrate your Infrastructure from AWS to Hetzner will depend on your system architecture and services in use of course.
Also some other factors like what IaC Tool do you use, how important is a fine granular IAM for you, do you have a sophisticated
multi account structure?
Once you have done a general analysis like this one here and your conclusion is, the migration is possible,
you can take a look on your services or applications in detail .
Depending on the service you use on AWS the migration strategy might be a simple Relocate like for VMs but might also become
Replatform or Refactor
Have a look in this blog of us :
7 Cloud migration strategies
And keep in mind, cost might be one more factor to migrate, see the comparison above.
If you need help for your analysis or migration, you can contact us,
we would proudly help to get your architecture save and up to date with all best practices .
Contact us