From the course: AWS Certified Cloud Practitioner (CLF-C02) Cert Prep: 3 Cloud Technology and Services

Amazon EC2

- [Narrator] Your manager comes by and taps you on the shoulder. "Hey, we need to get a new server for a new application the dev team is creating. Can you get a setup for them?" "Sure," you say enthusiastically. After all, you love researching and buying new computers. How hard could this be? You soon realize that there's a lot more moving parts when purchasing a server for your company. You need to know how much storage it needs, how much memory the dev team requires, the operating systems, the bells and whistles. Even once you manage to find a server that fits all the requirements posted by the dev team, you then have to get it through all the bureaucratic ladders up and down the command chain, and your team, and the engineering team. And once you thought you were finally ready to get it purchased, you find out that you have to push it through the finance department too. And the finance department is not happy with a huge unexpected cost of buying an expensive server. You spend a little while convincing the finance department to approve the cost and you order it. By this point, it's already been a month since your manager initially asked you to purchase this, and the dev team is getting antsy. Now you wait for it to be delivered in a week, but wait, you aren't done just because it's delivered. Now you have to set it up and make it ready for the dev team's use. All in all, it could take you a few months to get that server up and running that the dev team wanted months ago, and by the time you deliver to them, they have one thing to say. "Oh yeah, we've been going further into the development process and turns out we need double the storage we initially requested." There's an easier way to do this instead of spending months of your time drowning in bureaucratic headaches. You can log into AWS and spin up a virtual server, called an instance, in seconds with the exact specifications that your dev team requested. And if their needs change, you can easily adjust the existing server or just spin up a new one. Each instance is configurable by the amount of virtual CPUs, gigabytes of RAM, size and types of storage, and network speed. You're only charged for what you use and when you use it, so there's no huge upfront cost for the finance department to argue over, and you can easily create an extremely scalable and reliable virtual server or multiple servers for your dev team almost as quickly as they could rattle off the bells and whistles they want. This service is called Amazon Elastic Compute Cloud or Amazon EC2, and it's one of the most widely used services in AWS. Amazon EC2 allows you to launch applications and servers when you need them without the upfront financial commitments. It's integrated with many other AWS services, is reliable and secure, and allows you or your company to quickly and inexpensively spin up instances of virtual servers for all your different needs. When you launch Amazon EC2, you select an instance type, which determines the hardware of the host server used for your virtual machine. Each type offers different compute memory and storage capabilities, and are evolving as technology evolves. Currently, the Amazon EC2 instance types as of Winter 2024 are: general purpose, compute optimized, memory optimized, storage optimized, and accelerated computing. Let's learn a little bit about each instance type. General purpose instances, as you may expect, provide a good balance of compute memory and networking resources that cater to diverse or general workloads. These are ideal for applications like web servers and code repositories that utilize resources in equal proportions. Compute optimized instances are ideal for applications that benefit from high performance compute processors, such as media transcoding, scientific modeling, and gaming servers. Memory optimized instances are designed to deliver fast performance to process large data sets and memory. Storage optimized instances are ideal for workloads requiring high sequential read and write access to very large data sets on local storage. Finally, accelerated computing instances utilize code processors or hardware accelerators to perform certain functions like floating point number calculations, graphics processing, or data pattern matching more efficiently than possible with software running on CPUs. As you can see, you can more or less intuit the high level use case of each type from its name.

Contents