Definition(from Scaling up vs. Scaling out ):
scaling up -- a seriously big iron single server.
scaled out -- Hadoop or MapReduce style, across lots and lots of inexpensive servers.
Other factors(per year):
software licensing: if using all open source software, close to zero.
power cost.
Scaling up and scaling out are both viable solutions, depending on what problem you're trying to solve, and what resources (financial, software, and otherwise) you have at hand.
Some tips:
1. Chose proper database architeture. The Wikipedia database design need to be refactoring to avoid excessive joins in a lot of key queries. This is the key lesson from giant multi-terabyte table chemas (like Google’s BigTable) which are completely join-free.
2. CPU speed is surprisingly important to the database server. Going from 1.86 GHz, to 2.5 GHz, to 3.5 GHz CPUs causes an almost linear improvement in typical query times.
3. Key cost when scaling out. At low server volume, the key cost driver is not rackspace, power, bandwidth, servers, or software; it is NETWORKING EQUIPMENT. You need a gigabit network between your DB and Web tiers. Between the cloud and your web server, you need firewall, routing, and VPN devices. The moment you add a second web server, you also need a load balancing appliance. The upfront cost of these devices can easily be 2x the cost of a handful of servers.
4. Applications should keep state in the database so they scale horizontally by adding more servers.