Skip to content
Aurora
Sub-page 2 of 8
Cost & billing mechanics · Free

Running the I/O-Cost Math Before Migrating from RDS to Aurora

Decision drivers
  • Current RDS VolumeReadIOPs/VolumeWriteIOPs from CloudWatch
  • Which specific problem (failover time, replica lag, storage friction) is actually driving the migration
  • Whether the workload is high-small-operation ("chatty") vs. large sequential I/O

Production premise

Aurora bills differently from RDS, and the difference follows from the architecture. On Aurora Standard storage you pay per I/O operation, and instance rates run higher than the RDS equivalent. What you buy is AZ-level durability and reader scaling where every replica shares the writer's storage layer directly, instead of replaying a binary log onto its own copy.

So you are not paying for "faster." You are paying for a different storage architecture, and that architecture has a different cost shape from RDS's flat, EBS-backed billing.

Failure mode & inflection point

The point where this stops being a clear win is a chatty, high-small-operation workload. Aurora Standard bills each of those operations, so the more small operations your workload issues, the larger the I/O line grows — regardless of how much data is moving.

Price it before migrating, on the RDS instance you already run. Pull VolumeReadIOPs and VolumeWriteIOPs from CloudWatch and take the average. Monthly millions of operations is (avg IOPS × 3,600 × 730) / 1,000,000; multiply that by your region's per-million-I/O rate to get the monthly I/O charge.

Now hold that number against what you would spend on Aurora compute for the same workload. If the I/O charge is already a meaningful fraction of the compute cost, the throughput numbers on the marketing page will not show up as savings. They will show up as a bigger bill for the same workload.

Production guardrail

Do not approve an Aurora migration until two things have actually happened. Someone has run the I/O-cost math above against your current RDS VolumeReadIOPs/VolumeWriteIOPs numbers. And someone has named the specific problem the move is meant to solve: failover time, read-replica lag, or storage-growth friction.

If neither exists, the migration is being approved on the throughput slide — a decision about a chart rather than about your workload.