In my experience they are usually the same specs but this is not a requirement. Usually if your building something like this you just buy 2 or 3 parts of each. But it depends on what its being used for in the end.
What this guy
did was build a bargain super computer. He has 24 CPU's working together to complete jobs. and he uses the DrQueue software to distribute the work load between them. If you wanted to do that, the only hardware requirement seems to be have the NAS, which kinda makes sense for data integrity across the processes.
But you said you were doing a web server which is not really done as the same thing. You could do what google does and have a cloud system that handles all the searching done on a huge database, but just serving web pages with load balancing and a false safe for crashes isn't really the same thing.
In your setup for the web server there really us no hardware requirements. But, depending on what you are doing, you'll usually want the software to be the same versions across systems.
Some web servers like this system use a NAS as well, but i've always preferred the systems where you have say, 2 servers providing requires and an rsync job in the background of one that keeps the http files in sync. However if you have data that apache is constantly changing then you're going to want to have a NAS.
The same would go with them mysql, you'd have to sync the data files back and forth, or setup a master and slave system for replication. Tons of software out there that can give you a single interface that controls a dynamic backend of servers. I've only had additinal mysql servers for performance, but the same software setups would in affect give you redundancy backups.