If you’re finding Amazon Relational Database Service (RDS) costs tricky to understand and optimize, you’re not alone.
This guide, based on our experience helping hundreds of teams reduce their RDS spend, makes it simple to understand how pricing works, quick ways to cut waste, as well as advanced tips to stop overspending.

A crash course in RDS pricing

Amazon RDS simplifies database management by handling backups, scaling, and maintenance, reducing operational overhead—but its managed services can be more expensive depending on instance choices, storage configurations, and data transfer costs.
Amazon Relational Database Service
Image source: AWS
AWS RDS pricing is primarily made up of compute, storage, backups, and data transfer (each billed separately) with compute typically being the biggest cost driver. Most (but not all) of the tips on this list will focus on reducing costs in one or more of these categories.

Compute Costs (The Biggest Component)

RDS instances are billed per hour or per second, with pricing based on instance size and database engine. As an example, a small db.t3.micro costs around $0.017/hour (~$12/month), while a large db.r6i.8xlarge can exceed $2.00/hour (~$1,500/month). Open-source databases like MySQL and PostgreSQL only incur AWS infra costs, but SQL Server and Oracle require additional licensing fees, making them significantly more costly.

Storage Costs

RDS storage is charged per GB per month. General Purpose SSD (GP3) costs around $0.08 per GB, while high-performance options like Provisioned IOPS (IO1/IO2) can exceed $0.125 per GB plus IOPS fees. Storage is provisioned upfront, and costs increase with usage, but cannot be reduced without migrating to a new instance.

Backup and Snapshot Costs

AWS provides free automated backup storage up to the size of your database. If you have a 100GB database, you get 100GB of free backup storage, but any additional backups cost $0.095 per GB per month. Snapshots persist until deleted, and copying snapshots to another region incurs both storage and data transfer fees.

Data Transfer Costs

Traffic within the same AWS region is free, but cross-region replication and internet-bound data transfers add costs. Cross-region data transfer typically starts at $0.02 per GB, while outbound internet traffic is billed per GB and becomes EXPENSIVE at scale if your architecture involves frequent data movement across regions.

I/O Costs

I/O (input/output) charges quickly add up for workloads heavy on reads and writes. AWS bills I/O requests separately for Provisioned IOPS (io1/io2) volumes at around $0.10 per provisioned IOPS-month, making high-performance storage pricey. General Purpose SSD (gp3) includes a baseline of 3,000 IOPS at no extra cost, but any increase beyond the baseline is charged.

How to cost optimize on RDS

#1: Rightsize Your RDS Instances

Oversized instances are one of the easiest ways to waste money on RDS. Many teams overprovision for peak load rather than actual usage, leading to underutilized resources. A good rule of thumb: If CPU utilization is consistently below 40% and memory usage stays under 50%, your instance is likely oversized.
Use metrics from CloudWatch, Datadog or another monitoring tool to track usage patterns. If your instance is underutilized, consider downsizing to a smaller instance type or switching to burstable instances (like T3 or T4g) for workloads with sporadic spikes. For workloads with unpredictable demand, Aurora Serverless can scale automatically, so you’re not paying for idle capacity.

#2: Reduce Unused and Idle Resources

Non-production RDS instances running 24/7 are a major source of wasted spend. If your dev, test, or staging databases aren’t needed outside business hours, schedule them to shut down automatically. nOps Scheduler can help automate this process by using Machine Learning to learn your environments and cut costs without disrupting workflows.

Old backups and snapshots are another hidden cost driver. RDS snapshots persist until manually deleted, and AWS charges for storage at $0.095 per GB per month. Regularly clean up unneeded snapshots and backups—especially redundant automated snapshots that AWS keeps when upgrading an instance—to prevent unnecessary storage charges.

For databases that are rarely used, consider switching to Aurora Serverless or RDS on-demand stop/start, which allows you to pause and resume instances as needed instead of paying for constant uptime.

#3: Use AWS Commitments & Discount models

If you have steady usage and a stable architecture, Reserved Instances (RIs) and Savings Plans can cut RDS costs by up to 69%. RIs lock in savings for specific instance types and regions, making them ideal for predictable, consistent workloads. Savings Plans offer similar discounts but provide more flexibility across instance families and regions, which can be useful if your workloads shift over time.

A common mistake is overcommitting and paying for unused capacity—use AWS Cost Explorer or FinOps tools to analyze past usage before committing. If you have unused Reserved Instances, you can often list them for sale on the Amazon Marketplace.

#4: Use Aurora Serverless for Non-Prod and Non-Critical Databases

Provisioned RDS instances billed hourly or per second add unnecessary costs for environments that aren’t used continuously, like dev, test, or staging databases.

Aurora Serverless automatically scales capacity down when idle, significantly reducing compute charges. For example, instead of paying around $0.29/hour (~$210/month) for a db.r6g.large that’s idle most of the time, Aurora Serverless charges only for active usage. Switching your infrequently accessed or non-critical databases to Aurora Serverless can quickly cut costs without sacrificing availability.

#5: Optimize storage by switching from io1 or gp2 to gp3

Many assume that io1 is the best choice for running databases because of its high IOPS capabilities. However, in practice, most workloads don’t need the extra performance and can cut costs significantly by switching to gp3—often saving up to 50%.

gp3 volumes provide a baseline of 3,000 IOPS and 125 MiB/s throughput, independent of volume size. Unlike gp2, where IOPS scales with volume size, gp3 allows you to configure IOPS and throughput separately, so you can right-size performance to your workload’s needs.

For most workloads, migrating from gp2 to gp3 is a no-brainer, typically yielding around 20% savings without performance loss. You can use nOps to easily filter out eligible volumes and make the switch in minutes.

#6: Stop paying Extended Support fees

Your databases are not automatically upgraded to the latest version, so if you don’t make the update, you’ll be auto-enrolled into extended support. This is a common AWS billing pitfall, but easy to fix. A simple configuration change can eliminate these costly charges.

For provisioned instances on RDS for MySQL, RDS Extended Support is priced per vCPU per hour and depends on the AWS Region and calendar date. nOps makes it trivially easy to find these costs — just type in “extended” and “RDS” into the filters and voilà!

Right here you can see exactly how much you will save on RDS extended support and where to go to make the updates.

#7: Scale Efficiently with Read Replicas & Aurora

Amazon RDS read replicas help scale read-heavy workloads by distributing queries across multiple instances. They can improve performance for read-heavy workloads, but adding them without checking actual usage can lead to wasted spend. Before spinning up a read replica, check if your primary instance is consistently over 30% CPU and I/O utilization. Otherwise, optimizing queries or adding caching (e.g., Redis) could be a better first step.

For existing read replicas, if CPU and I/O utilization are below 30%, consider downsizing or consolidating back to the primary instance. But be mindful of I/O bandwidth limits when downsizing. Each instance type has a cap—if your workload relies on high throughput, a smaller instance might cause bottlenecks.

For workloads with multiple read replicas, Aurora can be a better fit, as its Multi-AZ standby is also a read replica, reducing unnecessary duplication. Aurora also auto-scales storage and replicas, removing much of the manual tuning required with standard RDS.

#8: Minimize Data Transfer costs

RDS cross-region replication starts at $0.02 per GB, and internet-bound traffic costs even more, making frequent data movement a hidden expense. Keep traffic within the same region when possible, and for unavoidable transfers, compress data or batch syncs to minimize costs.

For inter-service communication, use VPC endpoints or AWS PrivateLink to avoid unnecessary egress charges. If cross-region replication is required, evaluate whether all replicas are necessary—removing even one can significantly cut costs. For more tips on reducing data transfer costs, check out the complete guide.

#9: nOps makes RDS cost optimization easy

nOps simplifies RDS cost optimization by giving you complete visibility into your RDS spend, storage, and instance utilization—so you can cut waste, optimize resources, and avoid surprise charges.
  • Understand & optimize your RDS costs: nOps makes it easy to get 100% visibility into RDS with 40+ filters designed for engineering and finance — get insights into where you’re overprovisioning, underutilizing, unintentionally paying for extended support, etc.
  • Easily Compare I/O Costs: nOps makes it easy to see IOPS usage and costs, so you can quickly determine whether General Purpose (gp3), Provisioned IOPS (io1/io2), and IO-optimized instances will deliver maximum savings.
  • One-click optimize storage: nOps makes it ultra-easy to migrate to gp3 and save on storage.
  • Automate Non-Production Shutdowns– Instead of relying on manual scheduling, nOps uses ML to learn your usage patterns and automatically shut down idle instances during non-business hours to reduce waste.

nOps was recently ranked #1 in G2’s cloud cost management category, and we optimize $2 billion in cloud spend for our startup and enterprise customers.

Join our customers using nOps to understand your cloud costs and leverage automation with complete confidence by booking a demo today!