Scaling horizontally is generally better, and can be done without downtime. Scaling vertically requires servers to be stopped and started. Horizontally requires an ELB which is additional cost, so scaling vertically can be better value if your server can tolerate some downtime. Some applications may scale better vertically than horizontally and it reduces complexity significantly. But still it totally depends on your application - what are your requirements based on that it can be decided.