Spot instances, sold as Spot Instances on AWS, Azure Spot Virtual Machines on Azure and Spot VMs on Google Cloud, are spare compute capacity that a provider sells below the on-demand price and may reclaim at any time at short notice. There is no commitment and no assured capacity, and on Azure and Google Cloud no SLA either; in return the rate per unit falls. For the bill, spot capacity changes the rate, not the way usage is billed, and the cost of an interruption does not sit on the spot line but in reruns and storage.

How it works

All three providers sell capacity that nobody is paying full price for at that moment. The provider sets the price, moves it with supply and demand, and evicts the machine when it needs the capacity back. Billing works as for on-demand pricing, by run time, only at a different rate. What differs is how the price is set, how much warning there is and what happens to the machine on interruption.

AWS

Amazon EC2 sets the Spot price per instance type and Availability Zone and adjusts it gradually to long-term trends in supply and demand; the pricing page shows the lowest price per Region and instance type, updated every five minutes. A maximum price is optional, and AWS notes that instances with one are interrupted more often. Before an interruption the instance gets a two-minute notice and is then terminated, stopped or hibernated, depending on its setting. If Amazon EC2 interrupts within the first hour, the instance is not charged; after that, the seconds used are (for SUSE, the full hours without the interrupted one). Savings Plans do not cover Spot Instances, and Spot spend does not count towards a Compute Savings Plans commitment.

Azure

Azure Spot Virtual Machines carry no SLA. Azure evicts them with 30 seconds' notice when it needs the capacity or when the Spot price rises above the maximum price set. The maximum price is stated in US dollars; the value -1 rules out eviction for price and charges the current Spot price, capped at the price of a standard VM. The eviction policy is Deallocate (the default) or Delete: a deallocated VM remains, counts against quota and keeps its disks billed, while Delete removes the VM and its disks. Changing the maximum price requires deallocating the VM. B-series and promo sizes are excluded.

Google Cloud

Spot VMs are the current version of preemptible VMs, which Google still offers but no longer recommends. Spot prices change at most once a day. Before preempting, Compute Engine sets the metadata value preempted to TRUE; for Spot VMs the notice period is 0 seconds (the default) or 120 seconds, followed by a shutdown period of up to 30 seconds, and the termination action is STOP (the default) or DELETE; a stopped VM costs nothing in state TERMINATED, its persistent disks do. A VM preempted within its first minute is not charged, premium operating systems excepted. Spot VMs have no maximum run time unless one is set, while preemptible VMs stop after 24 hours. Neither receives committed use discounts or sustained use discounts.

ProviderNamePriceNoticeOn interruptionIn the export
AWSSpot Instancesper instance type and Availability Zone, adjusted gradually; maximum price optional2 minutesterminate, stop or hibernateusage type SpotUsage, Purchase option Spot Instances
AzureAzure Spot Virtual Machinesvariable by region and size; maximum price in USD or -130 secondsDeallocate (default) or DeletePricingModel = Spot, meters with Spot in the name
Google CloudSpot VMs, preemptible VMsat most one change a daySpot VMs: 0 or 120 seconds, then up to 30 seconds; preemptible VMs: up to 30 secondsSpot VMs: STOP (default) or DELETE; preemptible VMs: stopped (TERMINATED)SKUs with Spot Preemptible in the description

What it means for your cost

In the billing data, spot usage is an ordinary usage line at the spot rate. AWS records it under the usage type SpotUsage followed by the instance type, Cost Explorer counts that type in the EC2: Running Hours group beside BoxUsage, and the Spot Instance data feed delivers maximum price, market price and charge per hour to an S3 bucket. Azure marks the lines with PricingModel = Spot; under an Enterprise Agreement the pricing currency for Spot is always US dollars. Google points to the BigQuery export for an account's own Spot price history. In FOCUS, PricingCategory Dynamic holds charges whose price the provider sets and revises itself; the specification names interruptible capacity as its example (FOCUS columns and the providers' mapping).

Because spot lowers the rate and not the quantity, the effective cost of an interruptible workload falls directly, with no commitment and no upfront payment, and the saving against on-demand follows from the list price on each line. What erodes it sits in other lines: storage of stopped machines, reruns after an interruption, on-demand fallback when no spot capacity is free. A savings opportunity from spot is therefore a question about the workload, not the price.

Spot and commitments largely exclude each other: AWS Savings Plans do not cover spot usage, and Google gives Spot VMs no CUDs or SUDs. Usage that moves to spot drops out of a commitment's coverage, and a commitment sized on the earlier on-demand load is left unused by that share (cloud commitment discounts compared by type). The size a workload needs is the subject of rightsizing; spot node pools are covered in containers and Kubernetes, and the instances themselves in virtual machines and instance families.

Where it goes wrong

  • A stopped spot VM keeps costing. Symptom: after an eviction, storage cost remains without compute. Cause: Deallocate on Azure and STOP on Google are the defaults and keep the disks; on AWS the EBS volumes of stopped instances stay billed.
  • Maximum price set too tight. Symptom: frequent interruptions and reruns. Cause: Azure evicts as soon as the Spot price exceeds the maximum, and AWS interrupts instances with a maximum price more often.
  • Commitment sized before the move to spot. Symptom: a Savings Plan or CUD goes unused although the compute load stayed the same. Cause: the load ran on demand before and now runs on spot, which consumes no commitment.
  • Spot price read in euros. Symptom: Azure Spot cost differs from the euro amount on the pricing page. Cause: Microsoft takes Spot maximum prices in US dollars only and calls the local-currency Spot prices on the pricing page estimates that vary with exchange rates.
  • Preemptible VMs for long runs. Symptom: jobs stop within a day at the latest and start again. Cause: Compute Engine stops preemptible VMs after 24 hours; Spot VMs have no such limit.

Example

On 2026-10-16 the pricing pages list these hourly rates in US dollars, excluding tax, for Linux machines with 2 vCPUs and 8 GiB of memory:

ProviderType, regionOn-demandSpotPublished ceiling
AzureD2s v5, Ubuntu, Germany West CentralUSD 0.1150USD 0.0213up to 90% below pay-as-you-go
Google Cloudn2-standard-2, Frankfurt (europe-west3)USD 0.125124USD 0.065644up to 91% below on-demand

AWS states up to 90% below On-Demand for Spot Instances. Spot prices change; the figures hold for the date given.

Sources

Read on 2026-10-16. AWS Spot Instances, Spot Instance interruptions, Billing for interrupted Spot Instances, Spot Instance data feed, Amazon EC2 Spot pricing, filtering in Cost Explorer; Microsoft About Azure Spot Virtual Machines, Spot Virtual Machines pricing and features, Linux Virtual Machines pricing, Understand usage details fields, Azure Retail Prices API; Google Cloud Spot VMs, Preemptible VM instances, Spot VMs pricing, VM instance pricing, General purpose VM pricing, Get Google Cloud pricing information; FinOps Foundation Pricing Category.