Everything You Should Know About AWS EC2 Instances Types

Amazon AWS

Amazon Elastic Compute Cloud (Amazon EC2) is a service that provides scalable cloud capacity in the Amazon Web Services (AWS) cloud. With Amazon EC2, organizations can choose between a wide variety of instances that are optimized for different cloud computing use cases. In this tutorial, we’ll explain everything you need to know about the different EC2 instance types and their pricing model.

What is an AWS EC2 instance?

With AWS EC2, you can choose between different instance types and scale up and down the resources (CPU, memory, storage, networking capacity, etc.) you need to run your applications in the cloud. With AWS EC2, you’ll just need to pay for the time you use your instances.

AWS EC2 instances are secure as you’ll connect to them using SSH keys. You can create or launch your instance using the AWS Command Line Interface or the AWS Management Console. Moreover, you can view all your EC2 instances in the AWS Management Console.

You can manage your EC2 instances from the AWS Management Console
You can manage your EC2 instances from the AWS Management Console (Image credit: Petri.com/Sagar)

Why use AWS EC2 instances?

For organizations, using AWS EC2 instances for their various cloud computing needs offers various advantages. Here are the main benefits you should know about:

  • You can launch instances quickly without having to deal with complex hardware configuration and setup.
  • You can securely log in to your instance using AWS key pairs.
  • You can align persistent volume for your data using Amazon Elastic Block Store (EBS).
  • You can easily scale the size of your instances without losing any data.

What are the different AWS EC2 instance types?

When you create an AWS EC2 instance, you’ll need to choose your instance type. Each type offers different hardware, computing, memory, and storage capabilities

General purpose instances

General purpose instances provide a balanced set of computing power, memory, and networking resources. They are suitable for small to medium-sized databases, backend servers, gaming servers etc.

Compute-optimized

Compute-optimized instances are tailored for applications that require high-performance processors. They are mostly used to perform batch processing workloads, scientific modeling, machine learning, and other compute-intensive applications.

Memory-optimized

Memory-optimized instances are designed to provide fast performance for workloads involving large databases. They’re mostly used by organizations working with high-performance MySQL, NoSQL, or MongoDB databases, but they’re also well-suited for the real-time processing of big data.

Accelerated Computing

Accelerated computing instances use hardware accelerators to perform functions such as floating point number calculations, graphics processing, or data pattern matching.

Storage-optimized

Storage-optimized instances are used for workloads that require high read and write access to very large data. These instances are well suited for data processing applications and Redis, an in-memory data structure store that can be used for databases.

What are the features offered by AWS EC2 instances?

As we’ve seen previously, AWS EC2 instances come with various configurations of CPU, memory, storage, and networking capacity. EC2 instances are launched in virtual computing environments, and Amazon provides preconfigured templates that contain the operating system and other software required to run them.

What Is An Amazon Machine Image (AMI)?

An Amazon Machine Image (AMI) is a template that is used to launch an instance. It contains the operating system, system configurations, an application server, and applications, and launch permissions that control which AWS accounts can use the AMI to launch instances.

Supported operating systems

You can manage Amazon EC2 instances with one of the following operating systems:

Burstable Performance instances

In some cases, an instance can be provisioned with excess CPU and memory capabilities. As a result, customers may pay for more resources than what they really use.

Burstable performance instances are optimized for applications that have low-to-moderate CPU usage. They offer a baseline CPU performance, but organizations can still burst above the baseline when their workload requirements change.

These instances are suitable for large-scale micro-services, web servers, small and medium databases, data logging, code repositories, virtual desktops, and development and test environments. Amazon claims that customers can save up to 15% in costs compared to using regular instances.

Storage options

When launched, AWS EC2 instances need storage space. Below are some of the storage options that are available to be used with AWS EC2:

Elastic IP addresses

When you launch an Amazon EC2 instance, it’s assigned a private IP address by default, and a public IP address can also optionally be allocated to it. However, when an instance is restarted, then both the private and public addresses are changed.

If you need a static IP for your instance, then you should use an Elastic IP address. It is a static and public IPv4 address, meaning it’s accessible from the internet. If your instance doesn’t have a public IPv4 address, you can associate an Elastic IP address to it to enable communication with the Internet.

Automated scaling

Automated Scaling is an important feature that adjusts the capacity of all your instances to maintain a predictable performance for all applications at the lowest possible cost.

With Auto Scaling, it’s easy to set up application scaling for multiple resources across multiple services in minutes. Auto Scaling can be enabled with the AWS Management Console, the AWS Command Line Interface (CLI), or the AWS SDK, and it’s available at no additional charge. 

Pause and restart

An Amazon EC2 instance goes through different states from the moment you launch it to its termination. When you initially launch an EC2 instance, it first goes into a pending state before it reaches its running state.

[image][LG3] 

Checking the state of your AWS EC2 instance on the AWS Management Console
Checking the state of your instance on the AWS Management Console (Image credit: Petri.com/Sagar)

Your instance will also go into a pending state again if you stop it, or when it’s being restarted. When the instance is transitioning from a pending state to a running state, it is not billed at all. It’s also not billed when it’s preparing to be stopped and once it’s been shut down.

Amazon CloudWatch

It is very important to monitor your AWS EC2 instances, and you can do it with AWS CloudWatch. This service collects data such as CPU, memory, and more, and it makes it easily accessible in automated dashboards. By default, Amazon EC2 sends metric data to CloudWatch in 5-minute periods.

[image][LG4] 

You can monitor your instances with Amazon CloudWatch
You can monitor your instances with Amazon CloudWatch (Image credit: Petri.com/Sagar)

It’s your choice to enable AWS CloudWatch monitoring or not. However, there are no charges involved in monitoring your AWS EC2 instances.

Some of the crucial instance metrics that should be monitored include:

  • CPU Utilization:  This metric identifies the processing power required to run an application on a selected instance.
  • DiskReadOps: This metric checks all the read operations from all instance store volumes.
  • DiskWriteOps:  This metric checks all the write operations to all instance store volumes.
  • NetworkIn and NetworkOut: These metrics check the number of bytes received and sent by the instance on all network interfaces.

Can you change an AWS EC2 instance type?

Yes, you can change the type of an AWS EC2 instance depending on your needs. You can easily identify if the instance is overloaded by monitoring the CPU and memory utilization of the instance, then you can downgrade it anytime if necessary.

On the other hand, if your t2.micro instance is too small for its workload, you can increase its size by changing it to a bigger T2 instance type, such as t2.large.

AWS EC2 instances pricing

There are multiple ways to pay for Amazon EC2 instances, but you can also get started with the AWS Free tier. Let’s take a look at all the possibilities at your disposal.

What can you do with the AWS Free tier?

The AWS Free tier lets you access AWS services for 12 months free of charge. You can use an AWS EC2 instance with the AWS Free subscription under the following conditions:

  • A maximum of 750 hours per month of Linux, RHEL, or SLES t2.micro or t3.micro instances dependent on the region.
  • A maximum of 750 hours per month of Windows t2.micro or t3.micro instances dependent on the region.

On-demand instances

There is no long-term commitment when you use on-demand instances, so you just need to pay your usage per second or per hour with a minimum period of 60 seconds. On-demand instances are mainly used for short-term, irregular workloads that can be interrupted. They’re more costly than Spot instances, which we’ll detail right after.

Spot instances

If you require to launch your instance very quickly, then you can use Spot instances, which let you request unused EC2 instances at very high discounts. Spot instances can be up to 90% cheaper than on-demand instances, though they’re mainly used for quick data analysis, batch jobs, and background processing.

Saving plans

With Savings plans, organizations can take advantage of a more flexible pricing model with low prices on EC2 and Fargate usage. However, customers need to use these instances for a one- or three-year term.

Dedicated hosts

A Dedicated host is a physical EC2 server with a capacity that is fully dedicated to your use. Dedicated hosts can be purchased on-demand (hourly), and you can save money by using your own software licenses, including Windows Server, Microsoft SQL Server, SUSE, and Linux Enterprise Server.

Conclusion

Overall, AWS EC2 provides a very wide range of instance types with a large choice of processors, storage, networking, and operating systems. Amazon also offers different pricing models allowing organizations to choose the instance type that fits the needs of their workloads. We hope that after reading this overview you’ll be ready to get started with your first EC2 instance in the AWS cloud.