Compute services. In this lesson, you will learn how to choose among AWS Compute offerings and how to use AWS Distributed Application Services to achieve loose coupling. Our digital lives take place on the client-server model. We use our devices, which are the client, to make requests like Airbnb reservations. Those requests our client sends to the Airbnb servers, which then complete the reservations for us and send us back a confirmation email. This lesson is about the AWS services that power fleets of servers, like the ones Airbnb has. AWS servers are called Amazon Elastic Compute Cloud instances and abbreviated EC2 instances. Think of EC2 as raw computing power that can run anything. For example, you could run any operating system and any application on EC2. You could run any database on EC2. You could even build and run your own object storage service on EC2. It would be very costly and a strange idea to do so because S3 storage by itself is less expensive than storage on EBS volumes, but I'm illustrating that you can run limitless technologies on EC2. To launch an EC2 instance, you choose an Amazon Machine Image followed by an instance type. An Amazon Machine Image, abbreviated AMI, and sometimes pronounced AMI, is a software bundle that your EC2 instance needs to function. It might include an operating system and some applications. You can purchase an AMI from the AWS marketplace, which is a digital catalog with thousands of software listings from independent software vendors. When I go to launch an EC2 instance, the first two AMIs AWS suggests are Amazon Linux followed by macOS. Amazon Linux is a version of Linux optimized for EC2 that is very popular and I believe most customers would be using it on at least some of their applications. MacOS is suggested here, because at time of recording, AWS is the only cloud provider that lets you run macOS on its servers. After you choose your AMI, you need to choose an instance type. At time of recording, EC2 offers nearly 400 instance types. These are split among instance categories such as general purpose, compute optimized, memory optimized, accelerated computing, and storage optimized. For the exam, I wouldn't worry much about all of these instance types because the questions, if this comes up, will be very one-dimensional. Like, you have a database that is memory intensive, what instance type would you use? It would be a memory optimized instance type. After you choose your instance type, you configure your instances with these two options. First, you can launch your instance into an Auto Scaling group. You set the minimum, desired, and maximum sizes for this group. AWS will scale in and out dynamically based on the changes in your workload. EC2 auto-scaling can help you launch more EC2 instances in the same availability zone or across multiple availability zones in the same region. However, it will not launch EC2 instances across different availability zones because that would mean you're automatically creating servers possibly halfway around the world, and that would be a bit strange to use and manage. Keep in mind that Auto Scaling is a concept that applies to many AWS services and resources, not just EC2. In fact, there is an AWS Auto Scaling service that spans all of AWS. Second, you can choose to add user data. User data are scripts that you pass to the EC2 instance at launch that configure the instance. For example, this user data configures an EC2 instance to act like a web server. An EC2 instance is just compute. It needs a place to store data and it has two places to do this, EBS and its own instance store. You should attach at least one EBS volume when you launch an EC2 instance. EBS volumes are persistent hard drives for your EC2 instance, which you can encrypt and later detach and move and attach to another EC2 instance. However, you cannot move them out of their original availability zone. Also, some EC2 instances come with Amazon instance stores. Instance stores are ephemeral storage that cannot be encrypted or moved and in the case of interruption will lose all of their data. These are the RAM for your EC2 instances.