Most bare metal vs cloud comparisons stop at the hourly rate, the smallest part of the answer. This post prices one steady workload both ways in Frankfurt: a rented AMD EPYC 9254 dedicated server against the closest Amazon EC2 instance, with storage, a one-year commitment and internet egress added. Every AWS figure comes from AWS's own price list and documentation, and the arithmetic is shown so you can use your own numbers.
What bare metal and cloud mean here
Bare metal, here, is a single-tenant physical server rented by the month: nobody else's workload runs on its processors, memory or disks. A cloud instance is a virtual machine on a provider's host, billed while it runs; Amazon EC2 bills per second, with a 60-second minimum.
The line is blurrier than the marketing suggests. AWS sells bare metal too: the M7a family includes m7a.metal-48xl, a 192-vCPU bare-metal instance. The real difference is the billing model: per second plus metered traffic, against a flat monthly price with an unmetered port.
A fair pairing in Frankfurt
The dedicated side is NexonHost's single AMD EPYC 9254: 24 cores and 48 threads, 128 GB of DDR5, two 1 TB NVMe drives in RAID 1 and a 1 Gbps unmetered port, for €449 a month. AMD sells the 9254 as a fourth-generation EPYC, and AWS's M7a family runs the same generation, which keeps the per-core comparison honest.
Matching by vCPU needs care. AWS states that every vCPU on an M7a instance is a physical core, with no simultaneous multithreading, while on the older M6a each vCPU is one thread of a core. The three plausible matches, Linux on-demand in eu-central-1 (Frankfurt):
| Machine | Cores / threads | RAM | Price |
|---|---|---|---|
| AWS m6a.12xlarge (3rd-gen EPYC) | 24 / 48 | 192 GiB | $2.484 an hour |
| AWS m7a.8xlarge (4th-gen EPYC) | 32 / 32 | 128 GiB | $2.22176 an hour |
| AWS m7a.12xlarge (4th-gen EPYC) | 48 / 48 | 192 GiB | $3.33264 an hour |
| NexonHost EPYC 9254 | 24 / 48 | 128 GB | €449 a month |
We use m7a.8xlarge: the same processor generation, the same 128 GiB of memory, and the cheapest of the three, so any error leans in AWS's favour. Neither side is strictly bigger: 32 full cores against 24 cores and 48 threads. Which runs your code faster only your own benchmark can tell you; we have not run one and will not guess.
The compute and storage bill
A 24/7 workload pays for every hour: 730 a month (8,760 hours in a year ÷ 12).
- On demand: $2.22176 × 730 = $1,621.88 a month.
- One-year EC2 Instance Savings Plan, no upfront payment: $1.46969 × 730 = $1,072.87, about 34% less, in exchange for committing to that hourly spend on the m7a family in Frankfurt for a full year.
M7a instances have no local disks, so storage is a separate line. The server's mirrored 1 TB NVMe pair gives 1 TB usable; the nearest AWS line is a 1,000 GB gp3 volume at $0.0952 per GB-month, or $95.20, with a baseline of 3,000 IOPS and 125 MiB/s included. A gp3 volume is a separate storage service, not drives inside the machine, so this is not like for like; 1 TB for 1 TB is the fairest line we can draw.
| Per month | AWS on demand | AWS 1-yr plan | NexonHost |
|---|---|---|---|
| Compute | $1,621.88 | $1,072.87 | €449, all in |
| 1,000 GB gp3 | $95.20 | $95.20 | Included |
| Total in USD | $1,717.08 | $1,168.07 | $503.15 |
| Total in EUR | €1,532.29 | €1,042.36 | €449 |
Euro figures use the ECB reference rate for 9 October 2026, €1 = $1.1206. Before any traffic, the instance costs 3.4 times as much as the server on demand and 2.3 times on the Savings Plan. A three-year plan cuts the instance to $1.00779 an hour; with the volume that is €741 a month, still 1.65 times the server, for a three-year commitment against a monthly one.
Egress: the line that decides most comparisons
Inbound traffic to EC2 is free; outbound is not. After the first 100 GB a month, free in aggregate across all AWS regions, Frankfurt egress to the internet is billed in bands:
| Outbound per month | Price per GB |
|---|---|
| First 10 TB (to 10,240 GB) | $0.09 |
| Next 40 TB (to 51,200 GB) | $0.085 |
| Next 100 TB (to 153,600 GB) | $0.07 |
| Over 150 TB | $0.05 |
The volumes below are decimal (1 TB = 1,000 GB), the same unit as the port ceiling further down:
- 10 TB: (10,000 − 100) × $0.09 = $891.00
- 50 TB: 10,240 × $0.09 + 39,660 × $0.085 = $921.60 + $3,371.10 = $4,292.70
- 100 TB: $921.60 + 40,960 × $0.085 + 48,700 × $0.07 = $921.60 + $3,481.60 + $3,409.00 = $7,812.20
On the dedicated server the same traffic costs nothing extra, up to what the port can physically carry: 1 Gbps × 2,592,000 seconds in a 30-day month ÷ 8 bits = 324 TB. Pushing 324 TB out of AWS Frankfurt would cost $20,086.20 at the rates above.
The port is a rate limit, though. 100 TB a month averages about 309 Mbps (100 TB × 8 ÷ 2,592,000 s), comfortable on a gigabit. If your peaks need more than 1 Gbps, the instance has the edge, though not its full 12.5 Gbps rating: AWS caps internet-gateway traffic at 5 Gbps, or half the rating on larger instances. On the 9254, a 10 Gbps port replaces the €80 gigabit for €800, making €1,169 a month. Unmetered Bandwidth vs Metered shows how to measure which side of that line you are on.
The whole month, side by side
Add egress to the totals above:
| Egress per month | AWS on demand | AWS 1-yr plan | NexonHost |
|---|---|---|---|
| Under 100 GB | €1,532 | €1,042 | €449 |
| 10 TB | €2,327 | €1,837 | €449 |
| 50 TB | €5,363 | €4,873 | €449 |
| 100 TB | €8,504 | €8,014 | €449 |
At 10 TB a month the egress alone, $891 or €795, costs more than the whole dedicated server. At 100 TB the cloud bill is about 18 to 19 times larger. Those multiples are this pairing's arithmetic, not a rule: change the instance, region or traffic and the ratio moves.
Left out: snapshots, load balancers, support plans and AWS's hourly charge for a public IPv4 address (the server includes one). Both sides include basic network-layer DDoS protection at no extra charge: AWS Shield Standard, and 40 Gbps / 4 Mpps at Layer 4 on every NexonHost dedicated build.
The same sum for 2× EPYC 9254
The dual-socket build has 48 cores, 96 threads, 256 GB and the same mirrored 1 TB NVMe pair, for €679 a month. The same-generation match on memory is m7a.16xlarge, 64 cores and 256 GiB, at $4.44352 an hour on demand or $2.93939 on the one-year Instance Savings Plan. With the same 1,000 GB gp3 volume:
- On demand: $4.44352 × 730 + $95.20 = $3,338.97, or €2,979.63
- Savings Plan: $2.93939 × 730 + $95.20 = $2,240.95, or €1,999.78
Against €679 that is 4.4 and 2.9 times as much, before any egress.
Where the cloud honestly wins
- Load that is not 24/7. Ignoring egress, the on-demand instance plus its volume costs the same as the €449 server ($503.15) at ($503.15 − $95.20) ÷ $2.22176 = 184 hours a month, about six hours a day. A batch job that runs a few hours a day, or a test environment switched off overnight, belongs in the cloud.
- Elastic, short-lived load. Per-second billing and autoscaling let you add twenty instances for a launch afternoon and stop paying a minute after. A rented server is a monthly commitment.
- Managed services. Managed databases, queues and multi-zone failover are a few clicks away. On bare metal you run them yourself or pay someone to; Managed vs Unmanaged Server Hosting prices that work.
- Speed of delivery. An instance is there when you launch it; the EPYC builds carry an estimated delivery of about two weeks. NexonHost's Xeon E5 v4 builds provision automatically in minutes, but Intel launched those processors in 2016 and they are slower per core than current cloud instances; Xeon vs EPYC sets out the trade.
- Bursts above a gigabit, as above.
The Savings Plan trims this list: a year's commitment to one instance family in one region gives up most of the flexibility the cloud charges for.
Where bare metal wins, in one table
Bare metal wins when the machine is busy all month, when traffic leaves it in volume, and when you want the same invoice every month. You also get the hardware itself: local NVMe, root on the host, your own hypervisor if you want one.
| Your workload | Lean towards |
|---|---|
| Busy 24/7 for months at a time | Bare metal |
| Runs under ~180 hours a month | Cloud, on demand |
| Sends 10 TB or more a month to the internet | Bare metal |
| Peaks above 1 Gbps, rarely | Cloud, or a bigger port |
| Needs managed databases or multi-zone failover | Cloud |
| Needs a new server today | Cloud, or a Xeon build |
| Must fit a fixed monthly budget | Bare metal |
| New product, demand unknown | Cloud first, move later |
Nothing stops you running both: the steady base on rented servers, the spikes in the cloud. If you do, traffic from AWS to your servers is internet egress, billed like any other, though EU customers may ask AWS for reduced rates in eligible cases under the European Data Act.
Bare metal from NexonHost
If the bare metal vs cloud arithmetic above looks like your workload, the bare metal servers page explains what single tenancy gets you, and every build with its price is on dedicated servers. The single EPYC 9254 is €449 a month and the dual €679 a month, both with a 1 Gbps port, 40 Gbps / 4 Mpps of Layer 4 DDoS protection and one IPv4 address included, and both available in Frankfurt. Port upgrades are on unmetered dedicated servers. The honest test is your own: start on a one-month term, run your workload next to the instance you use today, and compare the invoices.
Prices as of 12 October 2026, in EUR excluding VAT; check the product page. AWS prices change too, so re-run these sums before deciding.
Sources
- AWS Price List — Amazon EC2, eu-central-1 (CSV), publication 9 October 2026: Linux, shared tenancy, on-demand per hour for m7a.8xlarge $2.22176, m6a.12xlarge $2.484, m7a.12xlarge $3.33264, m7a.16xlarge $4.44352; gp3 storage $0.0952 per GB-month. Retrieved 12 October 2026.
- AWS Price List — Savings Plans, eu-central-1, publication 10 October 2026: EC2 Instance Savings Plan, no upfront: 1 year m7a.8xlarge $1.46969 and m7a.16xlarge $2.93939 an hour; 3 years m7a.8xlarge $1.00779 an hour. Retrieved 12 October 2026.
- AWS Price List — Data Transfer, eu-central-1 (CSV): internet egress bands $0.09 / $0.085 / $0.07 / $0.05 per GB, 100 GB a month free aggregated globally, inbound $0.00. Retrieved 12 October 2026.
- Amazon EC2 M7a instances — AWS product page: every M7a vCPU is a physical core, no SMT; M6a vCPUs are threads; m7a.metal-48xl; m7a.8xlarge 12.5 Gbps network bandwidth. Retrieved 12 October 2026.
- CPU options for supported instance types — AWS documentation: m6a.12xlarge 24 cores × 2 threads; m7a.8xlarge 32 cores × 1 thread. Retrieved 12 October 2026.
- Amazon EC2 pricing — AWS: per-second billing with a 60-second minimum. Retrieved 12 October 2026.
- Amazon EC2 On-Demand pricing — AWS: 100 GB of internet egress free each month aggregated across services and Regions; EU customers may request reduced data transfer rates for eligible use cases under the European Data Act. Retrieved 12 October 2026.
- Amazon EC2 instance network bandwidth — AWS documentation: multi-flow traffic through an internet gateway limited to 5 Gbps (under 32 vCPUs) or 50% of the instance's bandwidth (over 32 vCPUs). Retrieved 12 October 2026.
- Amazon VPC pricing — AWS: hourly charge for each in-use public IPv4 address. Retrieved 12 October 2026.
- General Purpose SSD volumes — Amazon EBS documentation: gp3 baseline of 3,000 IOPS and 125 MiB/s included in the storage price. Retrieved 12 October 2026.
- Savings Plans types — AWS documentation: EC2 Instance Savings Plans commit to an instance family in a chosen Region. Retrieved 12 October 2026.
- AWS Shield Standard overview — AWS documentation: network and transport layer protection for all AWS customers at no additional charge. Retrieved 12 October 2026.
- Euro foreign exchange reference rates, US dollar — European Central Bank: €1 = $1.1206 on 9 October 2026. Retrieved 12 October 2026.
- AMD EPYC 9254 — AMD product page: 4th generation EPYC, 24 cores / 48 threads, 2.9 GHz base. Retrieved 12 October 2026.
- Intel Xeon E5-2630 v4 specifications — Intel: launch Q1 2016. Retrieved 12 October 2026.
- NexonHost store configurator, single and dual AMD EPYC 9254: base price plus 1 Gbps port (€369 + €80, €599 + €80), 2× 1 TB NVMe RAID 1, port options, included DDoS tier. Retrieved 12 October 2026.
- Computed: hourly price × 730 hours; egress per band as shown; 1 Gbps × 2,592,000 s ÷ 8 = 324 TB; 100 TB × 8 ÷ 2,592,000 s ≈ 309 Mbps; USD ÷ 1.1206 = EUR; break-even ($503.15 − $95.20) ÷ $2.22176 = 183.6 hours.




