Launched in 2006, Elastic Compute Cloud (or EC2, as it is universally known) is a core part of AWS, and probably one of the better-known components of the service. It allows customers to rent computing resources by the hour in the form of virtual machines (known as instances) that run a wide range of operating systems. These instances can be customized by users to run any software applications supported by their operating system of choice.
The idea of renting computing resources by the hour goes back to the 1960s, when it was simply not financially feasible for a company or university department to own a dedicated computer (the idea of an individual owning a computer seeming, at this point, to be the stuff of science fiction). This changed as computers became cheaper and more popular, and dedicated computing resources became the norm.
The explosive growth of the consumer internet, and thus of the services and applications that make up the motivation for its ever-increasing use, has helped the pendulum swing back the other way, to the point where being able to elastically increase or decrease your computing resources (and therefore costs) has become a key financial advantage.
In the pre-cloud days, capacity planning required a large amount of time and forward thinking. Bringing new servers online was a multistep process with the potential for delays at every step: ordering hardware from the supplier, waiting for its arrival, visiting ...