The situation
A market research firm runs 180 EC2 instances, every one of them On-Demand. Finance has asked for the monthly bill to come down, and has been explicit that nothing is to be switched off to get there: the capacity is in use and the business needs it. What has to change is the rate, not the fleet. The estate divides into four groups.
Forty instances run continuously. The survey platform, its databases and the internal tools. They have run every hour for three years, they are the same instance family they started on, and nothing suggests that will change.
Sixty instances run a statistical processing job. The job is a queue of independent tasks that runs whenever a survey closes, which is roughly nine times a month, for six to eleven hours. Tasks are restartable and the job has no deadline tighter than “by the end of the next day”.
Fifty instances are development and test environments. Engineers spin them up, use them for a few days, and destroy them. The instance types vary constantly, and the team is actively migrating to a newer generation and to containers, so what runs six months from now is unknown.
Thirty instances run a licensed statistical package. The vendor licenses per physical core and audits annually, and the firm has an agreement with four years left on it.
Finance has a second condition attached to the first: whatever gets committed to must not lock the firm into instance types it is already migrating away from.
What actually matters
Start with the word “commitment”, because every discount here is calculated against one. On-Demand carries no commitment and the highest rate. The discounted options require a commitment about future usage, and the rate falls in proportion to how specific and how long that commitment is. So the question for each workload is what it can honestly commit to. A commitment it cannot keep leaves the firm worse off than no commitment at all.
On AWS, commitment for EC2 comes in two shapes. A Reserved Instance commits to a configuration: this instance type, in this Region, on this operating system and tenancy, for one or three years. A Savings Plan commits to an amount of spend per hour and leaves the configuration free to change. For a team mid-migration between generations those are not close substitutes; the first turns a planned modernisation into a stranded commitment, and the second does not.
A third shape, the Spot Instance, involves no commitment at all, and a technical condition instead. Spare capacity comes at up to 90% off On-Demand, on the condition that EC2 can reclaim the instance with a two-minute warning. That condition is a hard requirement. A workload that cannot be interrupted cannot use Spot at any discount, and a queue of restartable tasks absorbs a reclaim without losing work.
Finally, tenancy is not a discount at all but it sits in the same list and is chosen for different reasons entirely. Licence terms written against physical cores and sockets need visibility of the physical server, and that visibility is a tenancy option that costs more rather than less. A per-core licence is a tenancy requirement rather than a saving.
Commitment and capacity are separate concerns. A discount does not reserve capacity in an Availability Zone, and reserving capacity does not by itself reduce the rate.
What we’ll filter on
- Whether the workload runs predictably enough to commit to anything about it.
- Whether it tolerates being interrupted with two minutes’ notice.
- Whether the instance family and Region need to stay free to change.
- Whether a licence requires visibility of the physical hardware.
- Whether the discount survives the firm’s planned move to newer instances and containers.
The landscape
On-Demand charges by the second, with a 60-second minimum, no commitment and no discount. It is the baseline every other option is measured against, and it is what fits anything short-lived, unpredictable or new.
Standard Reserved Instances commit to a specific instance type, Region, operating system and tenancy for one or three years, in exchange for a discount up to roughly 72%. A Regional RI applies across the Availability Zones in the Region and, on Linux with default tenancy, across instance sizes within the family. A Regional RI does not reserve capacity; a Zonal RI reserves capacity in one zone and gives no size flexibility. Payment is All Upfront, Partial Upfront or No Upfront, discounting in that order. A Standard RI cannot change family, operating system or tenancy, and it can be sold in the Reserved Instance Marketplace if it is no longer needed.
Convertible Reserved Instances discount less and allow exchange for a different instance family, operating system or tenancy during the term. That flexibility is what a team mid-migration is looking for from an RI.
Savings Plans commit to an amount of spend per hour for one or three years rather than to a configuration. Compute Savings Plans are the most flexible, applying automatically across EC2, Fargate and Lambda regardless of instance family, size, operating system, tenancy or Region, at up to 66% off On-Demand. EC2 Instance Savings Plans commit to a family in a chosen Region and reach up to 72%, the same ceiling as Reserved Instances. Neither one applies to Spot usage.
Spot Instances use spare capacity at up to roughly 90% off On-Demand, and can be reclaimed with a two-minute warning when AWS needs the capacity. Nothing is committed and nothing is guaranteed. They suit batch processing, rendering, CI, and any queue of restartable work.
Dedicated Instances run on hardware isolated to one account, for a regulatory isolation requirement. They cost more than shared tenancy and do not expose the physical sockets and cores.
Dedicated Hosts allocate a whole physical server with its sockets and cores visible, which is what a per-core or per-socket licence needs, and they support Bring Your Own License. Billing is per host rather than per instance, by the second with a 60-second minimum, and it runs for as long as the host is allocated whatever is launched on it. The hosts themselves can be reserved for one or three years at up to 70% off the On-Demand host rate.
Capacity Reservations hold capacity in a specific Availability Zone and carry no billing discount. One created for immediate use has no term commitment; a future-dated one commits for a duration you specify. They combine with a Savings Plan or Regional RI, which is how a workload gets both the guarantee and the lower rate.
Evaluation
Side by side
| Option | Discount | Commitment | Tolerates interruption | Family free to change | Exposes physical cores |
|---|---|---|---|---|---|
| On-Demand | None | None | n/a | ✓ | ✗ |
| Standard RI | Up to ~72% | 1 or 3 years, fixed configuration | n/a | ✗ | ✗ |
| Convertible RI | Lower than Standard | 1 or 3 years, exchangeable | n/a | ✓ | ✗ |
| Compute Savings Plan | Up to ~66% | 1 or 3 years, spend per hour | n/a | ✓ | ✗ |
| EC2 Instance Savings Plan | Up to ~72% | 1 or 3 years, family and Region | n/a | ✗ | ✗ |
| Spot Instances | Up to ~90% | None | Required | ✓ | ✗ |
| Dedicated Instances | Costs more | None or reserved | n/a | ✓ | ✗ |
| Dedicated Hosts | Per host; up to ~70% reserved | None or reserved | n/a | ✗ | ✓ |
| Capacity Reservation | None | None, for immediate use | n/a | ✗ | ✗ |
The four workloads land on four different rows, which is why an estate running entirely On-Demand is leaving money on every one of them and why moving it entirely to Reserved Instances would be a different mistake.
What each workload can commit to
| Workload | Runs | Interruptible | Configuration stable | Commitment it can make | Option |
|---|---|---|---|---|---|
| Survey platform, 40 instances | Every hour, three years | ✗ | ✓ | Three years of this family | Standard RI, or EC2 Instance Savings Plan |
| Statistical processing, 60 instances | 9 times a month, hours at a time | ✓ | ✓ | Nothing, and tolerates reclaim | Spot |
| Dev and test, 50 instances | Ad hoc, days at a time | ✗ | ✗ | A baseline of spend per hour | Compute Savings Plan for the floor, On-Demand above it |
| Licensed package, 30 instances | Continuously, licence-bound | ✗ | ✓ | Term commitment on the host | Dedicated Host, reserved |
The solution
Cover the forty steady instances with a three-year commitment, and choose between the two shapes on how confident the firm is in the family. Nothing about the survey platform has changed in three years, so an EC2 Instance Savings Plan and a Standard Reserved Instance both fit, and both reach roughly the same discount. A Standard RI additionally reserves capacity when bought zonally, and can be sold on the Reserved Instance Marketplace if circumstances change. A Compute Savings Plan tops out nearer 66%, and the extra flexibility is not something this group needs.
Put the statistical processing on Spot. Sixty instances running nine times a month on restartable tasks with no tight deadline is the textbook fit: the discount is the largest available, and a reclaimed task restarts elsewhere, so the two-minute notice does not change the result. Run it through AWS Batch or an Auto Scaling group with a mixed instances policy, so that the job keeps progressing if Spot capacity thins out and some On-Demand capacity fills in. The commitment here is technical rather than financial: the job must be genuinely restartable, and it is.
The development estate is where the Compute Savings Plan belongs, and this is the part finance’s second condition was really about. Fifty instances of constantly changing types, mid-migration to a newer generation and to containers, cannot commit to a family without stranding the commitment. A Compute Savings Plan commits only to spend per hour and applies across instance families, sizes, Regions, and across Fargate and Lambda as well, so the discount keeps applying as the migration proceeds. Size it to the floor of the group’s usage rather than its average, using Cost Explorer’s historical data, and leave everything above that floor On-Demand. An undersized plan covers less of the usage; an oversized one is billed whether or not the usage appears.
The licensed package goes on Dedicated Hosts, and this row is not a saving. The vendor licenses per physical core and audits annually, so the firm needs visibility of the sockets and cores, which only a Dedicated Host provides. Bring the existing licence, track the entitlement in AWS License Manager so a fleet change cannot breach the agreement unnoticed, and reserve the hosts for a term since they will be in place for the four years the agreement has left.
Then make the result visible, because a purchasing decision that nobody monitors drifts. Use AWS Cost Explorer to review coverage and utilisation of the commitments monthly: a Savings Plan at 60% utilisation is being paid for and not used. Set a cost budget on the overall figure and alert on the forecast as well as the actual, so the warning arrives before the spend does. Alongside it, a Savings Plans utilisation budget notifies you when utilisation drops below a threshold you set, which is the only trigger that budget type offers. Model anything new in the AWS Pricing Calculator first, so the estimate exists before the instances do. And keep rightsizing running alongside all of this, because a three-year commitment to an oversized instance family locks in the wrong size for three years.
What’s worth remembering
- Savings Plans commit to spend. An hourly amount rather than a configuration, so they survive a family change; Standard RIs do not.
- Compute Savings Plans span services. Up to 66% across EC2, Fargate and Lambda; EC2 Instance Savings Plans fix a family, up to 72%.
- Spot needs interruption tolerance. Spare capacity at up to about 90% off, reclaimed with a two-minute warning, so workloads must be restartable.
- Convertible RIs trade discount for exchange. Standard RIs cannot change family, operating system or tenancy; All Upfront discounts most, No Upfront least.
- Per-core licences need Dedicated Hosts. Hosts expose sockets and cores and support Bring Your Own License; Dedicated Instances do not expose them; both cost more.
- Discounts and capacity are separate. A discount reserves no capacity; a Capacity Reservation discounts nothing, so combine it with a Savings Plan or Regional RI.