Scale Up vs. Scale Out
It is always hard to define how scalable your application is and to plan how we will scale our application. Whenever there is a debate we had plenty of things and yet left with hard situation of how to final.
Scalability as usually defined is the ability to increase the throughput of our application by adding more hardware to our system. In this context there are two options either to Scale up or to Scale out.
Scale Up (Vertical Scaling)
Scale up means adding more processors and RAM to a single node. If we look closely it gives us more memory to be shared, more dependent threads to get executed and ability to run more tightly coupled processes.
Scale Out (Horizontal Scaling)
Scale out means adding more nodes to the system. It will enable us to have small non-shared memory, more independent threads execution, loosely coupled processes interconnected through some bride and/or have multiple OS
According to above, it becomes evident that in case we need to scale our DB, we should go with Scale UP and in case of scaling our web server, we should go for Scale out. Again its not a hard and fast rule but generally a rule of thumb.