Published on in cloud terraform eu

European Cloud Providers Compared: A Hands-On Terraform Test (January 2026)

Four European cloud providers tested so you don't have to. Onboarding, Terraform, and what you'll run into.

I tested four European cloud providers so you don’t have to. Signed up, added credit cards, deployed infrastructure with Terraform, hit the walls, found the workarounds.

Why European cloud now? The reasons keep stacking up. Post-Schrems II, data residency matters. GDPR compliance is easier when your data doesn’t leave the EU. And the geopolitical picture has shifted. Trump’s tariffs, trade tensions, and the broader push for what von der Leyen calls “European independence” aren’t just political talking points anymore. Reducing dependency on American hyperscalers is becoming practical risk management. As she put it at Davos: “The world has changed permanently. And we need to change with it.”

This follows my previous post on getting started with OpenTofu on OVH. Here’s how the alternatives stack up.

The Contenders

ProviderCountryFounded
OVHcloudFrance1999
HetznerGermany1997
ScalewayFrance1999
STACKITGermany2020
Microsoft AzureUSA2010

Azure is here as the baseline. It’s what most enterprises know, and it has EU regions. But EU regions don’t mean EU-owned infrastructure or EU legal jurisdiction over your data.

Short Version

Scaleway wins for developer experience and Terraform. OVH has the most services. Hetzner is cheapest but bare-bones. STACKIT wouldn’t let me in. Azure works fine but you’re back to US jurisdiction and hyperscaler complexity.

Onboarding

OVH: Sign up, add credit card, start deploying. They give you $200 free credits (in dollars, weirdly, not euros). The control panel works fine. I was deploying resources within 30 minutes.

Scaleway: GitHub login, nice wizard-style project setup. Feels like it was built by developers for developers. $100 free credit. The UI is clean and easy to navigate. Had my first resource up in under 20 minutes.

Hetzner: Quick signup. The console is minimal, which is actually nice after dealing with AWS or Azure. Some workflows need manual console steps though. Took about 45 minutes to get everything working due to some credential quirks.

STACKIT: Signed up, added my credit card, and then waited. Over 24 hours later they were still “verifying” my account. Then I got a rejection email citing a missing credit report. This has literally never happened to us anywhere. Not at any cloud provider, not at any SaaS. We have a legitimate company that’s existed for years and a valid credit card from a reputable bank. Very strange. While waiting for STACKIT I’d already moved on to testing other providers.

Azure (baseline): The baseline for most Dutch companies. Create Microsoft account, add payment, navigate through a maze of blades and resource groups. Works, but the console is overwhelming compared to the European alternatives. Takes a beginner longer to deploy a simple storage account than it took on Scaleway, just because of the UI/documentation complexity.

What Can You Actually Deploy?

Scaleway: Good balance between having enough and not being overwhelming. Managed databases (PostgreSQL, MySQL, Redis, ClickHouse coming), managed Kubernetes (Kapsule), managed Kafka, serverless functions, containers and jobs, object and block storage, load balancers, private networks, DNS. They also have an environmental footprint analyzer showing carbon impact of your infrastructure. Nice touch.

OVH: Broadest range of services. Managed Kubernetes, managed databases, object storage, compute via OpenStack, bare metal, vRack (private networking), web hosting, domains, CDN. The catch: you need multiple Terraform providers. One for OVH-specific stuff, one for OpenStack compute, sometimes the AWS provider for S3 operations. It’s messy.

Hetzner: Keeps it simple. Cloud servers (VMs), volumes (SSD storage), floating IPs, firewalls, load balancers, private networks, DNS zones, object storage (S3-compatible), storage boxes (network storage). No managed Kubernetes. No managed databases. No serverless. If you want Kubernetes on Hetzner, you need a third party like cloudfleet.ai. If you want managed services, look elsewhere. If you want cheap fast VMs and can manage everything yourself, Hetzner is great.

STACKIT: No idea. Couldn’t get in.

Azure: Everything. Managed Kubernetes (AKS), dozens of database options, serverless, AI services, you name it. That’s the advantage of a hyperscaler. The downside: you need a week to understand the service catalog, and another week to figure out IAM. Also, your data is subject to the US CLOUD Act regardless of which region you deploy to.

Terraform Experience

This is where the differences really show. All code examples are in our GitHub repo: github.com/wolkwork/eu-clouds-tofu.

Scaleway (provider: scaleway/scaleway): Really good. Documentation is thorough with clear examples. The credential generation flow even includes Terraform examples, which I’ve never seen at any other cloud provider. Had a bucket deployed with proper Terraform code in about 20 minutes. Works well with Claude Code too. One resource, done.

resource "scaleway_object_bucket" "main" {
  name   = "my-bucket"
  region = "fr-par"
}

Clean, simple, works.

OVH (provider: ovh/ovh): Works but you need to understand their multi-provider setup. API credential generation is manual but documented. Once it’s set up, it’s reliable. Main annoyance: different providers for different resource types. OpenStack for compute, OVH for managed services, AWS for some S3 stuff.

Hetzner (provider: hetznercloud/hcloud): Frustrating. Object Storage requires the MinIO provider because their own Terraform provider doesn’t include bucket management. You also need to manually generate S3 credentials in the console. There’s no API for this. So your workflow is: go to console, generate credentials, copy to .env, then run Terraform. Breaks the whole code-first approach.

The MinIO provider also has compatibility issues with Hetzner. Standard metadata that works elsewhere gets rejected. And error handling is rough. I got errors that turned out to be non-fatal: Terraform failed but the bucket deployed anyway.

Took about an hour to deploy a simple bucket, and I needed a lot of contextual knowledge to debug the issues. Not beginner-friendly.

# Hetzner requires MinIO provider for S3
provider "minio" {
  minio_server   = "fsn1.your-objectstorage.com"
  minio_user     = var.s3_access_key  # Must get from console manually
  minio_password = var.s3_secret_key  # Must get from console manually
  minio_ssl      = true
}

STACKIT: Couldn’t test.

Azure (provider: hashicorp/azurerm): Solid provider, well documented. But deploying anything requires understanding resource groups, subscriptions, tenants, service principals. A simple storage account needs more boilerplate than the entire Scaleway setup.

resource "azurerm_resource_group" "main" {
  name     = "my-resources"
  location = "West Europe"
}

resource "azurerm_storage_account" "main" {
  name                     = "mystorageaccount"
  resource_group_name      = azurerm_resource_group.main.name
  location                 = azurerm_resource_group.main.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

resource "azurerm_storage_container" "main" {
  name                  = "my-bucket"
  storage_account_name  = azurerm_storage_account.main.name
  container_access_type = "private"
}

Three resources for what Scaleway does in one.

Comparison Table

CriteriaScalewayOVHHetznerSTACKITAzure
Onboarding⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Service Catalog⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Managed K8s
Managed DBs
Terraform⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐?⭐⭐⭐⭐
UI/UX⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Free Credits$100$200NoneNone$200
PricingMidMidCheapestMidMost expensive
Code-First⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐?⭐⭐⭐⭐
EU Sovereignty

When to Choose Each

  • Scaleway: You want things to just work. Good Terraform support, managed services, clean UI.
  • OVH: You need the broadest European service catalog or you’re already in their ecosystem.
  • Hetzner: Price is everything and you can manage your own infrastructure.
  • STACKIT: You’re an enterprise with an existing relationship and German data sovereignty is a must.
  • Azure: You need services the European providers don’t offer, your organization already runs on Microsoft, or sovereignty isn’t a concern.

Bottom Line

Scaleway surprised me. Didn’t expect a European provider to nail the developer experience this well. For most teams, that’s where I’d start.

STACKIT rejecting us over a credit report was bizarre. Not a great sign if they want to compete seriously.

Need help with European cloud infrastructure? At Wolk we help organizations with sovereign cloud implementations. Reach out at hello@wolk.work.

Originally by Stijn Meijers on the Wolk Blog.

#_

This article was written by Stijn Meijers Founder & Data Architect at Wolk

Related posts

February 25, 2026

Your Data Lives in America: Why Europe Needs a Sovereign Data Platform

Europe has no independent data platform. Why digital sovereignty matters now and how DataBaas is building a European data platform.

January 19, 2026

Getting started with OpenTofu/Terraform on European Cloud OVH

Step by step: set up OVH API credentials and deploy your first Object Storage bucket on European infrastructure with Terraform or OpenTofu.