Amazon’s Relational Database Service (Amazon RDS) offers dozens of instance types, sizes, and families — and choosing the wrong one can quietly drive up costs, limit performance, or create scaling risk over time. What looks like a simple infrastructure decision often turns into a FinOps challenge, where teams overprovision “just in case,” undersize critical workloads, or struggle to explain rising database spend.
In this guide, we break down AWS RDS instance types in practical terms: what they are, how classes and sizes differ, and how those choices affect performance, scalability, and cost efficiency in 2026 and beyond. You’ll learn how RDS instances work, how to compare options, and how to think about instance selection through a price-performance and visibility lens, not just raw specs.
Let’s start by defining what Amazon RDS instances are and what they do:
Definition: Amazon RDS Instances (Instance Classes And Sizes)
An Amazon RDS instance is a managed database environment with defined compute, memory, and networking capacity. What many teams call an “RDS instance type” is actually a combination of a DB instance class (such as db.m6g or db.r6g) and an instance size (such as large or 4xlarge), which together determine database performance, scalability limits, and cost.
Note: AWS officially calls these resources DB instances. In this guide, we use RDS instance types to reflect how most teams refer to RDS instance classes and sizes in practice.
What Does An Amazon RDS Instance Do?
Amazon RDS is a Database-as-a-Service (DaaS) platform. RDS instances are virtual servers that provide the computing power to set up, run, and maintain databases in the AWS public cloud.
AWS refers to the specific instances that power Amazon RDS as database instances (DB instances).
DB instances provide an isolated environment in which to create and host one or more relational databases. Yet, you can access those databases just like a regular stand-alone database.
RDS DB instances (virtual hardware) run a kind of operating system (software) known as a relational database engine (DB engine).
Amazon RDS currently supports six DB engine types:
- Amazon Aurora
- MariaDB
- MySQL
- PostgreSQL
- Oracle
- Microsoft SQL Server
There are different versions of these engines, each with different features. The one thing they all have in common is that they run on RDS database instances.
How do those database instances work?
RDS Instance Classes Explained
RDS instance classes group instance types by how they balance CPU, memory, and networking performance. While AWS exposes many instance families and sizes, most RDS instance types fall into a few predictable performance patterns.
Understanding these patterns is more useful than memorizing specs. From a FinOps perspective, instance class selection directly affects:
- Cost stability under load
- Scaling behavior during traffic spikes
- How much idle capacity you pay for over time
The table below summarizes the most common RDS instance class categories and when to use them.
| Amazon RDS Instance Class | Use case | No. of vCPUs supported | Amount of Memory Supported in GiB | Networking I/O |
| Standard performance | Workloads with light in-memory functions | Up to 64 | 1.7 to 256 | 0.45Gbps to 10Gbps |
| Burstableperformance | Where you may need instances capable of handling sudden spikes in heavy load as needed (bursts). | Up to 128 | 17.1 to 3904 | 0.50Gbps to 14Gbps |
| Memory optimized | Workloads with many in-memory functions, such as big data analysis | Up to 8 | 1 to 32 | Low to Moderate I/O |
Each RDS instance class includes both an instance type and size. An instance class can have several instance types. Then, each RDS instance type offers several instance sizes to choose from.
To avoid confusion, it helps to separate how AWS structures RDS instance options:
- Instance class describes the performance category (for example, burstable, general purpose, or memory optimized).
- Instance family identifies the hardware generation within that class (such as T3, M5, or R6g).
- Instance size determines the scale of resources, like vCPUs and memory (for example, large or 4xlarge).
What many teams casually call an “RDS instance type” is usually a combination of an instance family and size, such as db.m6g.4xlarge.
This flexibility gives you the freedom to choose the perfect database instance for your needs. It can also help achieve a healthy price-performance ratio. Yet, managing all those options often adds to the complexity of managing Amazon RDS.
What Are The Different RDS Instance Types?
While AWS exposes dozens of RDS instance families, they generally map to two broader performance profiles: general-purpose and memory-optimized. These profiles help narrow choices quickly before you compare specific families and sizes.
The table below shows how RDS instance classes, families, and types relate to each other, along with the workloads they’re best suited for.
| Amazon RDS Database Instance Classes | Database Instance Type | Amazon RDS instance families | Amazon RDS instance types | Use case |
| Standard performance | General-purpose | TM | db.t2db.m1, db.m2, db.m3, db.m4, db.m5, db.m5d, db.m6g | Baseline level of CPU performanceBalanced CPU, memory, and networking capacity for various types of workloads, but especially suitable for CPU-intensive workloads |
| Burstable performance | General purpose | T | db.t2 (Unlimited Mode)db.t3db.t4g | Balanced CPU, memory, and networking capacity for various types of workloads, but able to scale up performance during unexpected increases in workload for as long as needed |
| Memory-optimized | Memory-optimized | RXZ | db.r3, db.r4, db.r5d, db.r5b, db.r5, db.r6gdb.x1, db.x1e, db.x2gdb.z1d | Boost performance of processes that handle a lot of data sets in memoryDesigned for high performance in enterprise-grade and heavy in-memory usesCombines the highest compute and memory performance of any instance type |
What Are The Different Amazon RDS Instance Sizes?
RDS instance sizes determine how much CPU, memory, and networking capacity an instance provides. As instance sizes increase, costs rise non-linearly, especially when higher memory and networking tiers are involved.
Rather than scanning every size option, most teams should focus on:
- Whether the workload is CPU-bound or memory-bound
- Peak versus average utilization
- How often instance sizes change over time
The tables below outline the available instance sizes and their resource profiles so you can compare options efficiently.
| Database instance type | Database instance sizes | vCPU | Memory in GiB | Networking performance in Gbps |
| T2 | db.t2.microdb.t2.smalldb.t2.mediumdb.t2.largedb.t2.xlargedb.t2.2xlarge | 112248 | 12481632 | Low to moderateLow to moderateLow to moderateLow to moderateModerateModerate |
| T3 | db.t3.microdb.t3.smalldb.t3.mediumdb.t3.largedb.t3.xlargedb.t3.2xlarge | 222248 | 12481632 | Up to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5Gbps |
| T4g | db.t4g.microdb.t4g.smalldb.t4g.mediumdb.t4g.largedb.t4g.xlargedb.t4g.2xlarge | 222248 | 12481632 | Up to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5GbpsUp to 5Gbps |
| M4 | db.m4.largedb.m4.xlargedb.m4.2xlargedb.m4.4xlargedb.m4.10xlargedb.m4.16xlarge | 248164064 | 8163264160256 | ModerateHighHighHigh10Gbps25Gbps |
| M5d | db.m5d.largedb.m5d.xlargedb.m5d.2xlargedb.m5d.4xlargedb.m5d.8x.largedb.m5d.12xlargedb.m5d.16xlargedb.m5d.24xlarge | 2481632486496 | 8163264128192256384 | Up to 10 GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps12Gbps20Gbps25Gbps |
| M5 | db.m5.largedb.m5.xlargedb.m5.2xlargedb.m5.4xlargedb.m5.8xlargedb.m5.16xlargedb.m5.12xlargedb.m5.24xlarge | 2481632486496 | 8163264128192256384 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps12Gbps20Gbps25Gbps |
| M6g | db.m6g.largedb.m6g.xlargedb.m6g.2xlargedb.m6g.4xlargedb.m6g.8xlargedb.m6g.12xlargedb.m6g.16xlarge | 24816324864 | 8163264128192256 | Up to 10GbpsUp to 10GbpsUp to 10 GbpsUp to 10Gbps12Gbps20Gbps25Gbps |
| R4 | db.r4.largedb.r4.xlargedb.r4.2xlargedb.r4.4xlargedb.r4.8xlargedb.r4.16xlarge | 248163264 | 15.2530.561122244488 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps25Gbps |
| R5d | db.r5d.largedb.r5d.xlargedb.r5d.2xlargedb.r5d.4xlargedb.r5d.8xlargedb.r5d.12xlargedb.r5d.16xlargedb.r5d.24xlarge | 2481632486496 | 163264128256384512768 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps10Gbps20Gbps25Gbps |
| R5b | db.r5b.largedb.r5g.xlargedb.r5g.2xlargedb.r5g.4xlargedb.r5g.8xlargedb.r5g.12xlargedb.r5g.16xlargedb.r5g.24xlarge | 2481632486496 | 163264128256384512768 | Up to 10 GbpsUp to 10 GbpsUp to 10GbpsUp to 10Gbps10Gbps10Gbps20Gbps25Gbps |
| R5 | * | |||
| R6g | db.r6g.largedb.r6g.xlargedb.r6g.2xlargedb.r6g.4xlargedb.r6g.8xlargedb.r6g.12xlargedb.r6g.16xlarge | 24816324864 | 163264128256384512 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps20Gbps25Gbps |
| X1 | db.x16xlargedb.x1.32xlarge | 64 (32 cores)128 (64 cores) | 9761952 | 10Gbps25 Gbps |
| X1e | db.x1e.xlargedb.x1e.2xlargedb.x1e.4xlargedb.x1e.8xlargedb.x1e.16xlargedb.x1e.32xlarge | 48163264128 | 12224448897619523904 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps10Gbps25Gbps |
| X2g | db.x2g.mediumdb.x2g.largedb.x2g.xlargedb.x2g.2xlargedb.x2g.4xlargedb.x2g.8xlargedb.x2g.12xlargedb.x2g.16xlarge | 124816324864 | 1632641282565127681024 | Up to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10GbpsUp to 10Gbps12Gbps20Gbps25Gbps |
| Z1d | db.z1d.largedb.z1d.xlargedb.z1d.2xlargedb.z1d.3xlargedb.z1d.6xlargedb.z1d.12xlarge | 248122448 | 16326496192384 | Up to 10,000MbpsUp to 10,000MbpsUp to 10,000MbpsUp to 10,000Mbps10,000Mbps25,000Mbps |
From a FinOps standpoint, RDS instance size selection is one of the most common sources of cloud waste. Teams often provision for peak load, then pay for unused capacity during normal operation.
Common cost drivers include:
- Oversized instances running at low utilization
- Burstable instances operating continuously above baseline
- Memory-optimized instances used for workloads that don’t require large in-memory datasets
Because database workloads evolve, instance sizing should be revisited regularly, not treated as a one-time decision.
Other variables to consider when configuring RDS instances include whether they support enhanced networking, if they are EBS-optimized, and which database storage option to pair with them.
Now, it’s not uncommon to feel overwhelmed by the number of RDS instance classes, families, and types available. Right-sizing database instances can be challenging for many teams. So, how do you do it?
Related reads
How To Choose The Right Amazon RDS Instances For Your Workload
Choosing the right RDS instance type is rarely a one-and-done decision. Workloads change, usage patterns shift, and small configuration updates can significantly affect database costs over time.
Many teams start by manually testing different instance types and sizes. While this can work, it often leads to long trial-and-error cycles, inconsistent decisions, and unexpected cost increases as environments scale.
There’s a second option. Consider automating the process with a tool if you’re having trouble choosing the right RDS instance.
Using CloudZero Advisor, you can choose the most suitable Amazon RDS instances based on a combination of factors, like your DB engine, Amazon region, pricing, as well as your desired network, disk, CPU, and memory performance.
Check this out:

Moreover, CloudZero empowers you to collect, analyze, and understand your Amazon RDS costs in relation to your overall AWS spend. You can also zoom in to see your costs in a way that most cloud cost optimization tools never show you, like this:

With CloudZero, you can easily identify who, when, and where your cloud budget is going by viewing your:
- Cost per customer
- Cost per feature
- Cost per team
- Cost per project
- Cost per deployment
- Cost per environment
- Cost of goods sold (COGS), and more
Tagging Amazon RDS resources is also a big challenge since AWS tags are fragile and incomplete for cost ownership. RDS supports tags on instances and clusters. But those tags only appear in cost data if they’re activated as cost allocation tags, applied consistently at creation, and maintained over time. Even then, tags don’t reliably cover all RDS-related costs, which creates untaggable spend, charges that appear in billing but can’t be tied to a team, environment, or service using tags alone.
CloudZero improves this by first ingesting and validating activated AWS tags for RDS, then filling the gaps tags leave behind. It allocates both taggable and untaggable RDS spend using account structure, service relationships, and usage context, so database costs are still mapped to owners, environments, and business units even when tagging breaks down like this:

Useful resources:
RDS costs can also spike when instance sizes are changed, multi-AZ is enabled, read replicas are added, or storage auto-scales after a workload change. CloudZero detects these anomalies in real time and links each spike directly to the affected RDS resource, team, and change window. This enables teams to catch unexpected database cost increases early, before a single configuration change becomes a month-long billing surprise.

Ambitious brands such as Drift, Duolingo, Skyscanner, and more use CloudZero to reduce their AWS costs and save millions of dollars. By combining cost visibility, allocation, and change awareness, CloudZero helps teams make RDS instance decisions based on real usage and business impact — not guesswork.
Schedule a demo today to get started!
Amazon RDS Instances FAQs
The following are answers to the most frequently asked questions about Amazon RDS.
How much do Amazon RDS instances cost?
RDS costs depend on several factors, which we’ve detailed in our Amazon RDS pricing guide here.
What is the difference between RDS and EC2 instances?
The Amazon RDS service provides database instances, while the Amazon EC2 service provides compute instances.
How do I change my RDS instance type?
Use the AWS Command-Line Interface (AWS CLI), the AWS Management Console, or the Amazon RDS API to create or change your database instances.
Does changing my RDS instance type cause downtime?
RDS reboots your databases to apply changes, which can sometimes cause downtime. Be sure to plan your workload in advance to avoid disruptions to your service.
How long does it take to change an Amazon RDS instance?
You can either apply instance changes immediately or schedule them to apply in the next maintenance window.
Can I downgrade an RDS instance size?
You can change the size of your RDS instance depending on your workload.
Why are Amazon RDS instances more expensive than Amazon EC2 instances?
Amazon RDS is a fully managed AWS service that eliminates the need to set up, run, and maintain your own database infrastructure on AWS. This time-saving feature is reflected in RDS’ higher pricing.


