AWS Services:

Amazon Relational Database Service (RDS) makes it easier to set up, operate, and scale a relational database in the AWS Cloud. RDS provides few database products like MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server. RDS manages backups, software patching, automatic failure detection, and recovery. It provides cost-efficient, resizable capacity for an industry-standard relational database and manages common database administration tasks.


Description of the finding:

 The number of vCPUs varies according to the DB instance class. Based on the CPU utilization choose the appropriate instance class that matches your environment or requirement. So that no CPU will go underutilized and also it reduces the monthly cost that you are paying for unused resources.

Amazon RDS supports three types of instance classes: Standard, Memory Optimized, and Burstable Performance.

  • Standard classes (includes m classes)

  • Memory-optimized classes (includes r and x classes)

  • Burstable classes (includes t classes)


Recommendation:

RDS instance CPU is underutilized; average CPU usage is 9.86. Consider using a smaller instance size

Use CloudWatch metrics to get a report that shows either idle or have low CPU utilization, basically which are driving up the cost by wasting the resources. Based on the report we can choose the appropriate instance class that suits your needs. 

Note: We recommend that you test any changes on a test instance before modifying a production instance so that you fully understand the impact of each change. Testing is especially important when upgrading database versions.

*Resource information Listed below*

Note: Coordinate with client to get Approval to Proceed to Remediate issue. THIS REMEDIATION WILL REQUIRE DOWNTIME.

Affected Service Dependencies: 

  • ElastiCache

  • Database services

  • Snapshots


Implementation Plan:

Pre Requisites:

  1. Approval Required from the client for the downtime of the instance

  2. Make sure all the configurations are noted: Engine version, AWS KMS key, Instance class 

  3. Perform Snapshot of the Database as a backup


Current Status: (Check which Instance type is using currently)

  • Sign in to AWS console

  • Navigate to Amazon RDS service https://console.aws.amazon.com/rds/

  • Click on the Databases in the left navigation pane

  • Select the Database that you want to examine

  • Click on Monitoring Tab

  • There will be graphs shown, consider CPU Utilization graph

  • If you notice that the CPU utilization is minimum, you can consider using a smaller instance size
  • Like that, you can get the metrics for n number of databases. From there you can filter the underutilized CPUs

  • If you want to change the instance class follow the implementation steps


Implementation steps:

  • Sign in to AWS console

  • Navigate to Amazon RDS service https://console.aws.amazon.com/rds/

  • Click on the Databases in the left navigation pane

  • Select the database that you want to change

  • Click on the modify option on the top

  • Go to DB instance class section and Click on the down arrow to get options available

  • choose instance class type from the range of options that suits your requirement

  • click on continue at the bottom

  • Review the changes you made and schedule the modification from the options available

  • Once done with the review and scheduling click on Modify DB instance to apply changes or if you notice any mistake click on Back to go to the previous window


Status after Implementation:

After going through the implementation steps, perform the steps mentioned in the current status section to make sure that the changes have been applied successfully.


Back Out Plan: (If you want to rollback to the previous type)

If you want to roll back to the previous DB instance class at any moment, just follow the steps that you followed in the Implementation steps section, and then in the step where we want to choose the DB instance class, select DB instance type for the rollback.

Perform snapshot that can be used for restoration in case of any disaster

  • Sign in to AWS console

  • Navigate to Amazon RDS service https://console.aws.amazon.com/rds/

  • Click on the Databases in the left navigation pane

  • Select the Database that you want to create snapshot

  • Click on the Actions on top and select Take snapshot


  • Give the snapshot name and click on Take snapshot

  • To restore from Snapshot 

    • Navigate to snapshots on the left navigation pane

    • Select the snapshot you want to restore and click on Actions on top


    • You will be asked with a few details that are required to restore the snapshot

    • Fill in all the details required and click on the Restore DB instance at the bottom
      Note: 
      Keep the Snapshot for 5 business days before discarding it.


Reference: 

Managing an Amazon RDS DB instance - Amazon Relational Database Service 

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html#USER_ModifyInstance.Settings