The dangers of Amazon Web Services
Almost every small-to-medium tech company I’ve worked with in the last five years has relied heavily on AWS — Amazon Web Services. This post is about why I think that’s dangerous and how things might be better.
Those who haven’t worked at a tech company: I’ll tell you a secret about the industry. A huge portion of what you do online runs on a machine owned by Amazon. Netflix, Slack, Lyft, Airbnb, Adobe. Medium. All of these companies rely heavily on AWS. Among startups, it’s the go-to service for getting started.
Much of what AWS does is good. They free other companies from the concerns of maintaining servers or low-level software used to build online services. Their prices are competitive. Their interfaces are thoughtfully designed. They provide precise design specs for reliability and some visibility into how well things are working. Many of the services are kept independent of others to support customized modular architectures.
In fact, if I started a company today, I would unquestionably use AWS. My argument is not that AWS is intrinsically bad, but rather that they’re so incredibly useful that they’ve created a danger of over-dependency.
What would happen if Amazon decided to drastically raise their prices on services without much competition? I believe most companies would simply choose to pay more rather than to find another solution. Many companies would have no choice.
What would happen if Amazon’s reliability decreased? A huge portion of web-based services would become unreliable, and have little recourse but to ask Amazon to improve.
A better world would be one where every Amazon service lived in a community of healthy competition. In some areas, there are non-Amazon alternatives, but often AWS offers the best choice.
In a sense, Amazon’s ability to overcode and undercut the competition is analogous to its ability to put independent bookstores out of business. Not many people want to buy more expensive books as a charity to local businesses — but neither do people want to be at the mercy of a single profit-focused corporation.
How can we move closer to a healthier, more decentralized tech stack? I suggest we move toward the wide-spread promotion of standard interfaces. For example, Amazon offers a data storage service called S3. I’m not sure about the legality of this, but, as a thought experiment, imagine that another company released a product with an identical interface. Then customers of S3 could easily become customers of the competition. This could ameliorate the problem of lock-in and monopoly.
If tech companies regularly use standards-based services, perhaps this can reduce their dependency on any one company for infrastructure. It may seem like a non-urgent concern, but it’s important. Consider how the world has evolved with the growth of decentralized, standards-based technologies like http, html, and email. Closed tech is good for one company; open tech is good for the world.