Hey everyone! I'm a junior DevOps with some experience in cloud services, and our team currently doesn't have an architect. I'm looking for ways to optimize costs for our AWS RDS instances, as our application is quite small. We have two SQL standard edition databases hosted on AWS RDS with on-demand pricing. Our production database is a db.r5.2xlarge instance (8 CPUs, 64GB RAM) with multi-AZ enabled, while our non-production database is a db.m5.large (2 CPUs, 8GB RAM) without multi-AZ. I've noticed that the CPU utilization is usually below 30%, and there's plenty of free memory. Both instances have backups enabled for seven days and are currently costing us over $5,500 per month. I'm aware about reserved instances which could save us around $1,000 monthly, but I'm curious if there are other ways to minimize costs. Should I consider downgrading the instances? What metrics should I monitor to help with this? Also, are backups and snapshots different in terms of costs? Any advice would be greatly appreciated! Thanks!
5 Answers
It sounds like a database architect could help design a more efficient system. Their role would focus on optimizing database structure, ensuring performance, and planning for future needs, which could lead to better cost management too.
Why not ditch RDS altogether? Check out DynamoDB for a more cost-effective solution depending on your use case. It might save you a lot in the long run!
Consider investing in Reserved Instances or Savings Plans if you're open to a one-year commitment. This can significantly cut down your costs compared to on-demand pricing!
Have the developers look into switching your DB to MySQL or PostgreSQL if possible. Also, if your service level agreement allows it, you might want to disable multi-AZ. And, adding a cache in front of your DB could help reduce the compute load and costs!
First off, measure your application's performance metrics, like transactions per second and average query times, using an observability tool. Establish acceptable performance benchmarks, then gradually reduce your database capacity until you start seeing performance issues, then scale back up slightly. Regularly check this every few months to make sure you're optimized without sacrificing performance!
Thanks for the inputs!