We want to change how we deploy MongoDB on AWS because of three issues:
- the shared database is way too big (some clients are shared)
- even the separate databases are getting noisy-neighbour issues because the server itself is holding too much data (hitting bad IOPS levels)
- we want better disaster recovery
So I want to split things up into sets of replica sets where each set has three EC2 instances and handles between 1 and N databases. Some clients have the budget to get their own set, others need to still be shared somehow to avoid a min cost of too many EC2 instances. I would like to avoid sharding and just have different server setups that we administer separately with our internal tools. My question is: how to determine how many and how large of databases to put on each set of 3 server replicas? Are there good heuristics for determining this? Or particularly good resources for learning this dark art? I realize this is rather general, but I don't think it's opinion based, so hope it's ok.