This really makes me wonder what took Google so long. Google practically defined large scale commodity cluster computing with mapreduce (2004). Amazon EC2 was launched in 2006. The closest thing Google has done was app engine, and my understanding is that was not a tremendous success.
Does anyone have any explanations why Google didn't move into this space earlier?
Google doesn't use VMs internally and they probably don't have a scalable SAN (EBS competitor) either, so they don't have as much of an advantage as you might think. Google bet big on a "legacy-free" stack (GFS, MapReduce, BigTable, etc.) and that has worked out great for their internal services but external customers just aren't willing to adopt it (see App Engine).
Perhaps they viewed AWS to be closer to the classic hosting company as opposed to Cloud vendor and their selling point was "scale like us, Google" vs typical RoR+MySQL.