AWS EC2 vs OVHcloud
AWS EC2 and OVHcloud Public Cloud both rent general VMs by the second that you install and run yourself. EC2 has more regions, chip types, GPUs and macOS; OVHcloud is a French cloud with simpler, lower list prices on its shared Discovery instances.
The companies and products
AWS EC2
AWS EC2 is Amazon's general-purpose cloud VM service, not a sandbox product: you rent virtual servers by the second and set them up yourself.
You pick an instance type (Intel, AMD, Graviton Arm, GPU or Mac), a machine image and a network, and EC2 boots a Nitro VM with its own kernel and root access. Disks are EBS volumes, inbound traffic goes through security groups, and anything agent-specific (agents, desktops, HTTPS URLs, key handling) is yours to build. It is built for every kind of server workload, from websites to GPU training, across AWS's worldwide regions.
OVHcloud
OVHcloud is a French cloud provider; its Public Cloud rents OpenStack virtual machines, storage and networking by the second.
A Public Cloud instance is a Linux or Windows VM picked from families such as General Purpose (B3), Compute (C3), Memory (R3), GPU and the shared-resource Discovery range (D2). You run your own software on it, next to OVHcloud products like private networks, gateways, load balancers, Kubernetes and object storage, through a Control Panel, an API or OpenStack tools. 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. “5th cheapest of 364” means 4 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 | AWS EC2: price rank | OVHcloud: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both rent a plain VM, so on either one you build the agent setup, preview URLs and cloning yourself; boat ships them on every machine. | 87th of 367, with limits $775 a month | 90th of 367, with limits $814 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An always-on assistant fits both, but a stopped EC2 instance still bills its disk and IPv4, and a turned-off OVHcloud instance bills its full rate until deleted. | 114th of 366, with limits $646 a month | 136th of 366, with limits $934 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 Both bill by the second after a 1-minute minimum, so short runs suit them better than boat's start limits allow. | 102nd of 345, with limits $165 a month | 56th of 345, with limits $43 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 300 user sandboxes need EC2's default quota of 5 vCPUs per region raised, and go past OVHcloud's largest self-serve quota of 512 vCPU, so both need a request first. | 70th of 361, with limits $607 a month | 43rd of 361, with limits $299 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 EC2 fits large RL rollouts better: it can launch big fleets once your quota is raised, while OVHcloud quotas grow in steps and boat caps starts per day. | 13th of 360, with limits $830 a month | 27th of 360, with limits $1,280 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 EC2 and boat both fit agent evals fully, while OVHcloud is a compromise here; on EC2 you still build the harness and clean-up yourself. | 5th cheapest of 364 $177 a month | 99th of 364, with limits $231 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 | 21st cheapest of 377 $255 a month | 29th cheapest of 377 $300 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 59th cheapest of 368 $76 a month | 23rd cheapest of 368 $34 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 has a desktop or a computer-use API on Linux, so you install and stream one yourself; boat streams a 60fps desktop out of the box. | 103rd of 369, with limits $195 a month | 108th of 369, with limits $231 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 | 165th of 367, with limits $101 a month | 174th of 367, with limits $128 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 | 195th of 346, with limits $116 a month | 159th of 346, with limits $65 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 | 82nd of 338, with limits $2,046 a month | 47th of 338, with limits $1,290 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 | 108th of 360, with limits $45 a month | 120th of 360, with limits $64 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 Only EC2 is ranked here, with Nvidia GPUs up to H100 and H200; OVHcloud also rents L4 and L40S GPUs, and boat has no GPUs. | 25th cheapest of 98 $1,723 a month | 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 | AWS EC2 | OVHcloud | boat |
|---|---|---|---|
| What you get | A general cloud VM on AWS; you install and wire everything else | A general OpenStack VM on OVHcloud; you install and wire everything else | An agent sandbox: a full VM with agents, desktop, HTTPS URLs and snapshots set up |
| Isolation | Every instance is a Nitro VM with its own kernel | Every instance is a fully isolated VM with its own kernel | Every sandbox is a full VM with its own kernel |
| Docker and nested virtualization | Docker, root and systemd on any instance; /dev/kvm only on C8i, M8i, R8i and metal instances | Root and Docker; the vmx flag is passed, but OVHcloud warns a live migration can make the guest kernel panic | Docker, root, systemd and /dev/kvm on every machine, documented |
| Stopping | Stopping ends compute charges; EBS disks and public IPv4 keep billing | Turned-off and paused instances bill at the same rate; shelving frees compute and bills only a disk snapshot | A stopped sandbox costs nothing and keeps its disk |
| Snapshots | Manual EBS snapshots, or scheduled with Data Lifecycle Manager | On-demand instance backups, or a schedule such as daily backups | Automatic snapshots every minute and on stop |
| Pause and fork | Hibernation keeps memory for the same instance; a copy means making an image and booting a new instance | No memory pause; a copy means taking a backup and creating a new instance from it | Fork a running sandbox in one call (disk, no memory); resume reboots from disk |
| Coding agents and keys | None preinstalled; secrets and IAM role credentials are read from inside the instance | None preinstalled; secrets live on the instance or are fetched from inside it | Claude Code, Codex, OpenCode and more preinstalled with a prompt, steer and events API; credentials proxy for any HTTPS API |
| Desktop and computer use | Linux images have no desktop; Windows instances have Remote Desktop; no computer-use API | None built in; you install a desktop and connect over SSH or RDP | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Reaching the machine | Public IPv4 ($0.005 an hour) and any port through security groups; HTTPS needs your own domain and certificate | Public IPv4 on any port; HTTPS needs your own certificates or a load balancer | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP |
| Outbound network rules | Security groups per instance; domain allowlists with AWS Network Firewall or DNS Firewall (paid) | Security groups with outbound rules by IP range, port and protocol | Open internet on every plan; no provider-side allowlist |
| GPUs | Nvidia GPU instances from L4 and L40S up to H100 and H200 | Nvidia GPU instances such as L4 and L40S | None |
| Operating systems and CPUs | Linux and Windows on Intel, AMD and Graviton Arm; macOS on Mac Dedicated Hosts | Linux and Windows Server (license included); no Arm or macOS | Linux on dedicated AMD Ryzen 9 9950X (Zen 5) hosts; Wine for Windows apps |
| Regions | 39 regions worldwide, including several in the EU | Europe, Canada, the US, Singapore and Sydney, plus Local Zones | EU only: Germany, Finland, France |
| Starting quota | 5 vCPUs of On-Demand standard instances per region by default; raised with usage or on request | Raised in steps of 20, 50, 100 and 200 VMs by buying prepaid credit; more through support | 100 to 2,000 sandboxes by plan, plus limits on starts per minute, hour and day |
Every feature Battleships tracks (43)
| Feature | AWS EC2 | OVHcloud | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | Yes | 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 | Yes | Yes | Yes |
| Fork/clone | No | 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 | No | No | No |
| GPU | Yes | Yes | No |
| Windows | Yes | Yes | No |
| Arm64 | Yes | No | 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 | Not published | Yes |
| Usage per sandbox (API) | Yes | No | Yes |
| Audit logs | Not published | Not published | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for AWS EC2 or OVHcloud: neither was part of the public StarSling benchmark run we use. In that run, on 2026-09-29, boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. On EC2 speed depends on the instance family you pick, and OVHcloud's cheap Discovery (D2) instances share their CPU.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. AWS EC2 and OVHcloud have 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 | AWS EC2, a month | OVHcloud, 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 | $21 · Pay-as-you-go (no platform fee) | $8 · Usage account | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $51 · Pay-as-you-go (no platform fee) · with limits | $34 · Usage account | $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 | $944 · Pay-as-you-go (no platform fee) | $406 · Usage account | $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 | $269 · Pay-as-you-go (no platform fee) | $128 · Usage account · 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 | $502 · Pay-as-you-go (no platform fee) | $256 · Usage account · with limits | $2,000 · $2000/mo · with limits |
AWS EC2: EC2 bills each instance per second (60 second minimum) at its list rate, here the Graviton c7g sizes on demand, with no platform fee. EBS disks and public IPv4 addresses bill on top, also while stopped, and lower rates need a 1-year or 3-year commitment.
OVHcloud: OVHcloud bills every second an instance exists, after a 1-minute minimum, until you delete it; turned-off instances bill at the same rate. The prices here use the shared Discovery d2 instances; since October 2026, dedicated B3, C3 and R3 instances also bill local storage and a public IPv4 on top.
OVHcloud: 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
A new AWS account can run only 5 vCPUs of standard On-Demand instances per region, one 4 vCPU machine, so 50 agents or 300 user sandboxes need the quota raised first. OVHcloud raises quotas in steps up to 200 VMs by buying prepaid credit, and 300 user sandboxes or 1,000 short jobs at once go past its 512 vCPU, so those need support. EC2's always-on price needs a 3-year commitment. On boat, the 1,000-job burst does not fit: the $2,000 plan allows 90 starts a minute, 600 an hour and 2,400 a day.
| Scenario | AWS EC2 | OVHcloud | boat |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops |
| None that bite | None that bite |
| 50 agents in parallel | None that bite |
| None that bite |
| Sandboxes for your users | None that bite |
| None that bite |
| 1,000 short jobs at once | None that bite |
|
|
Which one should you use?
Use AWS EC2 when
you need GPUs up to H100, macOS or Arm, regions all over the world, or very large fleets once your quota is raised, and you have the people to build on a blank VM.
- Every chip, GPU and operating system. Useful if your work needs Arm, macOS or big GPUs: EC2 rents Graviton, Mac hosts and Nvidia H100 and H200 cards.
- Regions all over the world. Useful if your users are spread out: EC2 runs in 39 regions, many more places than OVHcloud reaches.
- Domain rules and memory hibernation. Useful if code may only reach chosen domains, or a machine must resume with its memory: EC2 does both.
Use OVHcloud when
you want lower list prices from a European provider, GPUs such as L4 and L40S, Windows servers, or long-lived servers next to Kubernetes and private networks in one cloud.
- Lower list prices. Useful if budget leads: OVHcloud came in below EC2 in every scenario we priced, using its shared Discovery instances.
- A European company with a wide cloud. Useful if you want a French provider with Kubernetes, private networks and object storage next to your servers.
- No commitment for an always-on server. Useful for a server that runs all month: OVHcloud's price needs no term, while EC2's lowest one needs three years.
Where boat fits
EC2 and OVHcloud are general clouds, and boat is not trying to be one: it has no GPUs, no Windows guests and runs only in the EU. If what you are really running is agents, each on its own Linux machine, boat gives you that machine ready, with agents, a desktop, HTTPS URLs and snapshots, instead of a blank VM you build on.
Reliable /dev/kvm on every machine
Agents that run emulators or their own VMs need KVM. On EC2 that means picking C8i, M8i, R8i or metal instances, and on OVHcloud a live migration you do not control can crash the guest kernel mid-run.
Free stops, and fork while running
Agents sit idle and branch often. A stopped EC2 instance still bills its disk and IPv4, a turned-off OVHcloud instance bills its full rate, and a copy on either means an image or backup plus a fresh boot.
Agents, desktop and keys handled from outside
On both clouds you install, prompt and watch every agent over SSH, add a desktop yourself, and the AI keys sit inside the machine. boat has agents with an API, a 60fps desktop and a credentials proxy built in.
Use boat when what you run is agents, each on its own full VM that is ready to work: coding agents with an API, keys kept outside, a desktop, HTTPS URLs, snapshots every minute, reliable /dev/kvm, fork while running and stops that cost nothing. Compare it one to one: boat vs AWS EC2 and boat vs OVHcloud.
Questions people ask
Is AWS EC2 cheaper than OVHcloud?
No, not in the scenarios we priced. One coding agent on workdays comes to $8 a month on OVHcloud against $21 on EC2, and 50 agents in parallel to $406 against $944. OVHcloud's numbers use shared Discovery instances, and its quota for 300 or 1,000 machines at once is not confirmed.
Which is faster, EC2 or OVHcloud?
We have no comparable measurement for either one. Speed depends on the family you pick: EC2 offers Graviton Arm and recent Intel and AMD chips, and OVHcloud's B3 and C3 have dedicated resources while Discovery instances share theirs. boat did 26.69 runs per second in the StarSling benchmark at 4 vCPU / 8 GB.
Can EC2 and OVHcloud run Docker and nested VMs?
Both run Docker, since each instance is a full VM with root. EC2 supports KVM inside virtual C8i, M8i and R8i instances and on metal, and OVHcloud passes the vmx flag but warns a live migration can make the guest kernel panic. On boat, /dev/kvm is on every machine.
Do I pay for a stopped instance?
On EC2, stopping ends compute charges, but the EBS disk and any public IPv4 keep billing. On OVHcloud, a turned-off instance bills at the same rate until you delete or shelve it. On boat, a stopped sandbox costs nothing and keeps its disk.
Which has more regions?
EC2 runs in 39 regions worldwide. OVHcloud runs in Europe, Canada, the US, Singapore and Sydney, plus Local Zones. boat runs only in the EU, in Germany, Finland and France, with EU data residency.
Is boat SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.
Try boat
Install the CLI, then run boat new.
7-day free trial