EC2 Instances constitute the Infrastructure as a Service (IaaS) platform provided by AWS. EC2 is how you create virtualised servers consisting of virtualised CPU, RAM, disk and networing resources (GPUs too, if you need them.)
They're a core service and every organisation on the plamnet that uses AWS is using EC2, either directly or indirectly. It's unavoidable, especially when you consider a lot of AWS' managed services, like RDS, use EC2 under the hood.
Here's what the details for an EC2 Instance might look like:
This screenshot is of an EC2 Instance inside of the Upload Academy AutoScaling Group (ASG; something we explore later on.) As you can see there's a lot going on. We don't really need to cover everything at this stage.
OS, Type and Access#
On top of the EC2 Instance sits an OS, of course. You're responsible for managing it in its entirety, but you get to select it using an Amazon Machine Image (AMI). They're not just for the base OS, however. They can come pre-configured with any software you can imagine. In fact, software vendors (like Cisco) actually use the AWS AMI Maketplace to sell access to their pre-configured AMIs. We cover AMIs later on.
Instances are configured with an instance type. A "type" can actually be quite a complicated concept, so we cover that separately, but the basic idea behind an "instance type" is the CPU, RAM, and networking configuration.
After you've created an EC2 Instance, you use a pre-configured Key Pair to access it via SSH or, if it's a Windows Server (for example), you use the private half of the Key Pair to access the
Administrator user's password from the console. We will set up Key Pairs later.
Finally, storage options are available for various use cases. We'll look at these in some detail so that you undersand the various differences and can make sound choices when you provision your EC2 Instance.
That's a short summary of what constitutes an EC2 Instance and the features it offers. We'll move on now to some of these concepts in more detail and, eventually, we'll create an EC2 Instance.