Now that we have discussed at a high level what compute services AWS has to offer, let's talk about one in particular. Amazon Elastic Compute Cloud, or what we will call EC2 from here on out, is a compute service that allows you to provision virtual servers on demand. Each virtual server you provision is called an EC2 instance. Just about anything you can do with a server in a traditional sense, you can do with an EC2 instance. They would have to purchase those machines, wait for the delivery of those machines, install them, lay down the networking and storage systems for those servers, and then maintain that infrastructure to have any of their applications running. EC2 allows companies to provision servers on demand without acquiring massive capital to build out their compute infrastructure. In other words, if you need a server, you can just launch one, and it's available to you in minutes. EC2 instances are flexible, and you configure them to meet your needs. You can commission one or many instances easily, and at the end of the billing cycle, you only pay for what you use. When you no longer need an instance, terminate or stop that instance, and you will stop incurring charges. The configurability of EC2 extends to the platform that you want to run. AWS supports a range of operating systems including Linux, Ubuntu, Windows, and more. To select the operating system, you choose an Amazon Machine Image, or what we call an AMI. An AMI contains information about how you want your instance to be configured, including the operating system and possible applications to be installed on that instance. You can launch one or many instances from a single AMI, which would create multiple instances that all share the same configuration. Beyond the operating system, you can also configure the instance type and size, which correspond to the amount of compute, memory, and networking capabilities available per instance. This allows you to control the underlying hardware and the capacity of that hardware with just a few clicks or lines of code. AWS offers many different types of EC2 instances. Different types of hardware are best fit for different situations. Each instance type is a grouping of hardware technology that are optimized for various use cases. The instance types you can choose from include compute optimized, memory optimized, storage optimized, and more. For example, the G instance type is optimized for graphics-intensive applications, which would work best for use cases such as 3D visualizations or video encoding. The great thing about this technology is that you are no longer locked into hardware decisions upfront. If you choose an EC2 instance type and then later realized a different type would have been better suited for the application, you can easily change the underlying hardware. If you decide that you want to resize your EC2 instance, that isn't a problem in the cloud either. EC2 is a resizable resource with a few clicks in the console, or it can be done programmatically through an API call. This enables you to embrace change over time. You can do these changes manually, but we would recommend that you automate these sorts of changes, which you can do with these using some of our other services. So, how does this impact your business? Virtual servers are not a new thing, but with the flexibility and low-cost nature of EC2 instances, the ease of provisioning servers allows for programmers and businesses to innovate more quickly. You can spin up servers for a short amount of time to run experiments and find optimal configurations for your applications. This ability to adapt to change and act on insights into your fleet of instances is very powerful in achieving a cost-effective and performant system. Next, let's launch and configure an EC2 instance to see how all this works.