We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

RDS Storage and IOPS

When you create an RDS instance, you choose a type and amount of storage. AWS offers different storage types optimized for different workloads. Let's go over them.

General Purpose SSD (gp3)

This is the recommended default for most production workloads. It's a good balance of performance and cost:

  • Baseline performance: 3,000 IOPS (Input/Output Operations Per Second)
  • Scalable: At 400 GiB and up (for PostgreSQL), the baseline jumps to 12,000 IOPS, and you can provision up to 64,000 IOPS if needed
  • Cost-effective: Lower cost than provisioned IOPS
  • Use case: Most applications, up to moderate I/O requirements

Provisioned IOPS SSD (io1/io2)

This is for demanding workloads that need guaranteed performance:

  • Predictable performance: Guaranteed IOPS (1,000 to 256,000)
  • Low latency: Consistent performance
  • Higher cost: More expensive than general purpose storage
  • Use case: Databases with high transaction rates, large databases, I/O-intensive workloads

What Are IOPS?

IOPS (Input/Output Operations Per Second) measures approximately how many read/write operations your database can perform per second. Think of it like the speed limit of your database storage.

  • Higher IOPS = faster database operations
  • Lower IOPS = slower database operations

For most applications, the default 3,000 IOPS from general purpose storage is plenty. You need provisioned IOPS only if you have a specific performance requirement that general purpose can't meet.

Cost check: RDS storage is billed per GB per month (~$0.115/GB/mo for gp3). Provisioned IOPS costs more. Resizing or adding storage increases your bill; for learning, keep the default and clean up when finished.

There's also the older gp2, which scales baseline IOPS with storage size. Its storage price includes I/O operations, so there's no separate charge per read or write. We'll be using gp2 for this small project, but normally the rule of thumb is to use gp3 until you hit a bottleneck.