How can I do the math on resource consumption in order to find out the actual amount of resources that I need for my database cluster?
By running simulations of "realistic"1 usages of the system for a while (for simplicity, let's say one day only) and monitoring.
The simulations2 will provide metrics of the computational resources dedicated and data in the database.
As for the computational resources, I usually look for peaks of RAM and CPU2. As for the data2, I look for the estimated growth factor by comparing the initial size of the database with the current one.
If we know the availability of the system, we can multiply the availability and the growth factor to get an estimation of the size needed for the next T time frame.3
Finally, we (should?) add a margin of error to each resource. Say 10-20% depending on how pessimistic/optimistic you feel about the simulations. This margin is for unexpected peaks (you want the fewer downtimes possible). Peaks can be either good or bad news, depending on what's causing the deviation.
Once you have the numbers, you can do the maths with DigitalOcean's calculator (if they have any) or mail'em asking for support.
My approach might seem too simplistic or naive, but it doesn't matter since maths can be improved and be as accurate as you wish. The key is in the simulations and the monitoring.
Once in production, monitoring is still key because you will be asked to estimate growth factors periodically.
1: Say realistic, say conservative.
2: 1 run is not meaningful. Run the simulation several times for the same T time frame. Get several samples and compare. Then you either get the better / worse result or do the average.
3: For simplicity, I calculate availability in the same unit I have had running the simulations. If simulations have been running for 1 day, then I calculate the availability in days too.