AWS Database Blog

AWS tools to optimize your Amazon RDS costs

Customers are actively exploring opportunities to optimize their expenses, aligning with the Cost Optimization pillar of the AWS Well-Architected Framework. In this post, we discuss the following tools that you can use to analyze your spend and optimize your Amazon Relational Database Service (Amazon RDS) costs:

AWS Trusted Advisor

AWS Trusted Advisor is a valuable tool for optimizing costs, not only for Amazon RDS but also for various other AWS resources. Customers with Business Support or higher get access to 115 Trusted Advisor checks, including 14 cost optimization recommendations. Trusted Advisor can assist in optimizing Amazon RDS costs in the following ways:

  • Idle DB instances – Trusted Advisor provides valuable insights into idle RDS instances. It identifies instances with low or no utilization, categorizing them as idle, and recommends actions such as deletion or stopping. These actions help eliminate unnecessary costs associated with underused resources.
  • Overutilized DB instances – This check identifies RDS instances that are consistently overutilized in terms of CPU, memory, or storage. It recommends scaling up the instance size or implementing other optimizations to improve performance and potentially reduce costs.
  • Underutilized DB instances – This check identifies RDS instances that are underutilized, suggesting that you may be paying for more resources than you need. You can downsize or modify the instance type to a smaller instance to save costs.
  • Idle DB connections – Trusted Advisor can also identify RDS instances with a high number of idle database connections. This might indicate inefficient resource allocation, and it recommends optimizing database connections to reduce resource consumption.
  • Multi-AZ settings – Trusted Advisor may suggest enabling a Multi-AZ (Multi-Availability Zone) configuration for critical RDS databases. AWS recommends Multi-AZ for production RDS clusters to ensure high availability, even though this can lead to an associated increase in costs.
  • Configuration recommendations – This general optimization check evaluates various aspects of your RDS configuration, including instance size, storage, and performance. It provides recommendations to improve resource efficiency and reduce costs.

Trusted Advisor can streamline the process of identifying cost-saving opportunities for Amazon RDS and other AWS resources. By regularly reviewing Trusted Advisor recommendations and acting on them, you can effectively manage AWS costs while ensuring that your infrastructure meets your performance requirements.

Instance Scheduler on AWS

If you have RDS instances that are running at full utilization but are only necessary during regular business hours, consider starting and stopping these instances to reduce costs. For example, these could be RDS instances running in a dev or test environment or specific instances in a production environment. By stopping instances outside of business hours, you can save up to 70% on Amazon RDS spend.

After you identify workloads that fit this use case, rather than manually starting and stopping each instance, you can use the Instance Scheduler on AWS solution. AWS solutions are technical reference implementations built and vetted by AWS Solutions Architects and AWS Partners designed to help customers solve common problems.

Instance Scheduler on AWS is a straightforward, automated scheduling solution that starts and stops tagged instances. You can schedule when these instances should be started or stopped by adding, updating, or removing schedules using either the Amazon RDS console or the solution’s command line interface.

To deploy Instance Scheduler on AWS, choose Launch in the AWS Console for one-click deployment in any AWS Region. After it’s deployed, the solution applies the appropriate start or stop actions to tagged RDS instances in all Regions, which will help reduce instance utilization and in turn reduce overall cost.

AWS Backup

Managing backups for multiple RDS instances can be operationally challenging and potentially lead to increased costs. For organizations facing this complexity, AWS Backup offers a powerful solution to simplify and centralize backup operations. This service enhances existing RDS backup capabilities while providing a unified approach to manage backups across numerous RDS instances and other supported AWS services.

Key benefits of AWS Backup for RDS include:

  • Centralized Management – Consolidate backup scheduling, retention policies, and monitoring for all your RDS instances in one place, reducing operational overhead.
  • Single Pane of Glass – Gain a comprehensive view of your backup landscape, allowing administrators to easily align backup strategies with business objectives and identify potential cost-saving opportunities.
  • Operational Efficiency – Reduce the complexity of managing backups across multiple RDS instances can save you time, minimize potential errors, and lower operational costs. For example, AWS Backup can automatically delete backups that you no longer need by configuring your lifecycle settings when you create your backup plan. This reduces the need to manually review backups which is error prone and can lead to additional storage usage and cost.
  • Cost Optimization – Easily monitor backup storage usage and costs across all instances, ensuring they align with expectations and helping to optimize resource allocation.
  • Compliance Support – Facilitate adherence to data retention policies, Recovery Time Objectives (RTO), and Recovery Point Objectives (RPO) across your organization without the need for custom scripts or manual processes.

By using AWS Backup alongside native RDS snapshot capabilities, you can create a robust, efficient backup strategy that meets your business needs while minimizing unnecessary storage costs and operational complexities. This approach not only simplifies operations but also provides the flexibility and control needed to support diverse business requirements in a dynamic cloud environment, ultimately leading to better resource management and potential cost savings.

Cloud Intelligence Dashboards

The Cloud Intelligence Dashboards are a collection of Amazon QuickSight dashboards that executives, directors, and other individuals can deploy in their own AWS accounts. These dashboards allow you to visualize cost and usage reports, identify trends and patterns, and recognize areas for cost optimization.

For example, to visualize database spend, you can deploy the Cost and Usage Dashboards Operations Solution (CUDOS) dashboard. This dashboard contains a summary sheet for all databases deployed, including Amazon RDS, Amazon Redshift, Amazon OpenSearch Service, and more. It includes such recommendations as using Single-AZ deployments for non-business-critical database instances and Multi-AZ deployments for business-critical database instances. You can view database spend by different dimensions such as purchase options (for example, On-Demand compared to Reserved Instances), instance family, instance type, or processor type. You can view daily storage costs to identify trends and insights, providing opportunities to reduce cost. To get started using the CUDOS dashboard, refer to Creating Cost and Usage Reports. The following screenshot shows the Trusted Advisor Organizational (TAO) dashboard, which has a sheet dedicated to cost optimization.

Daily Cost by Instance Family

For example, you can see potential savings from idle RDS instances using a KPI visual, or you can use the bar chart to view monthly estimated savings over the past 2 months. To review each instance, refer to the detailed table, which lists each idle RDS database. The following screenshot shows how many days have passed since the last database connection, and the estimated monthly savings that you will incur after you delete that instance.

Amazon RDS Idle DB Instances

To learn more about these dashboards, see A Detailed Overview of the Cost Intelligence Dashboard. To deploy any or all of these dashboards, refer to the Cloud Intelligence Dashboards lab portion of the Well-Architected Labs.

Amazon CloudWatch

Amazon CloudWatch provides a set of valuable metrics and insights for Amazon RDS, allowing you to closely monitor, alert, and optimize costs. The following are some key CloudWatch metrics in the context of Amazon RDS cost optimization:

  • CPU utilization – CPU usage metrics help you understand how much computational power RDS instances consume. By monitoring this metric over time, you can identify periods of high and low usage. During low utilization periods, consider downsizing to a smaller instance type or implementing auto scaling to save costs.
  • Database connections – Monitoring the number of database connections can help you detect unusual spikes in traffic. An unexpectedly high number of connections might indicate a need for additional database resources. Conversely, consistently low connection counts could suggest that you can downgrade instance size to optimize costs.
  • Freeable memory – This metric indicates the amount of memory available for a selected RDS instance. If you notice that freeable memory is consistently high, it may be an opportunity to switch to a smaller instance type or allocate memory more efficiently within the database.
  • Read and write IOPS – Input/output operations per second (IOPS) metrics help assess your database’s disk performance. Consistently hitting the provisioned IOPS limits may be a sign that you need to adjust the IOPS allocation or consider a different storage volume. Over-provisioning IOPS can be a significant cost driver.
  • Storage usage – You should closely monitor RDS storage usage. You can utilize Enhanced Monitoring metrics such as os.fileSys.usedPercent and os.disks.availPc for assessing disk utilization. These metrics are accessible through CloudWatch logs. If the storage usage consistently approaches the provisioned limit, consider resizing the storage to avoid incurring additional charges. Furthermore, it is advisable to perform routine data cleanup and implement effective database archiving strategies to optimize storage costs.
  • Replication lag – If you’re using read replicas in Amazon RDS, a high replication lag could signal performance issues or the need for additional replicas. Optimizing your read replica strategy is crucial for balancing performance and cost.
  • Database throughput – You should assess your database’s throughput to determine if it’s over- or under-provisioned. Utilize real-time Amazon RDS metrics for the operating system (OS) on which your DB instance runs. These metrics include TPS (I/O transactions per second), Disk I/O Utilization, Write IO/s, Write Throughput, Read IO/s, and Read Throughput. Use them to analyze database activity and identify bottlenecks. Additionally, optimizing queries and indexing can contribute to achieving the desired throughput with fewer resources.
  • Query performance – Although this isn’t a direct CloudWatch metric, you can use Amazon RDS Performance Insights to identify top SQL queries contributing to high database load and optimize them.
  • Billing metrics – AWS also provides billing metrics that can be monitored via CloudWatch. These metrics show Amazon RDS costs over time, and by correlating them with other performance metrics, you can assess the impact of different configurations and associated costs.

Conclusion

In this post, we looked at five tools that allow you to monitor and optimize your Amazon RDS spend. Using these tools you can identify cost-saving opportunities for Amazon RDS and other AWS resources.

We recommend you to review your Trusted Advisor recommendations, including 14 cost optimization recommendations. We also recommended to identify workloads that are only necessary during regular business hours and start and stop them using Instance Scheduler. Additionally, we encourage you to use AWS Backup to manage your backup and retention strategy at scale allowing your business to mitigate unnecessary storage costs. We also discussed how you can visualize Amazon RDS spend in QuickSight to identify trends and patterns, and optimize cost by driving financial accountability. Finally, we recommend to review your metrics in Amazon CloudWatch, which provides a set of valuable metrics and insights for Amazon RDS, allowing you to closely monitor, alert, and optimize costs.

For more information about cost optimization of other AWS services, refer to Cost Optimization of “other” services.

If you have any questions, reach out to AWS Support and your AWS account team if you need further assistance in optimizing your AWS environment.


About the Authors

Konala McGrath is a Solutions Architect at AWS. He supports SMB customers across all industries and helps them build highly scalable, cost-optimized cloud solutions. He has been with AWS for over 5 years, helping customers migrate and scale their infrastructure on AWS. In his free time, he enjoys spending time with his family, skiing, biking, and watching the 49ers. Konala holds a bachelor’s degree from the University of Washington in Mechanical Engineering and is based in the US.

Dusty Poole is a Solutions Architect at AWS, based out of Texas. He helps SMB customers in the Central US accelerate their adoption of the AWS Cloud by providing architectural guidelines to design innovative and scalable solutions. Outside of work, he loves to fish and support the Buffalo Bills.

Akshaye Nanglia is a Solutions Architect at AWS who supports SMB customers. In his role, he works with customers to build highly scalable, cost-optimized cloud solutions that can be deployed instantly. He holds a master’s degree in Business Analytics from the University of Texas at Dallas and is based out of Texas.