AWS Service:

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:

Using an older version of instance classes may lead to slow performance or may incur costs and many things that are fixed in new versions.

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:

Consider upgrading instance class from db.r4 to db.r5

If your current DB Instance class is db.r4 which is a bit older, you can upgrade it to db.r5 which offers improved networking and Amazon Elastic Block Store (Amazon EBS) performance and they are powered by the AWS Nitro System, a combination of dedicated hardware and lightweight hypervisor.

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/DynamoDB/S3


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)

  1. Sign in to AWS console

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

  3. Click on the Databases in the left navigation pane

  4. Select the Database that you want to examine

  5. You can find the current instance class by clicking on the database

  • If you want to upgrade the instance class to db.r5 follow the implementation steps


Implementation steps:

  1. Sign in to AWS console

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

  3. Click on the Databases in the left navigation pane

  4. Select the database that you want to upgrade

  5. Click on the modify option on the top

  6. Go to DB instance class section and Click on the down arrow to get options available
  7. Choose db.r5 instance class type from the range of options
  8. click on continue at the bottom
  9. Review the changes you made and schedule the modification from the options available
  10. 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.

  • Make sure the DB instance class that you changed(db.r5) is shown in the class section.


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 DB instance class, select db.r4 for the rollback.

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

  1. Sign in to AWS console

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

  3. Click on the Databases in the left navigation pane

  4. Select the Database that you want to create snapshot

  5. Click on the Actions on top and select Take snapshot

  6. Give the snapshot name and click on Take snapshot

  7. 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

NoteKeep 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


Total Cost Savings(Yearly)

Pricing examples

Product Details - t2.*

t2 instances are a low-cost, general-purpose instance type that provides a baseline level of CPU performance with the ability to burst above the baseline when needed. With On-Demand Instance prices starting at $0.0058 per hour

Name

vCPUs

RAM (GiB)

CPU Credits/hr

On-Demand Price/hr*

1-yr Reserved Instance Effective Hourly*

3-yr Reserved Instance Effective Hourly*

t2.nano

1

0.5

3

$0.0058

$0.003

$0.002

t2.micro

1

1.0

6

$0.0116

$0.007

$0.005

t2.small

1

2.0

12

$0.023

$0.014

$0.009

t2.medium

2

4.0

24

$0.0464

$0.031

$0.021

t2.large

2

8.0

36

$0.0928

$0.055

$0.037

t2.xlarge

4

16.0

54

$0.1856

$0.110

$0.074

t2.2xlarge

8

32.0

81

$0.3712

$0.219

$0.148

*Prices shown are for Linux/Unix in US East (Northern Virginia) AWS Region. Prices for 1-year and 3-year reserved instances are for "Partial Upfront" payment options or "No upfront" for instances without the Partial Upfront option. For full pricing details, see the Amazon EC2 pricing page.

Product Details - t3a.* instances

The t3a.* instances feature AMD EPYC, 7000 series processors, with an all-core turbo clock speed of 2.5 GHz. The AMD-based instances provide additional options for customers that do not fully utilize the compute resources and can benefit from a cost savings of 10%.

$Name

vCPUs

Memory (GiB)

Baseline Performance/vCPU

CPU Credits earned/hr

Network burst bandwidth (Gbps)

EBS burst bandwidth (Mbps)

On-Demand Price/hr*

1-yr Reserved Instance Effective Hourly*

3-yr Reserved Instance Effective Hourly*

$Name

vCPUs

Memory (GiB)

Baseline Performance/vCPU

CPU Credits earned/hr

Network burst bandwidth (Gbps)

EBS burst bandwidth (Mbps)

On-Demand Price/hr*

1-yr Reserved Instance Effective Hourly*

3-yr Reserved Instance Effective Hourly*

t3a.nano

2

0.5

5%

6

5

Up to 2,085

$0.0047

$0.0028

$0.0019

t3a.micro

2

1.0

10%

12

5

Up to 2,085

$0.0094

$0.0056

$0.0038

t3a.small

2

2.0

20%

24

5

Up to 2,085

$0.0188

$0.0112

$0.0075

t3a.medium

2

4.0

20%

24

5

Up to 2,085

$0.0376

$0.0224

$0.0150

t3a.large

2

8.0

30%

36

5

Up to 2,780

$0.0752

$0.0449

$0.0301

t3a.xlarge

4

16.0

40%

96

5

Up to 2,780

$0.1504

$0.0898

$0.0602

t3a.2xlarge

8

32.0

40%

192

5

Up to 2,780

$0.3008

$0.1796

$0.1203