Google Compute Engine vs Azure Virtual Machines
Google Compute Engine and Azure Virtual Machines are both hyperscaler VM services: you rent a full Linux or Windows machine and build the rest yourself. Compute Engine bills per second and runs on KVM, while Azure bills per full minute on Hyper-V, offers nested virtualization on more x86 sizes and runs in more regions.
The companies and products
Google Compute Engine
Google Compute Engine is Google Cloud's general-purpose VM service, not a sandbox product: you rent virtual machines by the second and set them up yourself.
You pick a machine type (E2, N2D, C3D, Arm T2A, GPU families and more), a boot image and a network, and Compute Engine boots a KVM-based VM with its own kernel and root access. Disks are Persistent Disk or Hyperdisk volumes, traffic goes through VPC firewall rules, 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 Google Cloud's worldwide regions.
Azure Virtual Machines
Azure Virtual Machines is Microsoft's general-purpose cloud VM service: you rent Linux or Windows machines by the minute in Azure regions worldwide.
It is a hyperscaler IaaS product, not a sandbox API. Each VM runs on Microsoft's Hyper-V hypervisor with its own kernel, root and SSH, and you pick from hundreds of sizes, including Arm, burstable and GPU families. Networking, disks, images, firewalls and any agent tooling are separate pieces you set up yourself, so it suits teams that already run on Azure and want full control.
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. “16th cheapest of 364” means 15 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 | Google Compute Engine: price rank | Azure Virtual Machines: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both can host a software factory, but on either cloud you build the agent setup, preview URLs and cloning yourself; bochka ships them on every machine. | 120th of 367, with limits $1,106 a month | 83rd of 367, with limits $730 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB On both clouds the cheapest always-on price needs a 3-year commitment and disks bill while stopped; bochka runs an always-on agent month to month. | 177th of 366, with limits $1,433 a month | 113th of 366, with limits $644 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 Short code runs fit both clouds better than bochka, since there is no start limit beyond your vCPU quota; Compute Engine comes out ahead here. | 92nd of 345, with limits $133 a month | 114th of 345, with limits $222 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 Giving each user a VM on either cloud means building your own sandbox layer (URLs, auth, cleanup); bochka gives you that through its API. | 92nd of 361, with limits $836 a month | 63rd of 361, with limits $500 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 Azure Spot VMs make large RL fleets cheap, as long as rollouts can survive eviction with 30 seconds of notice. | 36th of 360, with limits $2,085 a month | 19th of 360, with limits $1,039 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 Both fit eval batches well, with Azure a little ahead on price; bochka fits too, with forks and snapshots built in. | 16th cheapest of 364 $263 a month | 3rd cheapest of 364 $173 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 CI that needs /dev/kvm works on Azure's x86 D and F sizes and on some Compute Engine Intel families, but not on E2; bochka has it on every machine. | 41st cheapest of 377 $359 a month | 35th cheapest of 377 $335 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 82nd cheapest of 368 $109 a month | 72nd cheapest of 368 $94 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 cloud has a built-in desktop stream or computer-use API, so you install and stream one yourself; bochka streams a 60fps desktop out of the box. | 129th of 369, with limits $293 a month | 100th of 369, with limits $192 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 | 212th of 367, with limits $244 a month | 168th of 367, with limits $107 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 | 218th of 346, with limits $179 a month | 194th of 346, with limits $116 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 | 108th of 338, with limits $2,978 a month | 81st of 338, with limits $2,044 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 | 152nd of 360, with limits $120 a month | 110th of 360, with limits $46 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 | Google Compute Engine | Azure Virtual Machines | bochka |
|---|---|---|---|
| What you get | A general cloud VM; you install and wire everything else | A general cloud VM; images, networking and tooling are yours to set up | An agent sandbox: a full VM with agents, desktop, URLs and snapshots set up |
| Isolation | Full VM on Google's KVM-based hypervisor, with its own kernel | Full Hyper-V VM with its own kernel | Every sandbox is a full VM with its own kernel |
| Billing unit | Per second after a 1 minute minimum | Per full minute while running; a VM shut down from inside the OS keeps billing | Per second from a monthly plan credit; a stopped sandbox costs nothing |
| Docker and nested virtualization | Docker, root and systemd on any VM; nested KVM only on some Intel families and N4D, not on E2, Arm or other AMD VMs | Docker and root on any size; nested virtualization on Intel and AMD D and F sizes, not on Arm or B-series | Docker, root, systemd and /dev/kvm on every machine |
| Files after a stop | Persistent disks are kept and billed while stopped; snapshots on demand or on a schedule you set | Disk is kept; a deallocated VM stops compute billing, but disks and static IPs keep billing | Snapshots every minute and on stop; a stopped sandbox costs nothing |
| Pause with memory | Suspend keeps memory for up to 60 days, and memory keeps billing while suspended | Hibernation saves memory to the OS disk on supported sizes up to 64 GB of RAM | Resume reboots from disk (no memory snapshots) |
| Fork and clone | Make a machine image (disks, not memory) and boot a new VM | Capture an image or disk snapshot and boot new VMs cold; image capture needs the VM stopped | Fork a running sandbox in one call |
| Coding agents | None preinstalled; install and drive them over SSH or startup scripts | None built in; Run Command, scripts or SSH to install and run them | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping keys out of the machine | Secret Manager values and service account tokens are read from inside the VM | Key Vault secrets are fetched into the VM, so code inside can read them | AI credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Desktop and computer use | No managed desktop, browser or computer-use API on Linux VMs | None built in; you install your own VNC or RDP server | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Reaching the machine | External IPv4 and any port through firewall rules; HTTPS needs your own certificate and a load balancer or web server | Public IPv4 and any port through security group rules; HTTPS is yours to run, or add a load balancer or gateway | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IP |
| Outbound network rules | VPC egress firewall rules by IP and port; domain rules on Cloud NGFW Standard, a paid tier | Security group rules by IP; domain allowlists with the paid Azure Firewall | Open internet on every plan; no provider-side allowlist |
| GPUs | Nvidia GPUs from T4 and L4 up to H100, H200, B200 and GB200 | GPU families such as NC with Nvidia H100 and A100 | None |
| Regions | 43 regions and 130 zones | 77 regions listed as available or coming soon | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Google Compute Engine | Azure Virtual Machines | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | 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 | No | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | No | 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 | Yes | No |
| GPU | Yes | Yes | No |
| Windows | No | Yes | 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 | No | No | Yes |
| Usage per sandbox (API) | Yes | Yes | Yes |
| Audit logs | Yes | Yes | 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 Compute Engine or Azure Virtual Machines: neither was part of the public benchmark run we use, and their speed depends on the CPU family you pick. In that run, StarSling's Node.js build-and-test test on 2026-09-29, bochka did 26.69 runs per second at 4 vCPU / 8 GB on dedicated AMD Ryzen 9 9950X hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Google Compute Engine and Azure Virtual Machines 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 | Google Compute Engine, a month | Azure Virtual Machines, a month | bochka, 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 | $31 · Pay-as-you-go billing account (no plan fee) | $26 · Pay-as-you-go subscription (no plan fee) | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $64 · Pay-as-you-go billing account (no plan fee) · with limits | $48 · Pay-as-you-go subscription (no plan fee) · 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 | $1,291 · Pay-as-you-go billing account (no plan fee) | $1,168 · Pay-as-you-go subscription (no plan fee) | $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 | $378 · Pay-as-you-go billing account (no plan fee) | $225 · Pay-as-you-go subscription (no plan fee) | $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 | $690 · Pay-as-you-go billing account (no plan fee) | $483 · Pay-as-you-go subscription (no plan fee) · with limits | $2,000 · $2000/mo · with limits |
Google Compute Engine: Compute Engine bills each VM per second after a 1 minute minimum, here E2 sizes on demand in us-central1, with no platform fee. Disks and external IPs bill on top, also while stopped, and the lowest rates need a 1-year or 3-year commitment.
Azure Virtual Machines: Azure bills each VM per full minute while it runs, with no plan fee; disks, public IPv4 and egress bill on top, and disks keep billing while deallocated. The cheapest fits use Arm Cobalt or B-series burstable sizes, or a 3-year reservation for a machine that never stops.
Azure Virtual Machines: 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
Both clouds cap vCPUs per region with quotas, and Azure also caps each VM family and counts stopped VMs, so 50 agents in parallel or 300 user sandboxes may need a quota request first on either. One agent that never stops reaches the prices shown ($64 a month on Compute Engine, $48 on Azure) only with a 3-year commitment. For 1,000 short jobs at once, Azure's low figure uses B-series burstable VMs that guarantee 30% of each vCPU and throttle above that, while Compute Engine fits as asked. On bochka the same burst is queued by starts per minute, per hour and per day, even on the $2,000 plan.
| Scenario | Google Compute Engine | Azure Virtual Machines | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel | None that bite | None that bite | None that bite |
| Sandboxes for your users | None that bite | None that bite | None that bite |
| 1,000 short jobs at once | None that bite |
|
|
Which one should you use?
Use Google Compute Engine when
you want per-second billing for short jobs, the newest Nvidia GPUs, or your team already runs on Google Cloud.
- Billed by the second. Useful for many short jobs: Compute Engine bills per second after the first minute, where Azure rounds to full minutes.
- Newer GPUs. Useful if agents train or serve models: Compute Engine rents Nvidia GPUs up to H200, B200 and GB200.
- Stops mean stopped. Useful if people stop VMs from inside: a stopped Compute Engine VM ends CPU and memory charges, with only disks and IPs left.
Use Azure Virtual Machines when
you need nested virtualization on common x86 sizes, a region Compute Engine does not cover, Spot fleets or hibernation, or your company already runs on Azure.
- Nested virtualization on common sizes. Useful for Android emulators or VMs inside VMs: Azure supports it on its Intel and AMD D and F sizes.
- More regions. Useful if data must sit in a given country: Azure lists 77 regions, against 43 for Compute Engine.
- Spot fleets and hibernation. Useful for big batches that can survive eviction, or a VM that must resume with its memory on supported sizes.
Where bochka fits
Both clouds rent you a raw VM, and everything an agent needs on top is yours to build. If what you are really running is agents, bochka gives each one a full VM that already has Docker, /dev/kvm, a desktop, HTTPS URLs, forks and coding agents you drive from outside. Stay on a cloud if you need GPUs, Windows or regions outside the EU.
Coding agents driven from outside
On Compute Engine or Azure you write the code that installs, prompts and watches every agent, and keys from Secret Manager or Key Vault land inside the VM. bochka ships the agents, an events API and a credentials proxy that keeps keys out.
Fork a running machine, keep files for free
Copying a live machine on either cloud means a machine image or captured image and a cold boot, and Azure needs the VM stopped first. Parked VMs keep billing disks. bochka forks a running sandbox, snapshots every minute and bills nothing while stopped.
/dev/kvm, desktop and HTTPS on every machine
Compute Engine E2 and Azure B-series or Arm sizes have no nested virtualization, neither cloud has a desktop stream, and HTTPS needs your own certificates or a load balancer. Every bochka sandbox has /dev/kvm, a 60fps desktop and HTTPS URLs on 50 ports.
Use bochka when what you are really running is agents and you want each one on a ready, full VM: coding agents with an API, keys kept outside, /dev/kvm, a desktop, HTTPS URLs, minute snapshots and forks, without building that layer on a cloud. Compare it one to one: bochka vs Google Compute Engine and bochka vs Azure Virtual Machines.
Questions people ask
Is Google Compute Engine cheaper than Azure Virtual Machines?
In most of the scenarios we priced, Azure comes out lower: one coding agent on workdays is $26 a month on Azure and $31 on Compute Engine, and 50 agents in parallel come to $1,168 versus $1,291. For 1,000 short jobs at once, Azure's $483 figure uses burstable VMs that do not fit as asked, against $690 on Compute Engine. bochka is $20 and $317 for the same two scenarios.
Which is faster, Compute Engine or Azure?
We have no comparable measurement for either: neither was in the public benchmark run we use, and speed depends on the CPU family you pick. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's run of 2026-09-29.
Can Compute Engine and Azure VMs run Docker and nested VMs?
Both run Docker with root on any VM. Nested virtualization is narrower on Compute Engine, which excludes E2, Arm and AMD VMs except N4D, while Azure supports it on Intel and AMD D and F sizes but not on Arm or B-series. On bochka, Docker and /dev/kvm are on every machine.
Do stopped VMs keep billing on Compute Engine and Azure?
A stopped Compute Engine VM ends CPU and memory charges, while disks and external IPs keep billing. On Azure a VM shut down from inside the OS stays allocated and keeps billing compute; only a deallocate stops it, and disks and static IPs still bill. A stopped bochka sandbox costs nothing and keeps its files.
Which has more regions, Compute Engine or Azure?
Azure lists 77 regions as available or coming soon, and Compute Engine runs in 43 regions and 130 zones; both include many in the EU. bochka runs only in the EU (Germany, Finland and France), with EU data residency.
Is bochka SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Google Compute Engine
- bochka vs Azure Virtual Machines
- AWS EC2 vs Google Compute Engine
- Google Compute Engine vs Oracle Cloud
- Google Compute Engine vs DigitalOcean
- Google Compute Engine vs Hetzner Cloud
- Google Compute Engine vs Vultr
- Google Compute Engine vs Linode
- Google Compute Engine vs Scaleway
- Google Compute Engine vs OVHcloud
- Google Compute Engine vs IONOS Cloud
- Google Compute Engine vs Contabo