Recently I have been working on optimising costs and scale down resources when they are not in use for non prod environments.
I am currently looking at scaling vertically RDS instance. I would like to change the RDS instance class to something smaller than what it needs during non business hours. This is because Devs and automated tests do not work and run all day long hence outside business hours I would like to change the instance class to something cheaper to run. By what I could find on the web people recommend to set up cloud watch alarms on certain RDS metrics such as CPU usage etc. And then once alarm is triggered, use event bridge to trigger a lambda which would change the RDS instance class to what it needs to be.
Since we know what our business hours are, generally we would like to scale up/down at certain time of the day. Given this I was thinking to use event bridge scheduler that will invoke a lambda on a schedule which will change the RDS instance class.
Even though I know this is doable, because I've done it with other resources, I would like to know if this approach is unusual or wrong for RDS? If so, why?
Also can I scale down/up RDS instance using different family types?
Is there any other better approach to achieve what I want?
Lastly, if relevant to non prod envs what are the risks of scaling up/down RDS instance?