Le développement d'un petit site web est relativement aisé, même pour un débutant. Quelques heures dans les docs de PHP et MySQL suffisent pour faire un site dynamique qui pourra supporter quelques centaines de milliers de connexions par jours (et c'est déjà pas mal). En règle générale, on adapte la taille du serveur au nombre d'utilisateurs et avec quelques centaines d'euros par mois on peut avoir de belles machines.
Le problème survient quand un seul serveur n'est plus suffisant pour gérer tout le trafic et qu'il n'y a plus d'optimisation possible (algos, cache, bdd,...). Il faut alors répartir le trafic sur plusieurs serveurs et c'est la que les ennuis (ou le fun) commencent. Il faut en effet veiller à la synchronisation de tout ce petit monde ce qui n'est pas forcément trivial. Il n'y a pas de solution prête à l'emploi et une architecture extensible (scalable in english) doit être le fruit d'une profonde réflexion sur les différentes fonctionnalités et technologies impliquées dans le site web.
Sur ce sujet je viens de découvrir un blog très intéressant : High Scalability Building bigger, faster, more reliable websites avec entre autre un article sur l'architecture de Flickr.
Bonne lecture.