In this video, we are going to talk at a high level about a service called Amazon Elastic Compute Cloud or EC2. If you remember from our coffee shop, the employees are a metaphor for the client server model, where a client sends a request to the server. The server does some work, and then sends a response. That example is for the coffee shop, but the same idea applies to other businesses. Your business, whether it be in healthcare, manufacturing, insurance, or delivering video content to millions of users all around the world. Are also using this model to deliver products, Resources or data to your end users. And you're going to need servers to power your business and your applications. You need raw compute capacity to host your applications and provide the compute power that your business needs. When you're working with AWS, those servers are virtual and the servers you use to gain access to virtual servers is called EC2. Using EC2 for compute is highly flexible, cost-effective and quick when you compare it to running your own servers on premises in a data center that you own. The time and money it takes to get up and running with on premises resources is fairly high when you own your own fleet of physical servers. You first have to do a bunch of research to see what type of servers you want to buy, and how many you'll need. Then you purchase that hardware upfront. [SOUND] You'll wait for multiple weeks or months for a vendor to deliver those servers to you. You then take them to a data center that you own or rent to install them rack and stack them and wire them all up. Then you make sure that they are secure and powered up, and then they're ready to be used. Only then can you begin to host your applications on top of these servers. The worst part is, once you buy these servers, you're stuck with them, whether you use them or not. With EC2 it's much easier to get started. AWS took care of the hard part for you already. AWS already built and secured the datacenters. AWS has already bought the servers, racked and stacked them, and they are already online, ready to be used. AWS is constantly operating a massive amount of compute capacity. And you can use whatever portion of that capacity, when you need it. All you have to do is request the EC2 instances you want, and they will launch and boot up, ready to be used within a few minutes. Once you're done, you can easily stop or terminate the EC2 instances. You're not locked in or stuck with servers that you don't need or want. Your usage of EC2 instances can vary greatly over time, and you only pay for what you use. Because with EC2, you only pay for running instances, not stopped or terminated instances. EC2 runs on top of physical hosts machines managed by AWS using virtualization technology. When you spin up an EC2 instance, you weren't necessarily taking an entire host to yourself. Instead, you are sharing the host, with multiple other instances, otherwise known as virtual machines. And a hypervisor running on the host machine is responsible for sharing the underlying physical resources between the virtual machines. This idea of sharing underlying hardware is called multitenancy. The hypervisor is responsible for coordinating this multitenancy and it is managed by AWS. The hypervisor is responsible for isolating the virtual machines from each other as they share resources from the host. This means EC2 instances are secure, even though they may be sharing resources. One EC2 instance is not aware of any other EC2 instances also on that host. They are secure and separate from each other. Luckily, this is not something you yourself need to set up. But it's important to know the idea of multi tenancy and have a high level understanding of how this works. EC2 gives you a great deal of flexibility and control. Not only can you spin up new servers or take them offline at will, but you also have the flexibility and control over the configuration of those instances. When you provision an EC2 instance, you can choose the operating system based on either Windows or Linux. You can provision thousands of EC2 instances on demand with a blend of operating systems and configurations to power your businesses different applications. Beyond the OS, you also configure what software you want running on the instance. Whether it's your own internal business applications, simple web apps or complex web apps, databases or third-party software. Like enterprise software packages, you have complete control over what happens on that instance. EC2 instances are also resizable. You might start with a small instance, realize the application you are running is starting to max out that server. And then you can give that instance more memory and more CPU. Which is what we call vertically scaling an instance. In essence, you can make instances bigger or smaller whenever you need to. You also control the networking aspect of EC2. So what type of requests make it to your server and if they are publicly or privately accessible, is something you decide. We will touch more on this later in the course in detail. Virtual machines are not a new thing, but the ease of provisioning EC2 instances allows for programmers and businesses to innovate more quickly. AWS has just made it much, much easier and more cost effective for you to acquire servers through this Compute as a service model. There was a lot more to learn about EC 2. We talked about virtualization and the types of software you can run on an EC2 instance, but there was more you can configure with EC2 as well.