Originally published on moveinfra.eu.
To estimate how much you can save by moving from AWS to a European cloud provider, export your detailed AWS invoice, group the line items into core categories (compute, storage, database, network), map each resource to its equivalent by vCPU, RAM, and gigabytes, and compare your net discounted AWS spend against European public list prices. If you want an immediate estimate without building a spreadsheet, you can upload your AWS bill export to our free Bill Analyzer, which calculates the equivalent monthly cost on UpCloud, Hetzner, Scaleway, and OVHcloud directly in your browser so the file never leaves your device.
Key takeaways
- Look past headline compute rates: While virtual machines on European clouds are often lower in price than AWS on-demand instances, the largest cost reductions frequently come from eliminating internet egress and NAT gateway fees.
- Compare net spend, not list prices: If your company uses AWS Savings Plans, Reserved Instances, or Enterprise Discount Programs, compare the European provider's price against your actual discounted AWS bill, not AWS on-demand rates.
- Account for missing managed services: Some lower-cost providers do not offer managed databases or managed Kubernetes. You must factor in the engineering time or extra virtual machines required to run those services yourself.
- Savings vary widely by architecture: Standard web applications with high outbound traffic usually see substantial savings, while workloads tied to proprietary services like DynamoDB or BigQuery require refactoring that changes the financial calculation.
Why AWS bills are difficult to compare by hand
An AWS invoice rarely gives you a clean list of servers and hard drives. Instead, a single application might generate dozens of billing lines across EC2, EBS, RDS, S3, Elastic Load Balancing, and Data Transfer.
AWS also separates the cost of a resource from the cost of using it. When you run a virtual machine on EC2, you pay for the compute hours, the attached EBS boot volume, the provisioned IOPS if you exceed the baseline, the public IPv4 address, the NAT gateway processing fees, and every gigabyte of data sent out to the internet.
European infrastructure providers—such as UpCloud, Scaleway, OVHcloud, and Hetzner—generally bundle more of these elements together. Bandwidth allowances are frequently included with the server, and network architectures tend to require fewer billable middleboxes. Because the billing structures differ, estimating your savings requires translating your AWS usage metrics into raw hardware and bandwidth specifications before looking at prices.
A 6-step method to estimate your European cloud cost
If you are building a business case for a CFO or engineering lead, a back-of-the-envelope guess is not enough. Follow these six steps to build a defensible cost comparison.
Step 1: Export a detailed month of AWS billing data
Do not use the high-level summary on the first page of your AWS PDF invoice. It groups costs by service name without showing instance sizes or data volumes.
Go to the AWS Billing and Cost Management console and open Bills. Select the most recent full calendar month that represents normal traffic for your business (avoid seasonal peaks or months where you ran one-off data migrations). Expand the Charges by service section to see the regional breakdown and exact usage quantities—such as BoxUsage:m6a.xlarge measured in hours, or DataTransfer-Out-Bytes measured in gigabytes. You can also export a CSV from AWS Cost Explorer grouped by Usage Type and Service.
For a faster alternative, you can drop your billing export into our free Bill Analyzer. It parses the usage quantities locally in your browser—meaning your billing data is never uploaded to a server—and maps them to European cloud prices automatically.
Step 2: Group line items into five core buckets
Filter out non-infrastructure costs like AWS Marketplace software subscriptions, domain registrations, and support plans (we will deal with support in Step 5). Group the remaining technical line items into five buckets:
- Compute: EC2 instances, Fargate vCPU/memory hours, and EKS control plane fees.
- Databases and caches: RDS instances, ElastiCache nodes, and database storage.
- Storage: EBS volumes, EBS snapshots, and S3 buckets.
- Networking and load balancing: Application Load Balancers (ALB), Network Load Balancers (NLB), NAT Gateways, public IPv4 addresses, and all Data Transfer Out lines.
- Cloud-native and proprietary services: SQS, SNS, Lambda, DynamoDB, Redshift, CloudWatch.
Convert hourly figures into monthly counts. In cloud billing, a standard month is 730 hours. If an EC2 usage line shows 2,920 hours of m6a.xlarge in a month, divide 2,920 by 730 to find that you are running four continuous instances.
Step 3: Map AWS resources to European equivalents by specification
Never map cloud servers by marketing tier names. An "extra large" or "general purpose" instance means different things on different platforms. Map every resource strictly by its underlying hardware specification:
- vCPU count and architecture: Check whether your AWS instances use x86 (Intel/AMD, such as
m6iorm6a) or ARM (m7gGraviton). Match the exact number of vCPUs. - Memory (RAM): Match the gigabytes of RAM. If a European provider does not have an exact match (for example, offering 4 vCPU with 8 GB or 16 GB, while your workload uses 12 GB), always round up to the next size to avoid memory starvation.
- CPU allocation (Shared vs. Dedicated): AWS
t3andt4ginstances use burstable, shared CPUs, whereasm6aandc6iuse dedicated resources. When pricing European clouds, compare AWSmorcseries against dedicated vCPU plans (like Hetzner CCX, Scaleway PRO2/GP1, OVHcloud b3, or UpCloud Premium), not against cheap shared-CPU starter plans.
You can use our EU Cloud Map to see which European services correspond directly to AWS compute, storage, and managed database tiers.
Step 4: Apply public list prices
Once you have a clean bill of materials (for example: four 8 vCPU / 32 GB servers, one 2 vCPU / 8 GB managed PostgreSQL database, 2 TB of block storage, and 10 TB of egress), apply the target provider's list prices.
The table below shows approximate public list prices as of 2026 (fetched 28 October 2026 from our open-data EU Cloud Price Index). All figures are in EUR per month, excluding VAT, with no discounts or commitments, converting USD at the ECB rate of 1.1133. A month is calculated at 730 hours or the provider's monthly cap (672 hours for UpCloud), comparing AWS Frankfurt (eu-central-1) against European providers. Always check each provider's official pricing page for current rates before finalizing your budget.
| Resource Category | AWS (Frankfurt) | Hetzner | OVHcloud | Scaleway | UpCloud |
|---|---|---|---|---|---|
| Server: 2 vCPU, 8 GB | €67.86 (m6a.large) | €42.99 (CCX13) | €37.38 (b3-8) | €40.95 (PRO2-XXS) | €38.00 (PREMIUM-2xCPU-8GB) |
| Server: 4 vCPU, 16 GB | €135.73 (m6a.xlarge) | €85.99 (CCX23) | €74.68 (b3-16) | €67.76 (GP1-XS) | €92.00 (PREMIUM-4xCPU-16GB) |
| Server: 8 vCPU, 32 GB | €271.46 (m6a.2xlarge) | €138.49 (CCX33) | €149.36 (b3-32) | €139.24 (GP1-S) | €192.00 (PREMIUM-8xCPU-32GB) |
| Server: 16 vCPU, 64 GB | €542.93 (m6a.4xlarge) | €275.99 (CCX43) | €298.72 (b3-64) | €279.97 (GP1-M) | €384.00 (PREMIUM-16xCPU-64GB) |
| Block storage: 1 TB SSD | €85.50 (EBS gp3) | €44.00 (Volumes) | €86.00 (High-speed) | €94.90 (5K) | €220.00 (MaxIOPS) |
| Object storage: 1 TB | €22.00 (S3 Standard) | €6.40 (Object Storage) | €14.00 (Standard 3-AZ) | €16.10 (Multi-AZ) | €20.00 (Managed) |
| Managed Load Balancer | €17.70 (ALB) | €7.49 (LB11) | €6.00 (Octavia Small) | €16.79 (LB-S) | €30.00 (Production S) |
| Managed K8s control plane | €65.57 (EKS Standard) | No managed offer | €65.70 (MKS Standard) | €80.30 (Dedicated-4) | €60.00 (Production) |
| Managed PostgreSQL: 2 vCPU, 8 GB | €131.14 (db.m7g.large) | No managed offer | €143.15 (Essential B3-8) | €80.30 (DB-PRO2-XXS) | €60.00 (rdb.standard) |
| Internet egress: 1 TB (1 server) | €72.72 | €0.00* | €0.00* | €0.00* | €0.00* |
| Internet egress: 10 TB (1 server) | €799.92 | €0.00* | €0.00* | €0.00* | €0.00* |
*Note on €0.00 egress: On these European providers, €0.00 means there is no excess bandwidth fee for 1 TB or 10 TB within the included traffic allowances and fair-use terms of their standard servers. Always check each provider's specific bandwidth limits and port speed terms.
As the table shows, price dynamics vary by component:
- Compute and Egress: Dedicated virtual machines and outbound internet traffic are consistently less expensive on European clouds than AWS on-demand list prices. For example, 10 TB of internet egress from a single server costs approximately €799.92 on AWS as of 2026, while falling within the included €0.00 traffic allowance on Hetzner, OVHcloud, Scaleway, and UpCloud.
- Storage and Managed Services: High-performance block storage on UpCloud (€220.00 for 1 TB MaxIOPS) or Scaleway (€94.90 for 1 TB 5K) is higher than AWS EBS
gp3base capacity (€85.50). Similarly, OVHcloud's Essential B3-8 managed PostgreSQL (€143.15) is slightly higher than an AWSdb.m7g.largesingle-AZ instance (€131.14). You must price the entire stack together rather than cherry-picking individual lines.
Step 5: Add what is missing (Self-managed overhead, HA, and support)
A common mistake in migration estimates is comparing a highly available, fully managed AWS setup against a bare-bones virtual machine setup. Adjust your European cloud estimate for three factors:
- Unmatched managed services: Notice in the table above that Hetzner has no managed Kubernetes or managed PostgreSQL offer. If you move an AWS RDS database to Hetzner, you must provision virtual machines, configure replication (such as Patroni), set up automated backups to object storage, and handle patching yourself. Even if the raw server is cheap, your team takes on operational risk and maintenance hours.
- High availability (Multi-AZ): Check if your AWS RDS or Load Balancer lines are Multi-AZ. If your AWS database is Multi-AZ, ensure the European equivalent you price includes a standby node, rather than comparing a two-node AWS cluster against a single-node European database.
- Support plans: AWS charges a percentage of your monthly bill for Developer, Business, or Enterprise Support. Some European providers include basic ticket support for free and charge fixed monthly tiers for 24/7 phone support and SLA response times. Add the appropriate support tier to both sides of your sheet.
Step 6: Compare against your net AWS spend
Before calculating the difference, look at the bottom of your AWS bill for Savings Plans, Reserved Instances, or Enterprise Discount Program (EDP) credits.
If you are comparing European list prices against AWS on-demand prices, your estimate will look artificially high if your company actually pays 25% to 40% less on AWS due to 1-year or 3-year commitments. Conversely, remember that many European providers also offer committed-use discounts or monthly billing caps if you are willing to lock in capacity.
When we combine a typical web application stack—including compute, a 2 vCPU / 8 GB managed PostgreSQL database, block and object storage, a load balancer, and moderate traffic—our benchmark example stack in the EU Cloud Price Index totals approximately (as of 28 October 2026):
- AWS: €774.30 / month (on-demand list price)
- UpCloud: €496.00 / month (with managed PostgreSQL)
- OVHcloud: €430.19 / month (with managed PostgreSQL)
- Scaleway: €363.92 / month (with managed PostgreSQL)
- Hetzner: €336.85 / month (no managed PostgreSQL; self-run on a 2 vCPU, 8 GB server)
Your own workload will differ depending on your ratio of compute to storage and how much data you send over the internet.
Checklist: Common hidden costs in an AWS-to-EU estimate
Use this checklist to verify your spreadsheet before presenting it to leadership:
- [ ] NAT Gateway processing fees removed? On AWS, you pay an hourly fee plus a per-gigabyte processing fee for every gigabyte passing through a NAT Gateway. Most European clouds provide simpler private networking or free virtual routers where these per-gigabyte internal routing charges do not exist.
- [ ] Cross-AZ traffic accounted for? AWS charges for data transferred between Availability Zones in the same region (for example, between EC2 nodes and RDS in different AZs). Check whether your target European provider charges for internal private network traffic.
- [ ] Public IPv4 addresses counted? AWS charges approximately $0.005 per hour ($3.65/month) per public IPv4 address. Check if your target provider includes one IPv4 per server or charges a separate monthly fee.
- [ ] Commitments expiration dates checked? If you have active AWS Compute Savings Plans, you will continue paying that hourly commitment to AWS until the term expires, even if you move the servers away tomorrow.
- [ ] Migration and parallel-run costs budgeted? During a migration, you will briefly run infrastructure on both clouds at once to sync databases and test deployments. Under EU Data Act Article 34, providers may still charge at cost for parallel services.
Do not forget switching and egress fees
When calculating the return on investment (ROI) of a cloud migration, you must compare your monthly savings against the one-time cost of moving. Historically, AWS charged steep data egress fees to copy terabytes of S3 buckets and RDS databases out to another provider.
Under the EU Data Act (Regulation (EU) 2023/2854, Article 29), cloud providers cannot profit from switching fees: data egress charges for switching may be billed at no more than actual cost until 12 January 2027, and switching charges (including egress for switching) are completely banned starting 12 January 2027.
Furthermore, as of 2026, major clouds operate specific exit waiver programs:
- AWS waives data transfer out fees when a customer moves all data off AWS, or all data out of a specific AWS service, provided you contact AWS Support in advance for approval. European customers can also invoke switching terms under the AWS EU Data Act Addendum.
- Google Cloud and Azure have similar exit credit programs when terminating service agreements (and for comparable stacks in our index, Azure totals €764.76 and Google Cloud €746.58 as of 28 October 2026).
Always verify the current program terms on AWS's official pricing and legal pages before initiating a transfer. You can estimate your one-time transfer costs and generate a formal switching notice using our free Cloud Exit Fee Calculator.
Frequently asked questions
Can I just multiply my AWS bill by a percentage to estimate savings?
No. Anyone promising a flat percentage reduction without looking at your bill is guessing. A media company paying €3,000 a month mostly in AWS CloudFront and EC2 data egress will see a completely different savings profile than a SaaS company paying €3,000 a month for heavily discounted Reserved Instances and DynamoDB tables.
How do I price AWS proprietary services like DynamoDB, SQS, or Lambda?
If you use serverless functions or queues at low volumes, the cost on your AWS bill is often just a few euros. However, moving them to a European cloud may require replacing them with open-source equivalents—such as running RabbitMQ or Redis for queues, or moving Lambda functions into containers on Kubernetes or managed container platforms (like Scaleway Serverless Containers). Price the compute required to host those replacements, and factor in the engineering time needed to adapt your code.
Why is block storage sometimes more expensive on European clouds than on AWS?
On AWS, the base price of gp3 EBS storage (€85.50 per TB as of 28 October 2026) includes a baseline of 3,000 IOPS and 125 MB/s throughput; if you need higher performance, AWS bills you extra per provisioned IOPS and MB/s. Some European providers, like UpCloud with its MaxIOPS storage (€220.00 per TB), only offer high-performance enterprise storage tiers by default rather than a slower baseline tier.
What if we want to stay on AWS and use the AWS European Sovereign Cloud?
The AWS European Sovereign Cloud keeps data and operations inside the European Union, which helps with operational residency requirements, but it still belongs to Amazon (a US jurisdiction company) and uses AWS's pricing model. Moving to the AWS Sovereign Cloud is a compliance decision, not a cost-reduction strategy.
Sources
- Regulation (EU) 2023/2854 (EU Data Act) on EUR-Lex
- AWS EC2 On-Demand Pricing
- UpCloud Pricing
- Scaleway Pricing
- OVHcloud Public Cloud Pricing
- Hetzner Cloud Pricing
Drafted with AI assistance and fact-checked by the MoveInfra team. The original, kept up to date, is at moveinfra.eu. Free tools for pricing a move to an EU cloud: moveinfra.eu/tools.

