Reserved Instances cannot be cancelled at AWS, and among the three large providers only Azure lets a reservation be cancelled for a refund, up to USD 50,000 in twelve months; AWS offers modification, exchange or sale of Reserved Instances instead, and Google rules out cancelling committed use discounts. A commitment is therefore an obligation to pay until the term ends, with different exits per programme. For the bill, the end of the term decides: if the commitment renews, the discount continues; if it expires, the same usage pays the on-demand rate from the end of the term.

How it works

AWS

Reserved Instances cannot be cancelled. Standard and Convertible RIs can be modified: availability zone, zonal or regional scope, size within the family for Linux with default tenancy, splitting and merging; the change applies from the hour of the request, keeps the end date and costs no fee. Only Convertible RIs can be exchanged, as often as needed, for a Convertible RI of equal or higher value in the same region, until 24 hours before expiry; the difference is paid as a true-up, and no exchange leads from All or Partial Upfront to No Upfront. Only Standard RIs can be sold, in the Reserved Instance Marketplace, under the rules in AWS Reserved Instances. RDS reservations and DynamoDB reserved capacity cannot be cancelled, and DynamoDB capacity cannot be sold either.

Savings Plans can be neither modified, exchanged nor cancelled. Only a plan with an hourly commitment of USD 100 or less can be returned, within seven days of purchase and in the same calendar month in UTC, subject to a quota; the upfront payment is refunded in full. The details are in AWS Savings Plans.

Neither renews by itself. Renew in the EC2 console queues the purchase of an RI with the same configuration for the expiry date; regional RIs and Savings Plans can be queued up to three years ahead. Expiry alerts go out 7, 30 or 60 days ahead for reservations and 1, 7, 30 or 60 days ahead for Savings Plans, and on the expiry day as well.

Azure

Reservations can be exchanged within one product family, such as virtual machines and dedicated hosts, or SQL Managed Instance, SQL Database and elastic pools, with no penalty and no annual limit; the new purchase has to reach at least the remaining commitment and starts a new term. They can be returned up to a total cancelled commitment of USD 50,000 in a rolling twelve months per billing profile or enrolment; the refund uses the lower of the purchase and the current price. Microsoft charges no fee at present but names a possible future fee of 12%. Reservations bought from 2027-02-01 lose the exchange where savings plans cover the service, such as virtual machines, App Service and SQL Database; those bought earlier keep one final exchange. Instance size flexibility, the refund limit and trading reservations in for a savings plan stay unchanged. Savings plans themselves are final. The programmes are described in Azure reservations and Azure savings plans.

According to the renewal page, automatic renewal of a reservation is on at purchase and creates a new reservation at expiry with the same SKU, region, scope, term and quantity; older service pages, such as the one on Blob storage, still say reservations do not renew. For savings plans it is off. Notices go out 30 days ahead and on the expiry day. Reserved VM instances for selected older VM series can be neither bought nor renewed since 2026-07-01.

Google Cloud

Neither resource-based nor spend-based commitments can be cancelled, as Google Cloud committed use discounts sets out. For a purchase made by mistake Google points to Cloud Billing Support, for resource-based commitments within 14 calendar days of the start, with the outcome at Google's discretion. Resource-based commitments can have their term extended, and hardware commitments can also be merged, split and upgraded from one to three years; project, type and region stay fixed. They expire by default; with auto-renewal they renew for the plan's term. BigQuery commitments carry a renewal plan: with NONE they are deleted at the end.

Overview

ProgrammeModifyExchangeReturnSellRenew
AWS Standard RIzone, scope, sizenonoMarketplacequeued purchase
AWS Convertible RIzone, scope, sizeequal or higher valuenonoqueued purchase
AWS Savings Plannonoup to USD 100 per hour, within seven daysnoqueued purchase
Azure reservationscope, splityes, restricted for purchases from 2027-02-01up to USD 50,000 in twelve monthsnoautomatic, on at purchase
Azure savings planscopenononoautomatic, off at purchase
Google resource-basedterm, merge, splitnononoauto-renewal, optional
Google spend-basednononononot documented

What it means for your cost

At AWS the true-up of an exchange appears as a Fee line item whose reservation ARN contains reserved-instance-exchange; a modification produces no new invoice. The refund for a returned Savings Plan shows on the bill within 24 hours, and the usage it covered falls back to on-demand or to another plan.

At Azure every exchange is a return with a refund plus a new purchase, as separate transactions; in actual cost, refunds carry ChargeType = Refund. Where the money goes depends on the agreement: a credit to the Azure Prepayment under an Enterprise Agreement, an offset against the next monthly invoice under a Microsoft Customer Agreement paid by wire transfer, a cancelled and a new invoice for pay-as-you-go invoices. How such rows look in the data is covered in credits, refunds and corrections, the term itself under credit.

At Google the monthly fee runs until the end of the term. After any expiry the usage pays the on-demand rate, and the spread share of the commitment ends in amortized cost. How a refund or an expiring upfront payment is treated in the accounts is for the reader's tax adviser or auditor to decide.

Where it goes wrong

  • Expiry unnoticed. Symptom: the cost of an unchanged workload rises from one day to the next. Cause: RIs and Savings Plans at AWS, savings plans at Azure and resource-based CUDs at Google expire unless someone acts.
  • Renewed by accident. Symptom: an Azure reservation renews for a workload that has long moved. Cause: renewal is on at purchase and carries over SKU, region and quantity.
  • Return too late. Symptom: the button to return a Savings Plan is missing. Cause: returns apply only up to USD 100 of hourly commitment, within seven days and in the same calendar month.
  • Refund limit reached. Symptom: Azure rejects the return of a large reservation. Cause: cancelled commitments are capped at USD 50,000 in a rolling twelve months; refunds from an exchange do not count.
  • Slots after expiry. Symptom: BigQuery keeps charging for slots after a capacity commitment ends. Cause: the reservations' baseline slots remain and cost the pay-as-you-go rate until the reservations are deleted.

Sources

Read on 2026-10-16. AWS Reserved Instances for Amazon EC2, Exchange Convertible Reserved Instances, Modify Reserved Instances, Buy Reserved Instances for Amazon EC2, Sell Reserved Instances in the Reserved Instance Marketplace, Understanding reservations in Cost Explorer, Understanding your reservation line items, Returning a purchased Savings Plan, Queuing a Savings Plan purchase, Managing your Savings Plans alerts, Reserved DB instances for Amazon RDS, DynamoDB reserved capacity; Microsoft Self-service exchanges and refunds for Azure Reservations, Automatically renew reservations, Savings plan cancellation policies, Automatically renew your savings plan, Manage savings plans, Self-service trade-in for savings plans, Blob storage reserved capacity, Reserved VM Instances, EA and MCA reservation costs and usage, What are Azure Reservations?; Google Cloud Resource-based committed use discounts, Spend-based committed use discounts, Committed use discounts, Manage workload commitments in BigQuery.