Is AWS really any good for production or integration environments?
I have limited (read next to none) experience with AWS. I only know of a few instances where someone has moved to AWS for flexibility:
Moved a busy forum from a dedicated server to AWS
Created an instance for an integration server
In both cases, AWS simply did not work. Both sites were too slow to the point they were almost deemed unusable.
I'm trying to work out if AWS is really bad (and whether I should bother with it) or is it a simple case that the developers who setup the aforementioned instances didn't really know what they were doing and they are really configured correctly?
I'm looking to setup my own integration server too and I'm trying to decide between an AWS instance or just a regular VPS from someone else.
I have been using AWS for quite a while and it offers capabilities that others dont right out of the box.
As far as the question goes, I will try to give you a general perspective since the question is not technical:
Big companies like Netflix or Heroku claim to implement their infrastructure on EC2 Instances.
AWS lets you isolate your Instances (servers) within your own private Virtual Private Cloud only accesible by your own boxes. This is a very important characteristic that other services like digital ocean or Heroku don't offer (they let you create a VPS but other clients with Droplets on the same Región would be able to reach your servers). Of course you can implement yourself ip tables for every server but AWS gives you that out of the box.
AWS has its own services that make your life easier once you learn them. For Instance, autoscaling groups that add Instances depending on traffic or time. AWS has different tools each one giving you more control but also more complexity.
Elastic BeanStalk - OpsWorks - CloudFormation
AWS gives you a free tier to try everything and cofigure all the stuff. Later on, When you are ready, you can just upgrade your Instances to accomodate your system for production needs.
There are many other services which you could integrate within your new AWS infrastructure. Like automatic deployments with just a Git push using CodeDeploy.
Complexity. You will have to dive deeper in the docs than other companies.
Documentation is a lot of times too dense and not to the point, with no screenshots. You can find other tutorials from AWS users that will help you out (not within Amazon).
To summarize, AWS offers you a great infrastructure to work with. It is indeed more complex than others available in the market, but you can get a lot of it.
DICLAIMER: I do not work for Amazon, I have just had a good experienc
If you are trying AWS with the micro instances, you may find them too slow for your purposes. Like with any cloud computing service, the larger instances will respond much more quickly.
Compared with my experience with companies like Rackspace and Softlayer, there is a larger learning curve with AWS, but with huge advantages. Every element of AWS is available through an API. In fact, they build the API first before adding the service to the AWS desktop manager. Identity management is very fine grained. All services can be managed through your own scripts. It's consistent and clean. If your traffic is low, it's even economical.
Much of AWS is simply a collection of well designed wrappers of existing technologies. But the scale of its resources is hard to imagine, and huge companies have switched over to AWS.
In the end, your project may not justify the increased level of complexity. There are definitely cheaper and easier cloud computing services.