Submit feedback on
Excess vCPU Licensing Costs on RDS for SQL Server Instances
We've received your feedback.
Thanks for reaching out!
Oops! Something went wrong while submitting the form.
Close
Excess vCPU Licensing Costs on RDS for SQL Server Instances
Loïc Fournier
CER:

CER-0320

Service Category
Databases
Cloud Provider
AWS
Service Name
AWS RDS
Inefficiency Type
Inefficient Configuration
Explanation

Amazon RDS for SQL Server uses a License Included pricing model where SQL Server and Windows OS licensing costs are bundled into the per-instance-hour rate — and those licensing costs scale directly with the number of vCPUs on the instance. Many SQL Server workloads, particularly OLTP, reporting, and data warehousing scenarios, are constrained by memory and storage throughput rather than raw CPU capacity. Organizations frequently provision large instance types to obtain the memory or IOPS their workloads require, but in doing so they also pay for a high vCPU count that remains largely underutilized. Because SQL Server licensing often represents the single largest cost component of an RDS for SQL Server instance, paying for unnecessary vCPUs translates directly into wasted licensing spend.

AWS offers an Optimize CPU feature on 7th generation instance classes (M7i and R7i) that allows customers to reduce the active core count on their RDS for SQL Server instances while preserving the same memory and IOPS capacity. On these newer generation instances, hyperthreading is disabled by default, and vCPU reduction is achieved by lowering the physical core count. AWS benchmarks demonstrate that instances with reduced vCPU counts can match the transaction throughput of instances with double the CPU, with utilization remaining within acceptable thresholds. This feature is supported on Enterprise, Standard, and Web editions for instance sizes of 2xlarge and above, with a minimum of 4 vCPUs after optimization. Organizations that have not evaluated or applied this configuration are likely overpaying for SQL Server licensing on every eligible instance in their fleet.

Relevant Billing Model

RDS for SQL Server pricing is billed per database instance-hour consumed, in one-second increments with a 10-minute minimum charge following billable status changes. The License Included model bundles SQL Server licensing, Windows OS licensing, underlying infrastructure, and RDS management capabilities into a single rate.

  • SQL Server and Windows licensing costs are charged per vCPU — making the vCPU count the primary driver of licensing expenses. Instances with more vCPUs incur proportionally higher licensing costs.
  • Instance pricing varies significantly by SQL Server edition (Enterprise being the most expensive), instance class, region, and deployment type (Multi-AZ roughly doubles the cost).
  • On 7th generation instances (M7i, R7i), infrastructure costs and licensing fees are billed separately (unbundled pricing), providing visibility into the licensing portion of the bill. Third-party licensing fees are not eligible for organizational discount programs.
  • Storage, provisioned IOPS, backup storage beyond the free tier, and data transfer are billed separately from instance-hour charges.

Because licensing costs scale with vCPU count, reducing vCPUs through the Optimize CPU feature directly lowers the per-hour licensing charge while the infrastructure and memory capacity remain unchanged. The savings are most pronounced on larger instance types and Enterprise Edition deployments.

Detection
  • Identify RDS for SQL Server instances running on 7th generation instance classes (or candidates for migration to 7th generation) that have not been configured with the Optimize CPU feature.
  • Review compute utilization patterns across RDS for SQL Server instances over a representative period to determine whether CPU capacity is consistently underutilized relative to memory and storage consumption.
  • Assess which instances are running memory-intensive or I/O-intensive workloads that require large instance types primarily for RAM or IOPS rather than CPU capacity.
  • Evaluate the SQL Server edition in use for each instance — Enterprise Edition instances represent the highest potential savings due to the largest per-vCPU licensing premium.
  • Examine Multi-AZ deployments, where licensing optimization on the active node can yield significant savings on already-doubled deployment costs.
  • Confirm the current vCPU configuration and core count for each eligible instance to identify those still running at default core counts without optimization applied.
Remediation
  • For new RDS for SQL Server instances, configure the Optimize CPU feature at creation time by selecting a reduced core count appropriate for the workload's CPU requirements, starting with 7th generation instance classes (M7i or R7i) at 2xlarge or above.
  • For existing instances, first validate the optimization in a non-production environment by reducing the core count and benchmarking under realistic workload conditions — ensure CPU utilization remains within acceptable thresholds after the change.
  • Apply the Optimize CPU configuration to production instances during a planned maintenance window, as modifying the processor features requires a brief instance restart comparable to an instance class change.
  • When restoring snapshots or performing point-in-time recovery from instances with Optimize CPU enabled, explicitly specify processor feature settings or use default processor features if changing instance types, to avoid restore errors.
  • Establish a regular review cadence to evaluate CPU utilization on optimized instances and adjust core counts as workload patterns evolve, ensuring the reduced configuration continues to meet performance requirements.
  • For instances still running on 6th generation or earlier instance classes, evaluate migration to 7th generation instances to gain access to the Optimize CPU feature along with the broader pricing improvements these instance families offer.
Submit Feedback