Score:8

Is there anything about going from gp2 to gp3 storage which requires careful consideration?

ge flag

I'm maintaining an AWS RDS database (db.m6g.xlarge) which has a 750GB disk. This gives 2250 IOPS and the RDS monitoring tells me that the read throughput on average is ~ 50MB/s and write throughput is ~ 2MB/s.

The database IOPS hovers around 2250, so it clearly needs more IOPS.

I'm looking at the new gp3 storage, and when I set up a price estimate for that storage type for a 750GB disk I get 12000 IOPS and 500 MiBps (524.288 MBps) for the same price as the current gp2 disk costs.

This sounds too good to be true. Getting a gp2 with 12000 IOPS would require 4TB of storage and cost 1500 USD/month, and getting an io1 disk with 12000 IOPS would cost 2600 USD/month. The database with a gp3 disk will cost about 700 USD/month.

enter image description here

I believe the "catch" in this is that any IOPS and/or throughput that exceeds the 12.000 IOPS and 500 MiBps will incur additional costs, but it's not entirely clear to me how this is calculated.

$0.005/provisioned IOPS-month over 3,000;

$0.04/provisioned MiB/s-month over 125MiB/s

If I move our database from gp2 to gp3, we get an additional 9750 IOPS. With out current throughput of about 50MB/S, I can't see how we'd exceed the 500 MiBps baseline for gp3.

enter image description here

  • Is there anything particular about the gp3 storage type I need to be careful about, which I need to know, but have clearly forgotten to consider?
  • How does an IOPS-month work for IOPS above the 12000 IOPS baseline? If an RDS database hovers around 10000 IOPS, but sometimes "bursts" to 20000 IOPS - how does this count towards an IOPS-month?
Tim avatar
gp flag
Tim
The only one I know of is large volumes can be cheaper or faster in gp2 than gp3, I forget the details, I read it a while ago. Otherwise it should be fine. Moving some volumes your device name changes in Linux, which can be fiddly, but I don't think that's the case with gp2 to gp3.
Score:2
cn flag

Limited by IOPS is a different thing than needing more IOPS. The latter is more of an organizational needs thing, are the applications using this database performing adequately? Interactive response latency, batch jobs completing on time.

However, an upgrade at a lower cost is an easy win, sure. Their cost structure is a black box, so don't worry too much about what makes this price possible. Presumably, microtransactions on IOPS is revenue from people who want more out of smaller volumes.

Cost per "provisioned IOPS" on gp3 seems to mean you pay for the quota you set. As in a static per month charge, I think. Do not expect it to burst above this quota, that's the incentive to get you to pay more. 12,000 IOPS and 500 MiBps free (and your total cost number) seems to imply 4 disks, if you want to do it that way sure. Watch costs and performance to be sure of no surprises.

As usual for storage migration, before doing so test your backup restore process. Out of an abundance of caution, even for non-disruptive changes. A good excuse to catch up on this last line defense for business continuity, if you have not done so in a while.

A storage migration would be an opportunity to check how the data volumes are labeled. Use specific identifiers like file system UUID or LVM names. Not generic block device like /dev/sdb which will eventually change. Less of your concern if using a managed database.

ge flag
the database is performing OK, but certain key queries are taking a very long time to complete compared to the "bare metal" server we used to run the database on. The EBS burst balance for the (managed) RDS database is constantly at zero, and IOPS likewise continuously hits the ceiling at 2250. Getting 12000 IOPS for the same price is very tempting, but somehow sounds too good to be true.
Filip Hedman avatar
cm flag
@sbrattla did you make the switch to gp3? I had the exact same thoughts about it being "too good to be true", but I can't figure out if it is.
ge flag
@FilipHedman we did not swith to gp3. I discovered that we're using aws cdk v1, which does not support gp3. It appears we need to migrate to v2 before we can use gp3.
Score:2
au flag

It's not "too good to be true". It is true. Above a threshold (400GB for MySQL, Maria, and PostgreSQL, and 200GB for Oracle), RDS stripes the storage across 4 volumes. The default (i.e. free IOPS) is 3000 IOPS per volume. So, above the threshold, you get 12,000 IOPS included in the storage price. "Cost for Provisioned IOPS" is for any additional IOPS you want above 12,000. If, say you want 15,000 IOPS, you'll pay and additional per month charge for 3,000 provisioned IOPS. It doesn't matter if you actually use them or not, and you can't exceed the provisioned IOPS. I'm not sure where you got the "$0.005/provisioned IOPS-month over 3,000" quote from, however. gp3 is a big win over gp2 for most use cases, including yours.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.