Nearly everyone who uses AWS sooner or later asks the same question: Why are there SO. MANY. SERVICES?
There is no universal definition of an AWS service, but some counts put the total number over 200. There are probably a few more new services since I started writing this blog post!
Not only that, but many of the services appear to do almost the exact same thing. For example, Amazon Lightsail and AWS Elastic Beanstalk are both designed to help you quickly deploy applications on AWS without worrying too much about the underlying infrastructure. Even for these basic entry-level AWS services, it’s not easy to understand the differences between them, or why you would choose one over the other.
So that brings us back to the initial question. Why? What is the point of having all these different AWS services that just do the same thing? Reserved.ai was founded by seasoned Amazonians, so I was eager to get their perspective on this question.
The short but unsatisfying answer is that there is no point. It’s easy to imagine AWS as some sort of giant Death Star with Jeff Bezos as Emperor Palpatine pulling the strings, but it doesn’t really work like that.
One AWS engineer described it to me as “1000 startups in a trenchcoat.” In other words, AWS is made up of many small, relatively autonomous teams, and by and large, they are not operating according to a grand plan.
Reserved.ai’s CEO Aran Khanna described a scenario where AWS had three teams working independently on voice recognition. Who won? None of them. AWS acquired an external startup and went with their solution.
When you combine many small, autonomous teams with a breakneck production cycle, you get a ton of products with a lot of overlap. In short, you get chaos.
Founding VP of Engineering Daniel Christianto has worked at many of the tech giants, including Apple, Microsoft, and AWS. For that reason I was eager to ask him how those companies compared. Did working at each of them feel more or less the same?
“No, completely different” was his answer.
Microsoft and AWS are at opposite ends of the spectrum. Microsoft doesn’t start building a service until every inch of it is planned, discussed, and documented. In contrast, AWS operates on the mantra that a shipped product is better than a perfect product. Sometimes this leads to half-baked services being released, but it also lets AWS get products into customers’ hands quickly. From there they can start iterating and improving.
So where does this leave you as an AWS customer? Well, it’s certainly frustrating from an engineering point of view when you have to decide between similar AWS services, but from a cost management perspective, chaos isn’t a pit…
The pricing of every AWS service combined with every possible discount isn’t some sort of elaborate Rube Goldberg machine fiendishly designed to extract your money. In many cases, it’s pretty random.
This means there are good deals to be found - again, not because of some diabolical plan, but just because when you price a bunch of things more or less randomly, some of them end up being surprisingly cheap. The hard part is finding these bargains to get to the cloud savings.
Just looking at Reserved Instances, there are two types, two term lengths, and three options for upfront payment, which comes out to 12 options for each Reserved Instance. If you use many different instance types, you might need many different Reserved Instances to cover them. Of course, you could try to cover them with a Savings Plan, but those come with their own choices, and might not give you the same savings.
This is where Reserved.ai comes in. We automatically scour every branch and leaf of the tangled thicket that is AWS pricing to find the best deals. All you have to do is sign off on a purchase plan made up of the most efficient reservations for your existing workload. Though there are hundreds of AWS services, generating a significant amount of cloud savings is definitely possible with the right tools.