16C32G service provider for less than 50 euros a month – Hetzner review

After chatting with the CEO of Plausible Analytics a few months ago, I found a service provider like Hetzner. After a period of trying, I found that the experience was really good and I gradually migrated my infrastructure to Hetzner. I have been using it for almost half a year now. Here is a small brief review.

Hetzner Online GmbH is a company and data center operator based in Gunzenhausen, Germany.

Hetzner is a German service provider with its own Server Parks ( https://www.hetzner.com/unternehmen/rechenzentrum ). According to my personal observation, before LocalBitcoins switched to Sendgrid, Hetzner’s machine was used to send emails.

Personally, what appeals to me about Hetzner is the following.

Friendly Terraform Provider

Since I use Terraform a lot to manage my own infrastructure, Hetzner’s overall logic is a bit like DigitalOcean, unlike AWS, which has too many complex configurations about VPC, Subnet, and SG. For a relatively simple project, it is necessary to create corresponding internal In terms of network segment, intranet IP, and machine, the Terraform file is basically as simple as the following:

Machine configuration, set a stable intranet IP:

 resource "hcloud_server" "app_server" { name = "app_server" image = var.os_type server_type = "cpx21" location = "fsn1" ssh_keys = [hcloud_ssh_key.default.id] labels = { "clickhouse" = "true" } backups = true delete_protection = true rebuild_protection = true firewall_ids = [hcloud_firewall.server_firewall.id] } resource "hcloud_server_network" "app_network" { server_id = hcloud_server.app_server.id network_id = hcloud_network.nova_private.id ip = "10.1.0.10" }

Network segment settings:

 resource "hcloud_network" "app_private" { name = "app_private" ip_range = var.ip_range } resource "hcloud_network_subnet" "app_private_subnet" { network_id = hcloud_network.app_private.id type = "cloud" network_zone = "eu-central" ip_range = var.ip_range }

Default SSH:

 resource "hcloud_ssh_key" "default" { name = "app_pem_key" public_key = file("~/.ssh/new_id_rsa.pub") }

However, there is no way to upgrade the machine configuration through Terraform (this does not feel as good as AWS). To upgrade the machine, you need to manually shut down the machine and log in to the Web management page to click upgrade.

Intranet communication

Yes, you can connect instances from our locations in Falkenstein, Nuremberg and Helsinki to the same network

As long as it is under one intranet, Hetzner’s three European availability zones are interconnected within the intranet, and the traffic between them is free. For example, the delay from Finland to Germany is as follows:

 root@ubuntu-2gb-hel1-1:~# ping 10.0.0.3 PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data. 64 bytes from 10.0.0.3: icmp_seq=1 ttl=63 time=25.5 ms 64 bytes from 10.0.0.3: icmp_seq=2 ttl=63 time=23.9 ms 64 bytes from 10.0.0.3: icmp_seq=3 ttl=63 time=24.1 ms 64 bytes from 10.0.0.3: icmp_seq=4 ttl=63 time=23.9 ms 64 bytes from 10.0.0.3: icmp_seq=5 ttl=63 time=23.9 ms 64 bytes from 10.0.0.3: icmp_seq=6 ttl=63 time=23.9 ms

The speed test results are as follows:

 root@ubuntu-2gb-hel1-1:~# iperf3 -c 10.0.0.3 Connecting to host 10.0.0.3, port 5201 [ 5] local 10.0.0.2 port 40820 connected to 10.0.0.3 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 88.6 MBytes 743 Mbits/sec 265 3.99 MBytes [ 5] 1.00-2.00 sec 115 MBytes 965 Mbits/sec 0 3.99 MBytes [ 5] 2.00-3.00 sec 115 MBytes 965 Mbits/sec 0 3.99 MBytes [ 5] 3.00-4.00 sec 119 MBytes 996 Mbits/sec 0 3.99 MBytes [ 5] 4.00-5.00 sec 116 MBytes 975 Mbits/sec 0 3.99 MBytes [ 5] 5.00-6.00 sec 116 MBytes 975 Mbits/sec 0 3.99 MBytes [ 5] 6.00-7.00 sec 116 MBytes 975 Mbits/sec 0 3.99 MBytes [ 5] 7.00-8.00 sec 109 MBytes 912 Mbits/sec 271 2.86 MBytes [ 5] 8.00-9.00 sec 116 MBytes 975 Mbits/sec 0 3.00 MBytes [ 5] 9.00-10.00 sec 90.0 MBytes 755 Mbits/sec 317 1.51 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.08 GBytes 924 Mbits/sec 853 sender [ 5] 0.00-10.02 sec 1.07 GBytes 920 Mbits/sec receiver iperf Done. root@ubuntu-2gb-hel1-1:~# iperf3 -c 10.0.0.3 -R Connecting to host 10.0.0.3, port 5201 Reverse mode, remote host 10.0.0.3 is sending [ 5] local 10.0.0.2 port 40824 connected to 10.0.0.3 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 96.1 MBytes 806 Mbits/sec [ 5] 1.00-2.00 sec 114 MBytes 958 Mbits/sec [ 5] 2.00-3.00 sec 119 MBytes 1.00 Gbits/sec [ 5] 3.00-4.00 sec 67.5 MBytes 566 Mbits/sec [ 5] 4.00-5.00 sec 66.7 MBytes 559 Mbits/sec [ 5] 5.00-6.00 sec 68.2 MBytes 572 Mbits/sec [ 5] 6.00-7.00 sec 70.5 MBytes 591 Mbits/sec [ 5] 7.00-8.00 sec 73.2 MBytes 614 Mbits/sec [ 5] 8.00-9.00 sec 73.4 MBytes 616 Mbits/sec [ 5] 9.00-10.00 sec 59.8 MBytes 502 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.02 sec 812 MBytes 680 Mbits/sec 1099 sender [ 5] 0.00-10.00 sec 809 MBytes 678 Mbits/sec receiver iperf Done.

With such a structure, we can disperse the App (or K8s cluster) in different Regions, and then use the intranet to interconnect.

When will the intranet from Shenzhen to Hong Kong run like this and be free?

more friendly price

If the simple Terraform is available for most “The developer cloud”, then the price is also a very important factor. First of all, we can look at the prices of DigitalOcean that you use a lot.


Then compare the prices of Hetzner:


It can be seen that even with the configuration of 16Core and 32G, the price of Hetzner is controlled at less than 50EUR/mo. The similar configuration on the DO is the 8vCPUs of General Purpose Droplets, 32GB has reached 272USD/mo, and Hetzner gives all machines Gives 20TB of traffic.

(Note: Hetzner is also billed by the hour)

With such a high price/performance ratio, my first attempt was to use Hetzner’s machine as a Self-Hosted Runner in the previous ClickHouse test ” Comparison of the Performance Differences of ClickHouse Versions on Different CPU Architectures “. Throwing all of my heterogeneous (non-production) applications onto Hetzner.

shortcoming

Hetzner also has corresponding shortcomings, which are generally as follows for our regular users:

  1. The registration risk control is very strict. If you do not fill in the real information (and use the real IP, etc.), it is easy to be directly “Account is closed”, but generally speaking, it is relatively stable after a month of normal use and a successful payment. span
  2. The delay to the mainland area is very large (after all, European service providers), it is not suitable for building a website and directly analyzing it for use, but it is especially suitable for exposure through Cloudflare Argo Tunnel after starting the service.
  3. Compared with various “The developer cloud”, it lacks many facilities, such as Managed SQL, Managed K8s, etc. They only provide VM, Network, Disk, which are relatively primitive. For a typical production environment application (Managed K8s + various For Managed DB/Redis), there will be a large operation and maintenance cost.
  4. Had some weird glitches like https://news.ycombinator.com/item?id=31015840 , https://lowendtalk.com/discussion/178548/hetzner-data-loss-incident

Summarize

At present, I have migrated most of my own infrastructure (including but not limited to WebP Cloud Service , MagLink , GitHub Runner , etc.) to Hetzner, and I feel that the experience is good in my use case. If you want to give it a try, Welcome to follow my link to register: https://hetzner.cloud/?ref=6moYBzkpMb9s , so you can get 20EUR Credit directly after registration for playing.

This article is reprinted from https://nova.moe/hetzner-review/
This site is for inclusion only, and the copyright belongs to the original author.

Leave a Comment