AWS RDS - Changing Instance Class So I'm fairly new to AWS and I'm hoping you guys can reassure me as I couldn't find anything in the AWS documentation either way. I actually have two questions, the first:

I have an RDS MySql instance in AWS that wasn't set up by myself (a previous employee did this). This instance is more powerful than we need so I want to reduce it's instance class in order to reduce costs.

Can I simply change it and apply the changes at the next maintenance schedule without loosing data?

The current instance is a multi-AZ configuration. 

The second:

How can I identify how much of the RDS storage is currently in use? As I'd like to decrease this if possible as we aren't even using 50% of it.

Thanks,
Changing Instance Class:

From the documentation "Modifying a DB Instance and Using the Apply Immediately Parameter", changing the instance class and setting "Apply Immediately" to false will result in:


The change being applied during the next maintenance window.
The change causing an outage to occur.


Since the instance is Multi-AZ and you're changing the instance class, your outage will be minimized to the amount of time it takes to failover to the standby replica. That isn't very long; likely worst-case a minute or two. You won't lose data that is already in the DB. Any existing connections will be dropped during failover. You should verify that applications connected to your database can withstand these conditions, or alternatively take them down for maintenance during this time.

Identifying RDS instance storage capacity:

You can identify how much of the RDS storage is currently in use by either:

1) Simply selecting your RDS instance from the RDS web console and viewing the "Storage" bar under the "Monitoring" header.

2) Viewing the "FreeStorageSpace" RDS cloudwatch metric for your RDS instance.

Further Reading:


RDS Documentation - Viewing DB Instance Metrics