Spectacularly contrarian take: “Use one server“
When you experience growing pains, and get close to the limits of your current servers, today’s conventional wisdom is to go for sharding and horizontal scaling, or to use a cloud architecture that gives you horizontal scaling “for free.” It is often easier and more efficient to scale vertically instead. Using one big server is comparatively cheap, keeps your overheads at a minimum, and actually has a pretty good availability story if you are careful to prevent correlated hardware failures. It’s not glamorous and it won’t help your resume, but one big server will serve you well.