- Route 53 Rundown
- Posts
- Fully Understanding RDS Cost Breakdown
Fully Understanding RDS Cost Breakdown

My clients (of all sizes) always ask me: Why is my RDS cost so high?
I work with companies who spend millions or hundreds of thousands annually to AWS, and help them improve cost efficiency for their company. I have found many hidden secrets that AWS doesn’t advertise, so I want to share it here in the form of a short, sweet, yet hopefully impactful blog. If you ever have questions, feel free to reach out to [email protected].
For those not familiar, RDS (the 2nd largest AWS service by revenue also has a name called Amazon Relational Database Service). I was learning that so many customers spent more than they should have been spending on RDS, for many different reasons:
1) They didn’t understand the cost breakdown of RDS (that is what the majority of this blog post is devoted towards).
2) They didn’t reserve an RDS instance for a static workload (perhaps an old RI expired).
3) They didn’t understand the difference between Aurora Serverless versus traditional RDS, and when is the best time either.
For this specific blog post, I’ll talk mostly about the first point, and how RDS costs can be broken down. First, let’s start with the basics. When we say RDS, we mean as defined by AWS Cost Explorer. So when you go to Cost Explorer, select the service as “Relational Database Service (RDS).”

There are three categories that come from the RDS cost in AWS:
1) Instance type costs
2) Storage costs
3) Data transfer and backup costs
Let’s dive deeper into the three different pricing categories.
#1 – Instance type costs: reflect charges related to the computing resources provisioned for your managed databases. In other words, these costs cover CPU (computational power), memory, and network performance, and vary with your selected instance type and configuration.
Some of the key components that impact instance-level pricing:
CPU Capacity: Cost depends on the amount of processing power (vCPUs). Instances with more vCPUs incur higher costs.
Memory (RAM): Instances with greater RAM allocation for memory-intensive workloads have higher hourly pricing.
Network Performance: Instances optimized for higher network throughput or lower latency generally come at higher cost.
Instance Class (Family and Size): AWS groups RDS instances into families like general-purpose (db.m*), memory-optimized (db.r*), compute-optimized, and burstable (db.t*). Pricing differs based on these families and sizes.
There are two pricing models for this part of the RDS spend: On-Demand vs. Reserved Instances.
On-Demand: Hourly billing with maximum flexibility (but at higher hourly rate). This is the default pricing model.
Reserved Instances (RI): Reduced hourly cost in exchange for a 1- or 3-year time commitment; upfront payments further reduce costs.
AND the…
Database Engine Licensing: Proprietary databases (Oracle, SQL Server) incorporate the licensing fee into the instance cost, increasing charges compared to open-source engines (PostgreSQL, MySQL, MariaDB).

In the above screenshot, you can see the dimension type we are using is instance type, with the service only being RDS. We can see that the db.t3.medium, db.t3.micro, and db.t3.small are costing $2.63, $0.97, and $0.66 respectively. That being said, there is a $0.68 cost categorized as “No instance type”. There are a few reasons for this charge including:
1) It could be because they are using RDS serverless
2) It could be because perhaps from storage costs or backup costs (or a mix of both)
The next two sections we will dive deep on what these costs come from, and how you can lower the costs of those bills.
#2 – Storage Costs: Storage costs in Amazon RDS primarily cover the provisioning and management of the storage volumes that hold your database data. Unlike instance costs (CPU and memory), storage charges depend on the amount, type, and performance level of storage allocated, as well as backup retention and snapshot storage.
1. Storage Type
AWS offers multiple RDS storage categories, each tailored for different database workloads and budget needs:
General Purpose SSD (gp2 and gp3) | This storage type strikes a balance between costs and performance, suited ideally for most applications. Pricing is based on the amount of storage (GB-month). The newer gp3 even offers fine-tuned performance settings like specifying exact throughput and IOPS for extra flexibility (with additional charges for increased performance). |
Provisioned IOPS SSD (io1) | If your workloads require guaranteed, predictable performance—think mission-critical databases that must maintain consistent, ultra-low latency—Provisioned IOPS SSD storage is the best choice. It's premium-priced, as AWS allows you to precisely define the number of IOPS (input/output per second) you need, charging an extra fee for each provisioned IOPS unit. |
Magnetic Storage (Legacy) | Considered a legacy storage option, magnetic storage is a low-cost alternative with lower performance metrics. It can work well for testing, development databases, or infrequently accessed workloads. |
Aurora Storage (specific to Amazon Aurora) | Amazon Aurora uses its own distributed, auto-scaling storage mechanism, custom-built to offer high availability, performance, and automatic scalability (up to 128TB). AWS bills Aurora storage based on actual usage (GB consumed per month) plus any additional storage I/O requests, making costs flexible yet very efficient. |
2. Provisioned Storage Capacity
RDS costs scale directly with the volume of storage you provision. If you allocate a certain amount—say 500GB—you incur charges every month for that full 500GB, regardless of how much data you actually store. (Aurora storage, by contrast, is charged according to how much storage you actually use.)
3. Storage Performance (IOPS)
With Provisioned IOPS storage, you pay extra specifically for the IOPS you allocate. If your application needs rapid, predictable database access or runs demanding transactions, you’ll pay incrementally more due to the increased performance requirements.
4. Backup and Snapshot Storage
RDS automatically generates backups and allows you to create manual snapshots. Although AWS provides some backup storage at no additional cost, excess storage used by retained backups or snapshots beyond the free allowance is charged an additional fee.
It’s a good practice to periodically review your backup policies and stored snapshots, ensuring you're not unintentionally accumulating storage costs on unnecessary backup copies.
5. How to Cut Costs in This Section
Match the storage option to your workload: Many databases run effectively with General Purpose SSD storage. Choose Provisioned IOPS only if your workload truly requires guaranteed performance.
Avoid over-provisioning: Monitor storage regularly and ensure you provision only as much as your workloads genuinely need.
Regularly audit backups/snapshots: Keep retained backups lean and purposeful, to avoid unexpected charges for excessive snapshot storage over time. If you don’t need it, don’t run it!
#3 Data Transfer and Backup Costs: In addition to instance and storage charges, Amazon RDS costs can also include data transfer fees and the cost of retaining database backups and snapshots. This category often surprises organizations, as it's less obvious and easy to overlook. Here, we’ll clarify exactly what's included and how charges are determined.
1. Data Transfer Costs
AWS typically charges based on how and where your data moves. When you operate an RDS database, you'll encounter costs primarily with the following scenarios:
Data transfer OUT to the Internet:
Data leaving AWS to reach external users or applications incurs charges typically based on the total amount transferred each month.
Note: Incoming data from the Internet into AWS rarely incurs additional charges.
Data transfer between AWS Availability Zones within the same region:
If your RDS instance transfers data to instances or applications located in a different Availability Zone (AZ) within the same AWS region, you're billed at a per-GB rate.
Cross-region data transfers:
Transferring data between AWS regions (for example, from US East to US West) will incur additional charges per GB transferred.
These cross-region transfers are more expensive than transfers between AZs within the same region.
Transfers within the same AZ:
Generally free. Data transfer channels within the same AZ—between RDS instances and EC2 instances—usually do not generate any costs.
As data volumes increase, so do these transfer costs. It's beneficial to keep your database and related applications or processes in the same region and AZ, whenever feasible, to reduce transfer costs.
2. Backup and Snapshot Storage Costs
RDS databases use automated backups and manual snapshots to ensure data durability and quick restore capabilities. However, the storage they consume can add up and incur charges:
Automated backups: AWS offers backup storage at no additional charge up to the provisioned storage size of your RDS instance. For example, if you provision a 100GB RDS instance, you receive 100GB of backup storage at no additional charge.
Backup storage exceeding this amount (due to increased retention periods or larger backup volumes) leads to monthly costs per additional GB stored.
Manual Snapshots: You can manually create snapshots, which are stored separately from your database. These incur storage fees based on the total amount of GBs they occupy per month.
If retained snapshots accumulate without regular cleanup or prudent snapshot management, storage charges may grow unexpectedly.
Cross-region Backup Replication and Snapshots: If you replicate snapshots or backups across AWS regions (to enhance disaster recovery capabilities), you will incur additional storage charges at your destination AWS region and cross-region transfer fees.
Practical Recommendations to Manage Costs:
Limit Cross-Region Data Transfers: Whenever possible, collocate related applications and databases within the same region and AZ to minimize regional and AZ-related transfer fees.
Regularly Manage Backups and Snapshots: Define clear and effective backup retention policies. Specifically, ensure snapshots are deleted when they're no longer needed. Regular cleanup reduces the buildup of storage charges.
Evaluate Backup Storage Needs and Retention Periods: Set retention windows carefully. Balance data recovery objectives with practical cost-reduction strategies.
While we didn’t dive so deep into RDS reserved instances or Aurora Serverless — I didn’t want to make this specific post way to lengthy, and can discuss it more in another article. Thanks so much for taking the time to read this! Enjoy.
Yaddle out.