Oracle’s guidance for licensing their software in a public cloud is found in their document, Licensing Oracle Software in the Public Cloud Environment, which has been around for years. It spells out how Oracle software can be licensed by counting virtual CPUs in Amazon and Microsoft public cloud instances. Since its inception, the policy has undergone frequent revisions, none of them benefitting Oracle’s customers.
As a refresher, this policy document is non-contractual but can be used to count licenses in the authorized public clouds. In our opinion, Oracle cannot unilaterally restrict privileges from a signed license agreement but can unilaterally grant additional privileges.
The Optimize CPU feature from AWS, traditionally used for right-sizing compute shapes to control licensing costs, allows for customizing the vCPU configuration of standard EC2 and RDS instances. The number of CPU cores, and threads per core, can be independently adjusted. This feature allows AWS clients to customize the amount of memory per vCPU by picking a larger instance and reducing the vCPU counts. This is done primarily for licensing reasons when the memory and I/O needs of a particular database led to choosing compute shapes with more vCPUs than necessary. Optimize CPU offered a great approach to avoiding paying for extra Oracle licenses on un-needed vCPUs
December 2021 Policy Revision
The latest update to Oracle’s cloud policy document was published in December 2021. The only change from the previous policy document, which was published in January 2021, is the following restriction.
“For the purposes of licensing Oracle programs in an Authorized Cloud Environment, customers are required to count as follows:”
“For the purposes of licensing Oracle programs in an Authorized Cloud Environment, customers are required to count the maximum available vCPUs of an instance type as follows:”
Many of our clients use the AWS Optimize CPU option to adjust the vCPU count to fit their licensing requirements. This change to the policy restricts the use of the Optimize CPU feature with Oracle workloads.
AWS To The Rescue
We strongly suspect that AWS saw this change coming, and already has a response prepared. House of Brick has been hearing from our customers in the last year that Oracle was attempting to advance the argument that Optimize CPU didn’t reduce licensing requirements and customers were required to fully licensed disabled and un-usable vCPUs. At the time it was an unsupportable argument as House of Brick has never seen an Oracle licensing agreement that includes language requiring licensing for disabled and un-usable processors, but clearly Oracle was interested in requiring customers to license these vCPUs in AWS.
Luckily for AWS customers, Optimize CPU was only one of the tools AWS had made available to customers for tailoring the compute shape to the right size for their workloads. AWS also made extended memory instances available in June of 2021 for the RDS service. These extended memory instances are an alternate way to accomplish the same thing as Optimize CPU but without conflicting with the language in the latest revision of the Oracle licensing rules for AWS/Azure. An extended memory instance is, just as the name implies, a compute shape with much higher than normal memory and I/O characteristics. While AWS has never disclosed to the public the background engineering details of their offerings, it is notable that a db.r5.4xlarge.tpc2.mem4x instance has the exact same vCPU, memory, I/O characteristics, and cost as a db.r5.16xlarge instance that has been disabled down to 16 vCPUs using the Optimize CPU feature. Regardless of the implementation details, the db.r5.16xlarge in our example would need to be licensed for 64 vCPUs under Oracle’s newest cloud policy, because the disabled vCPUs require licensing, whereas the db.r5.4xlarge.tpc2.mem4x is only available with 16 vCPUs and thus would only need to be licensed for 16 vCPUs.
Using the extended memory instances, customers of the RDS service in AWS can continue to tailor their compute shapes to find an architecture that is being license-optimal and performance-friendly for their exact workload. This does present a bit more of a challenge for customers using self-managed Oracle in an EC2 environment, as the extended memory instances are not yet available in EC2. With this change from Oracle we certainly hope that AWS prioritizes making these available quickly so EC2 users can enjoy the same flexibility to tailor the compute shape to their exact workload needs.
If you have any questions in applying this information to your specific situation contact us and we will help.
Written by Jeff Stonacek and Nick Walter.