Just some of the services that AWS supports.
Amazon Web Services (AWS for short) is a suite of hosting products that aims to take the headache out of traditional hosting solutions. Services like Dropbox and websites such as Reddit all use AWS.
AWS isn't just for the Dropboxes and Reddits of the world, though. You and I can host a couple of servers on AWS and quite efficiently too. I recently have been using AWS to host the web backend for an iPhone application I built for a regional tech conference, Philly Tech Week.
For transient events like this, AWS makes a lot of sense. The traffic is high for about a week, and then will dwindle off, allowing me to manage the amount of server power needed to host the backend without being tied into a yearlong contract, or paying for power I don't necessarily need.
I've compiled my reasons for choosing AWS and taken the top five and explained them here. So let's dive in and see why AWS is better than the competition, for big and small users.
5. A La Carte Pricing
Amazon took a refreshing approach to pricing its hosting when launching AWS. Every service is "a la carte", meaning you pay for what you use. This makes a lot of sense for server infrastructure, as traffic tends to be very bursty, especially the larger the site is.
Traditional hardware, for the most part, goes unutilized for 90% of its lifecycle. Working at a bank made this painfully obvious, where we got concerned if the CPU on the mail server got over 10%. I never actually got an answer why we got concerned, as usually the server just kept chugging away, but that was the mentality. AWS helps deal with this problem by keeping it cheap during the slow times.
4. The Free Tier
The biggest reason many people do not use AWS is lack of knowledge. EC2 is not like a traditional hosted solution, as it's designed to bring servers online and offline very quickly as needed. Because of this, many IT professionals were leery of using EC2 (or the rest of the AWS suite) because of the cost associted with "playing around" to figure it out.
The free tier, which provides enough credit to run an EC2 micro instance 24/7 all month, resolves this. It comes with S3 storage, EC2 compute hours, Elastic LoadBalancer time, and much more. This gives developers a chance to try out AWS's API in their software, which not only enhances their software, but also ties them to AWS, which benefits Amazon in the long run.
There's no denying the speed of AWS. The Elastic Block Storage is nearly as fast as S3, but provides different features. EC2 Compute Units give Xeon-class performance on an hourly rate. The reliability is better than most private datacenters in the world, and if there is a problem, you're usually still online ,but with reduced capacity.
A great example of this is the recent "outage" that happened in the Northern Virginia cluster of AWS, one of Amazon's primary server farms in the US. It affected Reddit, Wordpress.com, and several other major sites. These sites were still online though, with many in a "read-only" mode, as Amazon had to shut down writing to their backend storage until they could resolve the problem.
In a traditional hosting environment, this probably would have meant downtime and 404 errors as the websites would have just gone dark. But in a truely cloud-hosted environment like AWS, there's enough separation between processing and storage that sites can remain online and continue generating revenue even with reduced functionality. I personally host my sites out of the Northern Virginia cluster, and experienced no problems.
But the performance power of AWS is in the storage. The distributed nature of EBS and S3 yields millions of input/output operations per second to all instances. Think of it like having a raid array of SSDs attached to a particular computer. Add in incredible bandwidth, and you have a storage system that is capable of vast scaling, with the reliability of 99.999999999%.
2. Deployment Speed
If you've ever had to provision a hosted web service, you know this pain very well. Traditional providers take anywhere from 48-96 hours to provision a server. Then you have to spend a few hours tweaking it and getting everything tested.
AWS shrinks that deployment time to minutes. If you utilize their Amazon Machine Images, you can have a machine deployed and ready to acceptconnections in that short amount of time. This is important when, for example, you are running a promotion that generates tons of traffic at specific intervals, or just need the flexibility to handle the demand when a new product launches.
The most important feature in AWS is its flexibility. All the services work and communicate together with your application to automatically judge demand and handle it accordingly.
Combined with the fantastic API and the Amazon Machine Images you create, you can have a completely customized solution that provisions a server instance in under 10 minutes, and is ready to to accept connections once it comes online. Then you can quickly shut down instances when they are no longer needed, making server management a thing of the past.