One machine can only get so big, and while it is the only one, its failure is your outage. Horizontal scaling adds more machines behind a load balancer, which removes the ceiling and survives the loss of one. Use it for stateless app servers, and keep sessions in Redis or a token so any server can handle any request. Adding app servers does not help when the database is the bottleneck, and a bigger machine is often the quicker first step for a database.