(1) Self-service without upfront cost
(2) Pay as you go & continual cost/price reduction
(3) Pervasive service offerings with continual improvement
We were developing a sync-and-share cloud service + mobile/desktop application for multimedia products at that time (2009). It saved lots of development & testing efforts compared to traditional IT process. As you know, multimedia files take tons of storage space, IaaS's pay as you go and no upfront cost was a major deciding factor to develop that project/product.
(1) ELB stress testing is problematic for us at that time.
(2) Better technical support for those without paying AWS Premium Support.
I have the vague impression that we did run into some issues, but I don't remember the context.
3.5 out of 5.
3.5 out of 5. We didn't purchase/subscribe AWS Premium Support at that time, so we got very limited technical support from AWS forum, and AWS technical staff in Singapore. As AWS's expanded into different geographic regions with local team support, expect it should be better now.
Relatively straightforward, but would be more complex when taking security into consideration.
Different projects have different business goals and requirements (business & technical). We evaluated different vendors' service offerings for different projects/products. For instance, the aforementioned multimedia sync-and-share project was built on top of AWS. We also built a device firmware update service and a connection management service on top of AWS. However, for another online video editing, social-driven free cloud service, we built it on top of GAE instead.
As mentioned in previous answer, different projects have different functional and non-functional requirements. All perspectives from operation, management, and development should be evaluated for cloud service platforms.