AWS offers a Virtual Server cloud service under their name, EC2 (Elastic Compute Cloud). At its core, EC2 provides businesses with the ability to create and use virtual server infrastructures (commonly referred to as instances) using pay for as you use, on-demand, online services – without the need for purchasing, or maintaining, any of their own physical hardware. Various instance types can be selected based on how the customer intends to use them, such as small web applications, dev/test environments, and/or very large workloads.
One of the main advantages of using EC2 is flexibility. Customers can scale their resources up or down based on requirements. In addition, EC2 supports Auto Scaling, which provides the ability to automatically (within defined limits) add or remove EC2 instances from the user’s environment as application traffic increases or decreases (unexpectedly). Customers can also use Security Groups to manage access to each instance (individually, on a per-instance basis); and easily integrate other AWS Services such as EBS, S3, IAM, and Load Balancers into their environments. All of this makes it easy for customers to develop and manage a complete cloud environment.
For these reasons, many companies use EC2 for host applications. Beyond just Application Hosting, EC2 is often used for software testing and development as well as for designing and building Large Scale Infrastructure. Compared to traditional on-premise hosting solutions, EC2 is generally more scalable, quicker to deploy, and less expensive, because customers only pay for the resources consumed.