Autoscaling is a fundamental component of computing in the cloud. To understand autoscaling, you need to understand the concepts of vertical and horizontal scaling. With vertical scaling, a single machine is upgraded to a more powerful instance by adding more CPU power, more RAM, or more disk capacity. This can be effective to an extent, but eventually, the complexity and costs associated with vertical scaling make it impractical. With horizontal scaling, an application workload is spread out over several smaller machines, and adding new machines provides a nearly linear increase in the load that can be managed by the application. Adding extra machines is called scaling up, and removing machines that are no longer needed is called scaling down.
EC2 autoscaling provides not only the ability to scale up and down in response to application load but...