Oracle Cloud vs Hetzner Cloud
Oracle Cloud is a big general cloud with GPUs, Windows, Mac servers, nested KVM on some shapes and regions on every continent. Hetzner Cloud rents simple Linux servers by the hour from Germany, Finland, the US and Singapore, with no nested virtualization and a server that bills until you delete it.
The companies and products
Oracle Cloud
Oracle Cloud Infrastructure (OCI) is Oracle's general-purpose cloud: compute, storage, networking, databases and AI services in regions around the world.
OCI Compute rents virtual machines and bare metal servers on x86 (AMD, Intel) and Arm (Ampere), plus GPU machines and Mac servers. You pick a shape, an OS image, a network and a disk, and then install and run everything inside the VM yourself. It is not a sandbox product, so this page compares the part that overlaps: running agent code on a VM.
Hetzner Cloud
Hetzner is a German hosting company founded in 1997; Hetzner Cloud rents virtual servers, storage and networking by the hour.
A Hetzner Cloud server is a Linux VM picked from shared vCPU lines (cost-optimized CX and CAX, regular CPX) or dedicated vCPU (CCX), with local NVMe disk, a public IP and up to 20 TB of traffic in the EU. You add volumes, private networks, firewalls and load balancers, and run everything yourself through the Console, the Cloud API, the hcloud CLI or Terraform. It is general infrastructure, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine.
Which use cases each one fits
For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “Cheapest of 364” means no of the other 363 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.
| Use case and its workload | Oracle Cloud: price rank | Hetzner Cloud: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Oracle Cloud can run Android emulators and VMs inside the agent's machine on E5 and Standard3 Flex shapes, Hetzner cannot at all; boat has /dev/kvm, Docker and coding agents ready. | 58th of 367, with limits $413 a month | 46th of 367, with limits $287 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 100th of 366, with limits $376 a month | 94th of 366, with limits $325 a month | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Oracle's burstable VMs make tiny code runs cheap, while Hetzner bills each started hour in full; on both, every run waits for a full VM boot. | 51st of 345, with limits $16 a month | 156th of 345, with limits $649 a month | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Neither gives you a sandbox layer for your users, so you build URLs, cleanup and limits yourself on both; boat ranks 1st with a sandbox and HTTPS URL per user by API. | 31st of 361, with limits $115 a month | 46th of 361, with limits $314 a month | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month Oracle Cloud ranks 7th for rollout fleets on price, as long as your tenancy limits are raised; Hetzner's hourly rounding makes short rollouts cost far more. | 7th of 360, with limits $679 a month | 104th of 360, with limits $6,490 a month | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month Oracle Cloud ranks 1st here at $136 a month against $1,010 on Hetzner, because Hetzner bills every started hour of a short eval in full; boat ranks 10th at $200 a month. | Cheapest of 364 $136 a month | 51st cheapest of 364 $1,010 a month | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month Short CI jobs favor Oracle Cloud over Hetzner, which bills a ten-minute job as a full hour; boat ranks 4th and ships Docker and /dev/kvm on every machine. | 6th cheapest of 377 $102 a month | 83rd cheapest of 377 $788 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Both fit a 24/7 dev box: Oracle Cloud ranks 2nd, partly thanks to its Always Free Arm allowance, and Hetzner Cloud is a classic always-on server with a monthly price cap. | 2nd cheapest of 368 $12 a month | 32nd cheapest of 368 $42 a month | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Neither Oracle nor Hetzner servers come with a desktop stream, so you install and expose one yourself; boat streams a 60fps desktop with Chromium and computer use. | 75th of 369, with limits $97 a month | 134th of 369, with limits $320 a month | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 154th of 367, with limits $49 a month | 227th of 367, with limits $312 a month | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 150th of 346, with limits $32 a month | 157th of 346, with limits $62 a month | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 35th of 338, with limits $642 a month | 45th of 338, with limits $1,248 a month | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 102nd of 360, with limits $26 a month | 114th of 360, with limits $52 a month | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Oracle Cloud | Hetzner Cloud | boat |
|---|---|---|---|
| What you get | A general cloud VM or bare metal server that you set up yourself | A general Linux VM that you set up and run yourself | A sandbox VM made for agents, created and driven by API |
| Isolation | Every VM has its own kernel on a KVM hypervisor; bare metal also available | Every server is a full VM with its own kernel | Every sandbox is a full VM with its own kernel |
| CPU speed (Node.js build-and-test, 4 vCPU / 8 GB) | Not measured | 8.88 runs/s on a shared CX33; CPX and CCX not measured | 26.69 runs/s on dedicated AMD Ryzen 9 9950X (Zen 5) hosts |
| Docker and nested virtualization | Root on every VM, Docker is yours to install; nested KVM documented on E5 and Standard3 Flex VMs, not on Ampere Arm VMs | Root and Docker; nested virtualization is "not possible on cloud server" | Docker, root, systemd and /dev/kvm ready on every machine |
| Stopping | Stopping a standard VM pauses compute billing; the boot volume is billed until you delete it | A powered-off server bills at the full rate until you delete it | A stopped sandbox costs nothing and keeps its disk |
| Snapshots and backups | Backups run by hand or on a schedule | Snapshots you take yourself, or daily backups in 7 slots for 20% of the server price | Automatic snapshots every minute and on stop |
| Fork | Make a custom image of the boot disk; imaging a running VM shuts it down for several minutes | Take a snapshot, then create a new server from it | Fork a running sandbox while it keeps running |
| Desktop and computer use | No desktop on Compute VMs; OCI Secure Desktops is a separate product | None built in; a VNC console for admin | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Coding agents | None preinstalled | None; you install and drive agents yourself, for example over SSH | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping keys out of the machine | Secrets live in OCI Secret Management and the VM fetches them, so the key ends up inside | No credentials proxy; secrets go on the server through cloud-init, files or env vars | AI credentials proxy for model providers and any HTTPS API you register; switch a credential to another account when credits run out |
| Reaching the machine | Public IPv4 and any port you open; HTTPS through your own server or a load balancer | Public IPv4 and IPv6 on any port; HTTPS needs your own certificates or a paid load balancer | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP |
| Network rules | Security lists and network security groups by IP range, protocol and port; domain filtering through OCI Network Firewall | Free Cloud Firewalls with inbound and outbound rules by IP, port and protocol | Open internet on every plan; no provider-side allowlist |
| GPUs, Windows, macOS and Arm | Nvidia and AMD GPUs, Windows Server images, Mac servers and Ampere Arm VMs | Linux only, with Arm CAX servers; no GPUs | Linux x86 only; Wine for Windows apps; no GPUs |
| Regions | Americas, Europe, the UK, Asia, the Middle East, Africa and Australia, plus government clouds | Germany and Finland, plus Ashburn, Hillsboro and Singapore | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Oracle Cloud | Hetzner Cloud | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | No | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | No | No |
| Wake on request | No | No | No |
| HTTPS preview URLs | No | No | Yes |
| Raw TCP inbound | Yes | Yes | Yes |
| Public IPv4 | Yes | Yes | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | Yes | No | No |
| Windows | Yes | No | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | No | Yes |
| Usage per sandbox (API) | Yes | No | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | No | No |
| HIPAA | Yes | No | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
In StarSling's public benchmark at 4 vCPU / 8 GB, boat did 26.69 Node.js build-and-test runs per second on dedicated AMD Ryzen 9 9950X hosts. The only Hetzner number is 8.88 runs per second on a shared CX33, about a third of boat's speed; CPX and CCX servers were not measured. Oracle Cloud has no comparable measurement, and its burstable shapes guarantee only part of each vCPU.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Hetzner Cloud measured on: Shared vCPU, Cost-Optimized (CX, Intel/AMD), EU. Oracle Cloud has no published run in this suite yet, so there is no like-for-like number to compare.
Pricing in five scenarios
Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.
| Scenario | Oracle Cloud, a month | Hetzner Cloud, a month | boat, a month |
|---|---|---|---|
| One coding agent, workdays 4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days | $5 · Usage account · with limits | $3 · Pay-as-you-go (postpaid) · with limits | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $15 · Usage account · with limits | $10 · Pay-as-you-go (postpaid) · with limits | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $203 · Usage account · with limits | $141 · Pay-as-you-go (postpaid) · with limits | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $49 · Usage account · with limits | $312 · Pay-as-you-go (postpaid) · with limits | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $97 · Usage account · with limits | $2,080 · Pay-as-you-go (postpaid) · with limits | $2,000 · $2000/mo · with limits |
Oracle Cloud: Oracle bills per OCPU hour and per GB hour of memory while a VM runs, plus the boot disk until you delete it, and the first 10 TB of outbound data each month is free. The prices here use burstable E4 VMs billed at a 12.5% CPU baseline, so they sit far below a full-speed VM.
Hetzner Cloud: Hetzner bills each server by the hour, rounding every started hour up, with a monthly cap, and keeps billing until you delete it, even when it is off. The prices here use the cheapest CX servers, which are out of stock; CPX and CCX cost more per hour.
Hetzner Cloud: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
No Oracle or Hetzner row fits as priced. Oracle's prices use burstable VMs guaranteed only 12.5% of each vCPU, so a busy agent gets throttled, and a new tenancy starts with default or trial service limits that need an approved increase for 50 agents or 1,000 jobs. Hetzner's prices use the CX line, which its site marks as currently unavailable, its per-project server limits are raised by a request reviewed by hand, and short jobs are billed a full hour each. On boat the 1,000-job burst needs more starts per day than the $2,000 plan allows, and starts above 90 a minute are queued.
| Scenario | Oracle Cloud | Hetzner Cloud | boat |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
|
| None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Oracle Cloud when
you need GPUs, Windows, macOS, nested KVM on x86 shapes, regions outside Europe and the US, or a free Arm box, and you are ready to build the sandbox layer yourself.
- GPUs, Windows, Mac and nested KVM. Useful if agents need GPUs, Windows, macOS or VMs inside their machine: Oracle rents all of these, Hetzner Cloud none.
- Stops that pause compute billing. Useful for machines that sit idle: a stopped standard Oracle VM pays only for its disk, while Hetzner bills a powered-off server in full.
- A free always-on Arm box. Useful for one small personal box: Oracle's Always Free tier covers a modest Arm VM every month, which Hetzner does not offer.
Use Hetzner Cloud when
you want plain long-lived Linux servers with a simple hourly price and monthly cap, big dedicated machines or free outbound firewalls, and you run everything yourself.
- Simple servers, simple bills. Useful if you want a plain Linux server: one hourly price with a monthly cap and up to 20 TB of EU traffic included.
- Big dedicated machines. Useful for heavy single machines: dedicated CCX servers go up to 48 vCPU and 192 GB of memory.
- Free outbound firewalls. Useful if a machine must reach only a few addresses: free Cloud Firewalls drop all other outbound traffic once you add a rule.
Where boat fits
Oracle Cloud and Hetzner Cloud both rent general VMs, and neither is an agent sandbox. If what you are really running is agents, boat gives each one a full VM that is ready to work: /dev/kvm, coding agents, a desktop, HTTPS ports, snapshots every minute and forks, with no sandbox layer for you to build.
VMs inside every machine
Hetzner says nested virtualization is not possible on its cloud servers, and Oracle documents it only on E5 and Standard3 Flex VMs, not Arm. boat has /dev/kvm on every machine, so emulators and Firecracker just run.
Idle agents keep every minute of work
A powered-off Hetzner server bills in full, and an Oracle VM keeps billing its boot disk; both back up by hand or on a schedule. boat saves the disk every minute, stops for free and forks a running sandbox.
Agents ready to drive from outside
Both start as an empty OS, so you install each agent, a desktop stream and the API key, which the agent's code can then read. boat ships coding agents, a 60fps desktop and a credentials proxy, on CPUs about three times faster than Hetzner's CX33.
Use boat when what you are really running is agents and you want each one on a full VM that already has /dev/kvm, Docker, coding agents, a desktop, HTTPS ports, snapshots every minute, forks and free stops. Compare it one to one: boat vs Oracle Cloud and boat vs Hetzner Cloud.
Questions people ask
Is Oracle Cloud cheaper than Hetzner Cloud?
It depends on how long machines run. For long sessions Hetzner is lower: one agent on workdays is $3 a month against $5, and 50 agents in parallel $141 against $203. For short jobs Oracle wins by far, because Hetzner bills every started hour: 1,000 short jobs at once come to $97 on Oracle against $2,080 a month on Hetzner. As priced, Oracle's VMs are throttled burstable shapes and Hetzner's CX servers are out of stock.
Which is faster, Oracle Cloud or Hetzner Cloud?
There is no comparable measurement for Oracle Cloud. Hetzner's shared CX33 did 8.88 Node.js build-and-test runs per second at 4 vCPU / 8 GB, against 26.69 for boat. Oracle's speed depends on the shape you pick, and burstable shapes guarantee only part of each vCPU.
Can Oracle Cloud and Hetzner Cloud run Docker and nested virtualization?
Both give you root on a full VM, so Docker works once you install it. Oracle documents nested KVM on E5 and Standard3 Flex VMs, not on Ampere Arm VMs; Hetzner says nested virtualization is not possible on its cloud servers. boat has Docker, systemd and /dev/kvm on every machine.
Do I pay for a stopped server?
On Hetzner, yes: a server bills at the full rate until you delete it, even when it is off. On Oracle, stopping a standard VM pauses compute billing, but the boot volume is billed until you delete it. On boat, a stopped sandbox costs nothing and keeps its disk.
Which has GPUs, Windows or macOS?
Oracle Cloud rents Nvidia and AMD GPUs, Windows Server VMs, Mac servers and Ampere Arm VMs. Hetzner Cloud runs Linux only, with Arm CAX servers and no GPUs. boat runs Linux on x86 only, with no GPUs.
Where does my data run?
Oracle Cloud has regions across the Americas, Europe, Asia, the Middle East, Africa and Australia. Hetzner Cloud runs in Germany and Finland, plus Ashburn, Hillsboro and Singapore. boat runs only in the EU (Germany, Finland and France), with EU data residency.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Oracle Cloud
- boat vs Hetzner Cloud
- AWS EC2 vs Oracle Cloud
- Google Compute Engine vs Oracle Cloud
- Azure Virtual Machines vs Oracle Cloud
- Oracle Cloud vs DigitalOcean
- Oracle Cloud vs Vultr
- Oracle Cloud vs Linode
- Oracle Cloud vs Scaleway
- Oracle Cloud vs OVHcloud
- Oracle Cloud vs IONOS Cloud
- Oracle Cloud vs Contabo