When consuming a traditional Infrastructure-as-a-Service offering, you are provided a number of virtual machines along with the respective infrastructure (such as storage and networking). You typically need to operate everything running within these virtual machines yourself. This usually means not only your compiled application, but also the entire operating system, including the kernel of each and every system service of a full-blown Linux (or Windows) system. You are also responsible for the capacity planning of your infrastructure (which means estimating your application's resource requirements and defining sensible boundaries for your autoscaling groups).
All of this means Operational Overhead that keeps you from your actual job, that is, building and deploying software that drives your business. To reduce this overhead, you can instead...