Amazon RDS Instances: db.m1.large vs db.m3.large

Recently, Amazon announced new instance types for RDS.

Currently, we are running db.m1.large, and it looks like the new db.m3.large is comparable but cheaper.

Before moving these over, I wanted to double check with you guys that there are no hidden "gotchas" I'm not seeing. Are there any reasons not to move our instances to the new, cheaper, faster instance type?


Solution 1:

The only real cons I can see are:

  • lack of PIOPS optimisation for the db.m3.large (where you would have guaranteed bandwidth connecting you to EBS and PIOPS volumes)
  • smaller (albeit faster) instance/ephemeral storage for the m3.large (32GB SSD vs 2x 480GB HDD), and to be honest I'm not sure instance storage is relevant for RDS instances

And that's it. In return for these cons, you receive faster CPUs and lower prices.

I have already moved a standard m1.large instance running CentOS+MySQL slave (i.e. an EC2 instance, not an RDS instance) to an m3.large. The idle CPU floor dropped from around 6-7% to 1.5-2%, and peak loads are reduced from around 85-90% to 45-50%, simply by relaunching as an m3.large.

Solution 2:

according to the AWS RDS documentation db.m1.large is PIOPS-optimized, but db.m3.large is not

RDS Instance Classes

Standard - Second Generation db.m3.large

vCPU:2 ECU:6.5 Memory (GiB):7.5 PIOPS-Optimized:No Network Performance:Moderate

Standard - First Generation db.m1.large

vCPU:2 ECU:4 Memory (GiB)7.5 PIOPS-Optimized:Yes Network Performance:Moderate