$1000/mo on a few frontend servers for only 20K concurrent users seems excessive.
I've seen simple $40/mo droplets handle 50,000 concurrent websocket connections with minimal latency without breaking a sweat.
$2000/mo on databases is also nuts, unless you're storing hundreds of terabytes at high redundancy levels.