Virtual machines (VMs)
Explanation · Updated Jun 2026
Coming from another cloud?
▸AWS·EC2 Instances
EC2 Instances
- Uses EC2 RunInstances API instead of Nova servers.create.
- Requires predefined instance type selection.
- Supports per-second On-Demand billing and Spot/Reserved options.
- Includes hibernation state not standard in OpenStack.
▸Azure·Virtual Machines
Virtual Machines
- Uses Azure Resource Manager (ARM) REST API at /providers/Microsoft.Compute/virtualMachines instead of OpenStack Nova API at /v2.1/servers.
- Tightly integrated with Azure services like Azure Active Directory for authentication, unlike OpenStack's Keystone.
- VM creation requires specifying size from predefined series with hardware-specific features (e.g., AMD/Intel/ARM), not custom flavor configs.
- Billed per second with complex pricing tiers based on series/reservation options, vs OpenStack's typically hourly or usage-based.
▸DigitalOcean·Droplets
Droplets
- API surface is DigitalOcean’s proprietary REST/CLI/Terraform tooling rather than OpenStack Nova/Neutron/Glance APIs (Droplets are managed via DigitalOcean UI/CLI/API/Terraform).
- Billing is usage-based with per-second billing (60-second minimum and monthly cap) rather than the typical per-hour, quota-based charge model users often see in OpenStack-based clouds.
- Droplets include a bundled outbound transfer allowance with each plan (starting at 500 GiB/month) rather than a separate bandwidth quota/metering model users often encounter in OpenStack deployments.
- Droplets are described as Linux-based VMs on virtualized hardware with local SSD storage, whereas OpenStack deployments commonly expose distinct block storage (Cinder) and image services (Glance) and may not bundle bandwidth/monitoring/firewalls into the instance offering.
▸Google Cloud·VM instances
VM instances
- Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
- Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
- Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
▸Hetzner·Cloud Servers
Cloud Servers
- Servers provisioned individually via Hetzner API (hcloud), not OpenStack Nova flavors; fixed instance types like CX11 (1 vCPU, 2GB RAM, 20GB NVMe).
- No flavor customization; choose from predefined shared/dedicated vCPU series.
- Billing hourly with monthly cap per server (e.g., €3.29/mo cap for CX11), charged even when powered off until deleted, unlike typical OpenStack stop-to-pause billing.
- Custom REST API at api.hetzner.cloud/v1/servers instead of OpenStack Nova /v2.1/servers (different auth, payloads, response formats).
Virtual machines (VMs)
On Quake AI, a virtual machine (VM) is an instance: an isolated guest OS running on the Compute service with its own vCPU, memory, disk, and network attachments. Console copy, billing, and most documentation use instance as the product noun; VM is the same entity described in industry-generic language.
On Quake AI#
In the Console, you create and manage instances under Compute. The OpenStack CLI and Nova API still use server in resource names (openstack server list, /servers API paths). Those commands operate on instances.
Each instance combines a flavor (size), an image (OS template), network ports, and optional key pairs, security groups, and volumes.
What other providers call this#
| Provider | Their term | On Quake AI |
|---|---|---|
| AWS | EC2 instance | Instance |
| Azure | Virtual machine | Instance |
| Google Cloud | VM instance | Instance |
| Hetzner | Cloud server | Instance |
| DigitalOcean | Droplet | Instance |
| Linode (Akamai) | Linode / compute instance | Instance |
| Vultr | Cloud compute instance | Instance |
What to read next#
- Instances: lifecycle, flavors, images, and platform integration (canonical deep dive)
- Create an instance: Console, CLI, and API walkthrough
- Coming from AWS: map EC2 habits to Quake AI compute
Quick answers
- Why does `openstack image save` write a 0-byte file for my boot-from-volume instance?CLI
- Why does `openstack server create` fail with "Only volume-backed servers are allowed for flavors with zero disk"?CLIAPITerraform
- Why does my project still have a 10 GiB Cinder volume after I deleted my instance?CLIAPI
Related content
Pages
Was this page helpful?