Good things first!
Management Interface: Amazon really stands out here with ease of use of tools; its well packaged, excellent API and easy to use AWS management console.
AMI: Lot of community AMI's enables to quickly launch VM with required software pre-installed and configured with minimal effort. We used both Amazon's free AMI and third party AMI.
Security: Basic integrated firewall, you can easily setup basic security controls at the IP/Port level.
Database: Managed MySQL (RDS) works. Lot of DB management tasks like backup, monitoring replication etc are handled by Amazon support and we don't have to worry about it.
Functionality: You name it and Amazon has a solution for it. They are more like one-stop shop.
Backups: With the help of EBS and S3, backups are made easy.
Now the bad stuff!
1. Support: They have automated way too much and lacks human touch. It takes days if not weeks to get response from their sales support team. Also you need to enroll for Gold or Platinum level support to get phone support or quick turnaround and it can cost up to 10% of monthly bill.
2. Performance: I have lot to complain here:
- Instance CPU lacks power compared to competition. Process that used to take 40-50% CPU on large instance in EC2 runs quietly on our new cloud partner's platform medium instance.
- Inconsistent performance - At times we paid high price for load issues in Amazon's cloud. We had to closely keep eye on our Keynote monitoring and divert traffic between regions.
- RDS - Write or read operation on average takes upto 80 - 100 milliseconds. When our goal is response time under 100ms we had to constantly redesign our db operations. This made us to migrate to Cassandra very quickly.
Will share our experience with our new cloud provider later.