If you deal with fluctuating load (and it's safe to say that any non-trivial system does), then you have three options:
- Over provision your cluster.
- Try to find a magic ideal size and deal with outages, timeout, and slow performance.
- Grow and shrink your cluster based on demand.
Let's discuss the preceding options in more detail:
- Option 1 is expensive. You pay for resources, you don't fully utilize most of the time. It does buy you some peace and quiet, but eventually, you may run into a spike of demand that temporarily exceeds even your over provisioned capacity.
- Option 2 is not really an option. You may find yourself there if you opted for over provisioning and underestimated.
- Option 3 is where you want to be. Your ...