Split an EC2 Fleet target capacity into on-demand base and Spot instances, then price the blended result.
A mixed instances policy fills capacity in a fixed order: the on-demand base first, then the on-demand percentage of whatever remains, then Spot for the rest. Expressing the target in vCPUs rather than instances is what lets a fleet substitute a 2xlarge for two xlarges when capacity is scarce, which is exactly the flexibility that keeps Spot interruption rates low. The base is your insurance policy: it is the capacity that survives a complete Spot reclamation event, so it should cover the minimum traffic you must serve rather than being left at zero.
EC2 Fleet Capacity
instances = ceil(target capacity ÷ capacity per instance); on-demand = base + round((instances − base) × on-demand share); the remainder is Spot.
instances = ceil(target capacity ÷ capacity per instance); on-demand = base + round((instances − base) × on-demand share); the remainder is Spot. A mixed instances policy fills capacity in a fixed order: the on-demand base first, then the on-demand percentage of whatever remains, then Spot for the rest. Expressing the target in vCPUs rather than instances is what lets a fleet substitute a 2xlarge for two xlarges when capacity is scarce, which is exactly the flexibility that keeps Spot interruption rates low.
The base is your insurance policy: it is the capacity that survives a complete Spot reclamation event, so it should cover the minimum traffic you must serve rather than being left at zero.
This calculator takes 7 inputs: Target capacity, vCPUs per instance, On-demand base capacity, On-demand share above the base, On-demand rate per instance-hour, Spot rate per instance-hour, Hours running per month. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
As many as your workload tolerates — practical fleets list 10 or more types across several families and sizes in every AZ. Spot capacity pools are independent, so diversification is the single most effective way to cut interruptions, and the capacity-optimized allocation strategy then picks the deepest pools.