SCC

Brasil

os cloud gurus

Software Cloud Consulting

Your software development, cloud, consulting & shoring company

Migrate from AWS to Hetzner


7

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
hetzner-proj

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:
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:
menu
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


  • Back to Blog Overview
  • Autor


    ...

    Wolfgang Unger

    AWS Architect & Developer

    6 x AWS Certified

    1 x Azure Certified

    A Cloud Guru Instructor

    Certified Oracle JEE Architect

    Certified Scrum Master

    Certified Java Programmer

    Passionate surfer & guitar player