Autoscaling Groups and Launch Configurations
AWS provides the ability to manage scaling manually or through programmatic API calls. This allows you to save a lot of money if you know what your usual web traffic will look like i.e. you could use spot requests which normally allow you to pay 1/4 the price of an on demand instance that you normally would use for scaling issues and you can create redundant autoscaling groups i.e. the primary can be constructed completely of spot requests EC2 machines that is backed up by a secondary controlled AutoScaling group of on demand instances.
In this case the full brunt of your web traffic can be handled and maintained for the most part by the Autoscaling group composed of spot requests (major money saving) that is then if priced out of saturated by dmeand and fails all checks fall back to the on demand instances of the backup group.
The power of an Autoscaling group is in defining a Launch Configuration or Launch Template for all the EC2 machines within the group which would behoove you to build as a common AMI (using packer here to generate the AMI machine image from the normal list of base EC2 images allows you to keep your machine image definitions clean enough and composed for future upgrades).