An EC2 is a virtual machine that represents a physical server for you to deploy applications. Instead of purchasing hardware and connecting it to a network, Amazon gives you nearly unlimited virtual machines to run your applications while they take care of the hardware. EC2 instances have a unique feature fundamental to cloud computing called Auto-Scaling Groups.