This is not a difficult problem. I recently had to stand up a cluster of EC2 instances for a job that required a cluster of them and used these three steps:
1. Write a script to configure an instance and run it when the instance starts.
2. Clone the instance to an image
3. Run instances based on the image.
It's quite straightforward to do. See http://github.com/gyepisam/fcc-textify for more details.
Provisioning tools let you create it, and incrementally update your image in a way that lets you redo it from scratch at any time.
That alone is the reason why I like the idea, not necessarily the resulting applications that have been created so far for the task.
Shell scripts could do the same and have for years if your only interested in from scratch setups.