Licensing Oracle in a public cloud: the CPU calculation impact

Posted in: Cloud, Technical Track

Update 2015-May-11: Jean-Michael dug up another Amazon Web Services document that offers up a different definition of virtual cores that may affect license requirements on AWS at least

First of all a disclaimer: I don’t work for Oracle nor do I speak for them. I believe this information to be correct, but for licensing questions, Oracle themselves have the final word.

With that out of the way, followers of this blog may have seen some of the results from my testing of actual CPU capacity with public clouds like Amazon Web Services, Microsoft Azure, and Google Compute Engine. In each of these cases, a CPU “core” was actually measured to be equivalent to an x86 HyperThread, or half a physical core. So when provisioning public cloud resources, it’s important to include twice as many CPU cores as the equivalent physical hardware. The low price and elasticity of public cloud infrastructure can however offset this differential, and still result in a cost savings over physical hardware.

One place this difference in CPU core calculation can have a significant impact, however, is software licensing. In this post I’ll look at Oracle database licensing in particular.

Oracle databases can be licensed using many metrics, including unlimited use agreements, embedded licenses, evaluation/developer licenses, partner licenses, and many more. But for those without a special agreement in place with Oracle, there are two ways to license products: Named User Plus (NUP) and processor licenses. NUP licenses are per-seat licenses which have a fixed cost per physical user or non-user device. The definition of a user is very broad, however. Quoting the Oracle Software Investment Guide:

Named User Plus includes both humans and non-human operated devices. All human users and non-human operated devices that are accessing the program must be licensed. A non-human operated device can be many things, such as a temperature-monitoring device. It is important to note that if the device is operated by a person, then this person must be licensed. As described in illustration #1, the 400 employees who are operating the 30 forklifts must be licensed because the forklift is not a “non-human operated device”.

So, if the application has any connection outside the organization (batch data feeds and public web users would be examples), it’s very difficult to fit the qualifications to count as NUP licenses.

Now, this leaves per-processor licenses, using processor cores that can potentially run the database software as licensing metric. When running in a public cloud, however, there is an immediate issue, which is your Oracle instance could presumably run on any of the thousands of servers owned by the cloud provider, so unique physical processors are virtually impossible to count. Fortunately, Oracle has provided a way to properly license Oracle software in public cloud environments: Licensing Oracle Software in the Cloud Computing Environment. It sets out a few requirements, including:

  • Amazon EC2, Amazon S3, and Microsoft Azure are covered under the policy.
  • There are limits to the counting of sockets and the number of cores per instance for Standard Edition and Standard Edition One.

But most importantly is the phrase customers are required to count each virtual core as equivalent to a physical core. Knowing that each “virtual core” is actually half a physical core, it can shift the economics of public cloud usage for Oracle database significantly.

Here’s an example of a general-purpose AWS configuration and a close equivalent on physical hardware. I’m excluding costs of external storage and datacenter costs (power, bandwidth, etc) from the comparison.

  • m3.2xlarge
  • 8 virtual / 4 physical CPU cores (from an E5-2670 processor at 2.6GHz)
  • 30GB RAM
  • 2x80GB local SSD storage
  • 3-year term

Total: $2989 upfront

A physical-hardware equivalent:

  • A single quad-core E5-2623 v3 processor at 3GHz
  • 32GB RAM
  • Oracle standard edition one
  • 2x120GB local SSD
  • 3-year 24×7 4hr on-site service

I priced this out at dell.com and came out with a total of $3761.

Now let’s add in an Oracle license. From the Oracle Price List, a socket of Standard Edition One costs $5800, with an additional $1276/year for support. Due to the counting of CPU cores, our AWS hardware requires two sockets of licensing. So instead of saving $772, we end up paying $9628 more.

Cost comparison: Standard Edition One

If we were to use Oracle Enterprise edition (excluding any options or discounts), that becomes an extra $157,700. Not small change anymore.

Cost Comparison: Enterprise Edition

So before you make the jump to put your Oracle databases on a public cloud, check your CPU core counts to avoid unexpected licensing surprises.

email

Interested in working with Marc? Schedule a tech call.

About the Author

Marc is a passionate and creative problem solver, drawing on deep understanding of the full enterprise application stack to identify the root cause of problems and to deploy sustainable solutions. Marc has a strong background in performance tuning and high availability, developing many of the tools and processes used to monitor and manage critical production databases at Pythian. He is proud to be the very first DataStax Platinum Certified Administrator for Apache Cassandra.

14 Comments. Leave new

Maris Elsins
April 24, 2015 4:04 am

Hi Marc,

I think it’s important to note that also Amazon RDS for Oracle is covered by this policy unless it’s the Standard Edition [One].

Maris

Reply
Jean-Michel
May 11, 2015 1:55 am

Hi Marc,

I had some discussion with some Amazon representatives on this subject.
They are telling me that in fact there should be no issue on this point. They point out 2 things.
1/ First this document, which show the virtual cores provided by Amazon EC2 & RDS : http://aws.amazon.com/ec2/virtualcores/
In it, the number of cores is half the number of vCPU. ( 1 virtual core = 2 vCPU)
2/ Secondly, in the document “Licensing Oracle Software in the Cloud Computing Environment” (http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf) we have to count “virtual cores” : therefore if we count virtual cores (and not vCPU) there should be no problem.

What’s your opinion on this approach ?

Reply
Marc Fielding
May 11, 2015 8:52 pm

Thanks for the comment; I hadn’t seen the Virtual by instance type page before. And surprisingly, there are currently no links at all to the page, either on aws.amazon.com or anywhere on the web. I guess this page will be first. Quoting:

Some independent software vendor (ISV) licensing is based on the number of virtual cores an instance provides. To assist you with virtual core licensing calculations for ISV software, the following tables shows the virtual cores provided by Amazon EC2 Instances and Amazon RDS DB Instances.

The listed virtual core counts are indeed half of the advertised vCPU counts. So the m3.2xlarge instance in the example above is listed as having 4 virtual cores, not 8 vCPUs.

The question then becomes: what is considered a virtual core for Oracle licensing purposes? The AWS document talks about independent software vendors but does not mention Oracle. AWS also published a licensing document for SQL server that defines a virtual core as a “virtual representation of hardware threads”, and our same m3.2xlarge instance has 8 of them.

So to me what counts a virtual core isn’t entirely clear. Jean-Michel, if your Amazon contacts can tell you if Oracle is or is not one of the independent software vendors in their virtual core page, I think it would go a long way towards clearing up the discrepancies.

Reply
Jean-Michel
May 13, 2015 3:00 am

Hello

The Virtual by instance type page is well hidden on Amazon website : it has been communicated to me by an AWS reprensative while discussing the Oracle subject. (Oracle is considered has one of the independant software vendor by Amazon)
I’ve asked Oracle for a clarification, and they told me that Amazon approach is right. I ask for a document (with the authorization to forward it) from them within a few days on this subject.

BTW : my first name is Jean-Michel :)

Reply
Jean-Michel
May 19, 2015 7:11 am

Hello Marc,

I’ve got confirmation from Oracle.
here is for instance how a m3.xlarge is priced :

m3.xlarge = 4vCPU = 2 x86 physical cores = 1 Oracle processor licence

regards

Reply
Joseph Amalraj
July 8, 2015 10:34 am

Thanks Jean-Michel. That information is very useful.

Reply

Hello Jean-Michel,

Thank you for sharing this information.
-> m3.xlarge = 4vCPU = 2 x86 physical cores = 1 Oracle processor licence

so can we confirm that if I want to run production workload into this EC2 Instance (m3.xlarge) we just need to buy license for “1 Oracle processor licence”.

Do you mind to share that link / document with me.

Thank You

Regards,
Jignesh

Reply

You also have to take into account the fact that on a physical server you can install as many instances as the RAM and I/O can bear, whereas an AWS RDS instance is just one Datbase instance.

Reply

In the following document, it described as follows.

Best Practices for Running Oracle Database on Amazon Web Services, December 2014
https://d0.awsstatic.com/whitepapers/best-practices-for-running-oracle-database-on-aws.pdf

Page 4
The virtual core count of Amazon EC2 instances is considered equal to the physical core count for licensing purposes. To find out the virtual core count of each Amazon EC2 instance type, see Virtual Cores by Amazon EC2 and RDS DB Instance Type.(https://aws.amazon.com/ec2/virtualcores/)

Reply

Hi guys.
This is really good news actually! I did not know that EC2 virtual core page either.
So actually the m3.2xlarge would also be covered by 1 processor license.
As Oracle now only sells EE and SE2 licenses, we are assuming the SE2 licensing in the cloud is equivalent to the “old” SE One licensing.
In one case we have right now, I have for a while thought that using e.g. the c4.4xlarge would required EE licensing as this is 16 vCPU’s, but from the virtual cores page it is only 8 “virtual cores” which means that we can in fact use SE2 licenses! This is so great, but I want Oracle’s word for this.
But this is actually how the rules should be in general as 1 physical core is 2 vCPU’s (hyper threads). So I would say that Amazon did it right. Oracle is just a difficult “beast” to deal with :)
Thanks for pointing me to this. Super great news.
– Morten

Reply
Orly Andico
June 24, 2016 6:33 am

There is no official Oracle document which points to the Amazon virtual core document.

However, we have numerous communications from Oracle representatives which reiterate this point (none of these communications are public documents however).

The best option for any customer who is in doubt is to reach out to Oracle and get that assurance from them in writing. Caution! some Oracle people don’t know about the virtual cores, and believe that 1 vCPU = 1 Oracle CPU! (a 4X increase in the license footprint) or 1 vCPU = 1 core (a 2X increase).

Disclosure: views expressed are my own and do not necessarily reflect those of Amazon. I worked at Oracle for 9 years.

Reply

Hi,

Please can you help me as how we can license oracle database in cloud, as I am new to this and wanted to learn. Is there any documnent which wil help me to understand oracle licensing in cloud with examples.

Thanks in advance!

Reply
Orly Andico
July 6, 2016 7:00 pm

On-premise Oracle licenses are fully portable to AWS, with the exception that licenses used on AWS cannot be included in a ULA declaration. Everything you need to know (from an Oracle perspective) is here –

http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf

Excerpt: “Example, for Database Enterprise Edition licensing in an Authorized Cloud Environment:
Licensing Oracle Database Enterprise Edition on a single instance of 8 virtual cores (on Intel
multicore chips; see the processor metric definition on the price list), would require 8 * 0.5 = 4
processor licenses (each virtual core is considered equivalent to a physical core).”

Bear in mind that for AWS at least, 4 vCPU = 2 Hyper-Threaded cores = 1 Oracle processor (following the Virtual Core table here) –

https://aws.amazon.com/ec2/virtualcores/

Do not conflate “virtual cores” with “virtual CPU’s” they are not the same, and this confusion leads to the (mistaken) belief that “licensing Oracle on AWS is twice as expensive as on-premise.”

Reply

For your info… Oracle have recently (23rd Jan, 2017) changed the definition for AWS EC2/RDS instances. The Core Factor table is now not used. Now for everything that is using hyperthreads (most current instance types), 2vCPUs = 1 processor licence.

This is a huge change from the previous situation. and roughly doubles the cost of running Oracle in AWS.

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *