I want to optimize license usage for my Amazon Relational Database Service (Amazon RDS) for Oracle DB instance.
Resolution
Choose a licensing model
There are two licensing options available for Amazon RDS for Oracle DB instances, License Included (LI) and Bring Your Own License (BYOL).
The LI model is supported only for Amazon RDS for Oracle Database Standard Edition Two (SE2) instances.
The BYOL model is supported on Amazon RDS for the following Oracle database editions:
- Oracle Database Standard Edition Two (SE2)
- Oracle Database Enterprise Edition (EE)
For more information, see RDS for Oracle licensing options. To change the license for your RDS for Oracle DB instance, see How do I modify the licensing model and database edition of an Amazon RDS for Oracle DB instance?
Turn on hyper-threading on your DB instance
Use hyper-threading on your RDS for Oracle DB instances to optimize the licensing costs of your software. Hyper-threading allows you to use an instance that has enough RAM for memory-intensive workloads but has fewer CPU cores. For more information, see Optimize CPU options.
When you use hyper-threading on your RDS for Oracle DB instances, you can separately control the number of CPU cores and threads for each core. After you associate a setting with a DB instance, the setting persists until you change it.
1. Check the allowed values for your RDS for Oracle DB instance:
aws rds describe-valid-db-instance-modifications --db-instance-identifier <instance-identifier> --query "{ValidProcessorFeatures:ValidDBInstanceModificationsMessage.ValidProcessorFeatures}" --region <region-name>
The output is similar to the following:
"ValidProcessorFeatures": [
{
"Name": "threadsPerCore",
"DefaultValue": "2",
"AllowedValues": "1,2"
},
{
"Name": "coreCount",
"DefaultValue": "2",
"AllowedValues": "2"
}
2. Turn on hyper-threading. Modify the following command based on the allowed values you received in the previous output:
aws rds modify-db-instance --db-instance-identifier <instance-identifier> --processor-features "Name=coreCount,Value=2" "Name=threadsPerCore,Value=1" --apply-immediately --region <region-name>
3. To confirm your changes, run the following command:
aws rds describe-db-instances --db-instance-identifier --query "DBInstances[].{ProcessorFeatures:ProcessorFeatures}" --region
"ValidProcessorFeatures": [
{
"Name": "coreCount",
"Value": "2"
},
{
"Name": "threadsPerCore",
"Value": "1"
}
],
Note:
- When you modify a DB instance to configure the number of CPU cores or threads per core, there's a brief DB instance outage.
- To turn off the hyper-threading, set the thread per core to 1.
- If you restore a snapshot, then the restored DB instance uses the processor feature settings that were in place when the snapshot was taken.
- (Optional) Modify the DB instance class for a DB instance that has non-default processor settings. You must specify either the default processor settings, or specify processor settings at modification. When you modify a DB instance, you might incur third-party licensing costs.
- When you specify processor features on an RDS for Oracle DB instance, there's no additional or reduced charge. The charges are the same when you launch a DB instance with the default CPU configuration.
Integrate BYOL with AWS License Manager
To monitor license usage, integrate AWS License Manager with your RDS for Oracle DB instances.
Related information
DB instance classes that support processor configuration
Setting the CPU cores and threads per CPU core for a DB instance class
create-license-configuration
Tracking your Oracle licenses using AWS License Manager