
We are planning to switch to Amazon Web Services (“AWS”) and have been testing the service extensively over the past few weeks. Our conclusion: AWS is a great product that we are definitely going to use, but contrary to its reputation, it may not be suitable for small companies without serious IT capabilities.
In order to support this conclusion, we offer in the table below a comparison along key axes between the typical requirements of small companies and the main characteristics of AWS.
| Main requirements of small companies | Main characteristics of AWS | |
|---|---|---|
| Simplicity | A lot of small companies have no internal IT resources, and indeed outsource their IT infrastructure to focus on their core business. As a consequence, they tend to favor the simplest architecture available. | “EC2”, “S3”, “EBS”, “AMI”… you probably never heard these acronyms before even if you are an IT professional: they are the (sexy) names of various services included in the Amazon Elastic Compute Cloud (“EC2”) bundle. If you choose AWS, you will have to gain a solid understanding of the concepts behind the acronyms. Advanced virtualization and system skills are required, and AWS cannot be considered an alternative to IT outsourcing. |
| Costs | Whatever these costs are (hardware, software, human resources…), a startup or small company will try to minimise them for a given performance level. Small companies will also be looking for predictability in this area. | AWS charge you for network activity, disk I/O, offline disk usage, public IP association to your machine, and most importantly for the time your machine stays up. This makes perfect microeconomic sense but also makes the final cost to the user difficult to forecast, at least a the beginning. In addition, we estimate that a company with small present and future computing needs will find AWS more expensive than buying its own servers. |
| Flexibility | Given the potential lack of programming expertise at small companies, it would be ideal if projects could start in one language and opportunistically be modified using libraries written in other languages. Is AWS more flexible in this respect than Google App Engine where applications can only be written in JAVA or Python? | With AWS, you build your own server (Hardware and Software) according to your needs. You are hence not restricted to specific uses. However, unlike other systems, AWS does not offer out-of-the-box installation for generic purposes, such as hosting a JAVA application. |
That being said, we have found AWS to be:
- Very scalable: With 10+ instance types with different virtual hardware allocated, it’s easy to find a virtual server that meets your needs. From time to time or temporarily, you can allocate a lot more resources to your project either by changing your instance type to a new, compatible one, or by launching many instances similar to the one you are using.
- Efficient: We were really surprised by the overall great performance of the service, especially in terms of disk I/O that we expected to be small since AWS uses virtualization.
- Consistent: As discussed earlier, AWS requires time to be understood but once this investment made, the whole system feels consistent and administrator friendly.
As a conclusion, we believe that should your company need a very scalable and efficient set of servers (SLA of 99.5%) and should you have enough internal resources to handle its architecture, then AWS is made for you. Besides our own implementation process, we have found a number of convincing case studies on the AWS website to support this conclusion.
I will be publishing on this blog in a near future another, more technical article about the main AWS products.
Français
English 