by Benjamin Coe
Building on a cloud infrastructure, such as AWS, offers huge benefits to an early-stage startup: You can start with minimal costs; at the same time, you can take solace in the fact that you're building on an infrastructure that will grow with your company. Having said this, the 'cloud' is not a trivial paradigm to develop on top of. A good philosophy is this, "anything that can go wrong will go wrong". We have certainly found this to be the case, in our first year of developing on AWS: servers will disappear and/or become unresponsive; network IO and, in turn, EBS drives have inconsistent performance characteristics; AWS occasionally goes down. There are steps that can be taken to minimize these risks. They're really no different than the steps that should be taken to minimize risk in any software application: have backups of all data; know the risks involved with where you choose to store your data; prepare for any node in your system disappearing; unit-test thoroughly. In this session, I look back on our experiences using AWS to bootstrap a data-heavy startup with some very real technical challenges.
30th April to 4th May 2012