Do Windows or RHEL EC2 RIs Support Size Flexibility?
Amazon EC2 does not allow instance size flexibility for Reserved Instances that include commercial licensing such as Windows Server or Red Hat Enterprise Linux. Because the hourly rates for these operating systems contain built-in software license fees provided by Microsoft and Red Hat, the reservation discount is strictly locked to the exact instance size, platform, and tenancy specified at the time of purchase. This article explains how Amazon EC2 normalization factors work, why commercial operating systems are excluded from size flexibility, and what alternative purchasing models provide flexibility for licensed workloads.
How Instance Size Flexibility Works in Amazon EC2
Instance size flexibility allows a regional Reserved Instance discount to automatically apply across different instance sizes within the same instance family and Availability Zone or region. AWS calculates this flexibility using a normalization factor assigned to each instance size based on its relative resource footprint.
| Instance Size | Normalization Factor (\(N\)) |
|---|---|
nano |
\(0.25\) |
micro |
\(0.5\) |
small |
\(1\) |
medium |
\(2\) |
large |
\(4\) |
xlarge |
\(8\) |
2xlarge |
\(16\) |
4xlarge |
\(32\) |
8xlarge |
\(64\) |
16xlarge |
\(128\) |
32xlarge |
\(256\) |
For eligible open-source Linux platforms, the total normalized capacity of a reservation is determined by multiplying the quantity of reserved instances (\(Q\)) by the normalization factor (\(N_{\text{reserved}}\)) of the purchased size:
\[U_{\text{total}} = Q \times N_{\text{reserved}}\]
When running instances of another size within the same family, the number of covered instances (\(C\)) that can receive the full reservation discount is given by:
\[C = \frac{U_{\text{total}}}{N_{\text{running}}}\]
For example, purchasing one m6i.2xlarge regional Linux
Reserved Instance provides \(U_{\text{total}}
= 1 \times 16 = 16\) normalized units per hour. Those \(16\) units can cover two
m6i.large instances (\(2 \times 4
= 8\) units) and one m6i.xlarge instance (\(1 \times 8 = 8\) units) simultaneously:
\[\sum_{i} \left( C_i \times N_i \right) = (2 \times 4) + (1 \times 8) = 16\]
Why Windows Server and Red Hat Enterprise Linux Are Excluded
Instance size flexibility is restricted exclusively to Amazon EC2 Reserved Instances running free, open-source Linux/UNIX platforms without additional commercial licensing (specifically the default Linux/UNIX platform, which includes Amazon Linux, Ubuntu, CentOS, and Debian). Reservations for the following commercial operating systems do not support instance size flexibility:
- Windows Server (Standard and Datacenter editions)
- Windows Server with SQL Server (Web, Standard, or Enterprise)
- Red Hat Enterprise Linux (RHEL) and RHEL for SAP
- SUSE Linux Enterprise Server (SLES)
- Linux with SQL Server
There are two technical and contractual reasons why AWS enforces this limitation:
- Non-Linear Software Licensing Costs: For standard Linux/UNIX instances, the hourly price scales linearly with hardware resources:
\[P_{\text{Linux}}(s) = k_{\text{compute}} \times N(s)\]
However, commercial operating systems bundle both compute infrastructure and vendor software licensing into a single hourly rate:
\[P_{\text{commercial}}(s) = P_{\text{compute}}(s) + P_{\text{license}}(s)\]
While Windows Server licensing on EC2 often scales proportionally
with virtual CPUs (vCPUs), Red Hat Enterprise Linux and SUSE Linux
Enterprise Server frequently use tiered or flat-rate subscription
pricing structures where the license fee \(P_{\text{license}}(s)\) does not double
when the instance size doubles. For example, RHEL licensing on smaller
vCPU tiers may have one fixed hourly license add-on, while larger vCPU
tiers have a different cap. If AWS permitted a single
r6i.4xlarge RHEL Reserved Instance (\(N = 32\)) to split into sixteen
r6i.medium RHEL instances (\(16
\times 2 = 32\)), the customer would consume sixteen separate OS
subscription licenses while only paying for one high-tier license,
violating the underlying vendor licensing metrics.
- Fixed Vendor Royalty Reporting: AWS remits
licensing royalties to Microsoft, Red Hat, and SUSE based on the
specific SKU and instance type committed under the Reserved Instance
agreement. Consequently, a Reserved Instance for
m5.xlargerunning Windows Server or RHEL will only discount a runningm5.xlargeinstance matching the exact platform, tenancy, and region or Availability Zone. If you scale that workload up to anm5.2xlargeor down to twom5.largeinstances, the Reserved Instance sits unutilized and the new instances are billed at full On-Demand rates.
Requirements for EC2 Instance Size Flexibility
To qualify for instance size flexibility on Amazon EC2, a Reserved Instance must meet all of the following criteria:
- Platform: Must be basic
Linux/UNIX(Amazon Linux, Ubuntu, etc.) with default shared tenancy. - Tenancy: Must be
Default(shared) tenancy. Dedicated Instances and Dedicated Hosts do not support size flexibility. - Scope: Both Regional and Zonal Reserved Instances can have standard or convertible classes, though size flexibility applies within the instance family across a region (for Regional RIs) or is constrained to the specific Availability Zone if capacity is reserved. Note that Zonal RIs (which provide a capacity reservation) do not offer instance size flexibility—only Regional RIs on default Linux/UNIX provide size flexibility.
- Instance Family: Must belong to the exact same
instance family (for example,
c6icannot flex toc6aorc5).Bare metal instances (*.metal) belong to the same family normalization table for eligible Linux workloads, where their normalization factor is proportional to the largest virtualized size in that family.
Alternatives for Flexible Windows and RHEL Commitments
If your workloads run Windows Server or Red Hat Enterprise Linux and require the ability to change instance sizes without losing your commitment discount, you have three primary options:
1. AWS Savings Plans (Compute Savings Plans and EC2 Instance Savings Plans)
Unlike Reserved Instances, AWS Savings Plans are based on an hourly monetary spend commitment (\(S_{\text{commit}}\), measured in currency per hour) rather than fixed normalized hardware units. Both Compute Savings Plans and EC2 Instance Savings Plans automatically apply across different instance sizes, even when running Windows Server, RHEL, SLES, or SQL Server.
Under a Savings Plan, if your discounted hourly rate for a Windows or RHEL instance of size \(s\) is \(r_{\text{SP}}(s)\), the number of concurrent instances covered by your hourly commitment \(S_{\text{commit}}\) is:
\[C_{\text{SP}}(s) = \frac{S_{\text{commit}}}{r_{\text{SP}}(s)}\]
Because the commitment is tracked in currency rather than vCPU
normalization units, you can freely resize from m6i.xlarge
to m6i.2xlarge on Windows Server or RHEL and continue
receiving the Savings Plan discount rate up to your hourly commitment
ceiling.
2. Convertible Reserved Instances
If you already own or prefer Reserved Instances for Windows Server or RHEL, Convertible Reserved Instances allow you to manually exchange your reservation for another configuration of equal or greater total value:
\[V_{\text{new}} \ge V_{\text{current}}\]
While Convertible RIs do not resize automatically at billing time
like instance size flexibility does, you can invoke the
AcceptReservedInstancesExchangeQuote API or use the EC2
console to trade a Windows or RHEL m5.2xlarge Convertible
RI for two m5.xlarge Convertible RIs whenever you resize
your environment.
3. Bring Your Own License (BYOL) with Default Linux/UNIX or License Mobility
- Red Hat Cloud Access (BYOL): When you bring your
own Red Hat Enterprise Linux subscriptions to AWS via Red Hat Cloud
Access, your EC2 instances run on the standard
Linux/UNIXbilling platform from an AWS perspective because Red Hat licensing is handled directly through your Red Hat Customer Portal subscription. Because AWS bills the underlying compute as standardLinux/UNIX, Regional Reserved Instances purchased for these instances do receive full instance size flexibility. - Windows Server BYOL on Dedicated Hosts: Bringing Windows Server licenses typically requires EC2 Dedicated Hosts to comply with Microsoft licensing terms for physical core allocation. While Dedicated Host Reservations do not offer instance size flexibility in the same way as shared-tenancy Linux RIs, they allow you to run multiple different instance sizes simultaneously on the same physical host as long as the instances belong to the host's supported instance family.