• Articles
  • Tutorials
  • Interview Questions

What is AWS EC2 and Why It is Necessary?

What is AWS EC2 and Why It is Necessary?

Table of content

Show More

Amazon EC2 is without any doubt the most used AWS service that lets users launch and manage server instances, at any time and for as long as they need. Here in this Amazon EC2 tutorial, we will learn what EC2 is in AWS and how it works. Towards the end of this Amazon EC2 tutorial, there is also a beginner-friendly demo to get you started with Amazon EC2.

Watch this AWS EC2 tutorial video:

Video Thumbnail

What is EC2 in AWS?

The full form of Amazon EC2 is Amazon Elastic Compute Cloud. Amazon EC2 is one of the most used and most basic services on Amazon so it makes sense to start with EC2 when you are new to AWS.

Well, to be very simple, EC2 is a machine with an operating system and hardware components of your choice. But the difference is that it is totally virtualized. You can run multiple virtual computers in a single physical hardware.

Elastic Compute Cloud (EC2) is one of the integral parts of the AWS ecosystem. EC2 enables on-demand, scalable computing capacity in the AWS cloud.

Amazon EC2 instances eliminate the up-front investment for hardware, and there is no need to maintain any rented hardware. It enables you to build and run applications faster. You can use EC2 in AWS to launch as many virtual servers as you need. Also, you can scale up or down when there is an increase or decrease in website traffic.

The word ‘elastic’ in Elastic Compute Cloud talks about the system’s capability of adapting to varying workloads and provisioning or de-provisioning resources according to the demand.

Why Amazon EC2?

Now that we know the EC2 overview, let’s now move forward and understand Why exactly we need Amazon EC2. AWS Elastic Compute Cloud provides a lot of benefits, let me give you an overview of what I am going to discuss.

  • Auto-scaling
  • Pay-as-you-go
  • Increased Reliability
  • Elasticity

Auto-scaling:

This is the benefit that makes most businesses opt for AWS EC2. It is already explained earlier how Netflix uses Amazon EC2 auto-scaling to its advantage and provides a crash-free experience.

Auto-scaling is basically providing resources according to the demand. They either scale up or scale down corresponding to the increase or decrease in demand.

Pay-as-you-go:

You will be charged by the hour, and you have to pay only for what you have used. A company, XYZ might be using 100 servers normally, and on Mondays, it scales down to 50 servers. So, it only has to pay for 50 servers those days, not the usual fee for the usage of 100 servers.

Even when you use your Amazon EC2 instances services for a few hours, you only need to pay for that time period and nothing more.

Get 100% Hike!

Master Most in Demand Skills Now!

Increased Reliability:

AWS is spread across 20 worldwide regions with 61 availability zones (AZs) which helps your business when it is expanding. Also, this will increase the load speed of your application around the world.

You can always store multiple copies of your application in multiple AZs so that when one data center fails or loses data, the application will not fail completely.

Elasticity:

Instead of 10 low-configuration machines, you could rent a single high-configuration machine with an OS of your preferred choice for your application. Elasticity is the feature from which Elastic Compute Cloud got its name.

Moving on, let’s now see different types of Amazon EC2 Instance Types.

AWS EC2 Instance Types

AWS EC2 instance types determine the underlying hardware of the instances which are launched.

There are several types of AWS instances with different configurations and benefits.

  • General purpose
  • Compute optimized
  • Memory-optimized
  • Accelerated Computing
  • Storage optimized

General-purpose Instances

General-purpose instances provide a balance among compute, memory, and networking resources, and they can be used for a variety of workloads.

A1 Instances

A1 instances are used in applications that work in synchrony with the Arm ecosystem and are suitable for scale-out workloads.

M5, M5a, and M5d Instances

These instances offer a balance among compute, memory, and networking resources providing an ideal cloud design. It could be used for a wide range of applications.

T2 and T3 Instances

These instances provide clock up or down CPU performance.

Certification in Cloud and Devops

Compute-optimized Instances

These instances are useful for compute-dependent applications that need high-performance processors. They are well suited for the following applications:

  • Batch processing workloads
  • High-performance web servers
  • High-performance computing (HPC)
  • Scientific modeling
  • Dedicated gaming servers and ad serving engines

C5, C4, and C5n are the instances under this category.

Memory-optimized Instances

These instances are for delivering fast performance for processing large data sets in memory.

R4, R5, R5a, and R5d instances are memory optimized.

Accelerated Computing Instances

These instances are the latest gen general-purpose instances, and they provide an accelerated performance when the CPU clock rate increases.

P3, P2, G3, and F1 are instances for accelerated computing.

P3 and P2 are general-purpose instances.

G3 is for graphic-intensive applications.

Storage-optimized Instances

Storage-optimized instances are designed for workloads that contain very large data sets which has to be written in memory and require high, sequential read and write access.

EC2 vs. S3

Both Amazon EC2 and Amazon S3 are important services that allow developers to maximize use of the AWS cloud. The main difference between Amazon EC2 and S3 is that EC2 is a computing service that allows companies to run servers in the cloud. While S3 is an object storage service used to store and retrieve data from AWS through the Internet. S3 is like a giant hard drive in the cloud, while EC2 offers CPU and RAM in addition to storage. Many developers use both services for their cloud computing needs.

Amazon EC2 Instance Features

Many of the Amazon instances features are customizable such as storage, virtual processor, memory available to instances, etc. Below are some of the features of the Amazon EC2 instance:

Elastic IP addresses:

It can be moved from instance to instance without requiring a network administrator’s help. This helps in the case of failover clusters, for load balancing, or for other purposes where multiple servers run at the same time.

Operating system:

EC2 instance supports several OSes such as Linux, Microsoft Windows Server, CentOS, and Debian.

Amazon CloudWatch: 

It is used to collect, store, and analyze historical and real-time performance data. The CloudWatch service allows for the monitoring of AWS cloud services and applications deployed on AWS. It also actively monitors applications, improves resource use, optimizes costs, and scales up or down.

Automated scaling:

Automated scaling helps in adding or removing capacity from Amazon EC2 virtual servers in response to application demand. Auto Scaling provides more capacity to handle temporary increases in traffic during a product launch.

Bare-metal instances:

The virtual server instances consist of the hardware resources, such as processor, storage, and network. They are not virtualized and do not run an OS.

Amazon EC2 Fleet:

As a single virtual server, Amazon EC2 Fleet enables the deployment and management of instances. It also provides programmatic access to fleet operations using an API. Further, Fleet management can be integrated into existing management tools.

Pause and resume instances:

 EC2 instances can be easily paused and resumed from the same state later. In case, there are too many instances running at the same time, they can be paused without incurring charges.

Persistent storage:

Amazon EBS service enables block-level storage volumes to be attached to EC2 instances and be used as hard drives. With the help of EBS, it is possible to increase or decrease the amount of storage available to an EC2 instance and attach EBS volumes to multiple instances.

AWS EC2 Pricing

Generally, Free Tier 750 hours of free usage for up to one year is provided by AWS. Only the t2.micro instance can be used on Linux and Windows AMIs.

On-demand Price:

m5.large$0.096/hour
c5.large$0.085/hour
r4.large$0.133/hour

Data Transfer IN:

FREE from any region in the world

Data Transfer OUT:

From EC2 to:

S3, Glacier, DynamoDB, SES, and SQS in the same regionFREE
S3, Glacier, DynamoDB, SES, and SQS in the same region$0.020/GB
EC2, RDS, Redshift, ElastiCache, ELB, and ENI in the same AZ with private IPFREE
EC2, RDS, Redshift, ElastiCache, ELB, and ENI in the same AZ with public IP$0.010/GB
EC2, RDS, Redshift, ElastiCache, ELB, and ENI in different AZs$0.010/GB

Knowing about EC2 in AWS is one of the first things one must do when they are starting with AWS but it won’t do any good if you don’t know how to create an EC2 instance. Now let us create an EC2 Instance to understand better.

log on to your AWS account and let’s create your first instance.

Note: In case you are absolutely new and haven’t created your AWS Account then I recommend you take a quick look at our Amazon AWS Management Console blog which will help you create an account within a few minutes.

Become a Cloud and DevOps Architect

Demo: How to create an AWS EC2 Instance from scratch?

Step 1: Open the AWS Management Console, open the services drop-down, and click on EC2 under the compute category

Basic steps to follow in order to create an Amazon EC2 instance is depicted in the image below:

Step 2: Creation of an instance

  • First, click on Launch Instance
  • Now, in the Choose AMI section, scroll down and choose Ubuntu and click on Next
  • Choose the free tier eligible t2.micro Instance and proceed with Next: Configure Instance Details
  • Configure instance details and then click on Next
  • Next is adding storage. Here, you don’t need to change the size because for a basic Ubuntu instance it is 8 GiB
  • Now add a tag with the attributes Key and Value, name them as it is in the image below. Key and Value pairs are to identify the particular instance while it is running
  • Now proceed with the next step, Create a new security group, and then click on Review and Launch
  • Review your instance specifications once and then launch it

Step 3: Creating a new key pair

  • Choose Create a new key pair from the popup box, give a name for the key pair, and then click on Download Key Pair. Then, proceed with Launch Instances
  • Keep the downloaded key pair file in a safe location so that you can access it later

Step 4: Viewing your AWS instances

  • Wait till the launch is initiated, then click on instances under the INSTANCES option and view the instance which you have created
  • Wait till your instance initializes, that is, till your 2/2 checks are done

Now it gets interesting; here, you will connect the instance using an SSH client and then host your own website

Step 5: Connecting the instance through an SSH client

  • Download PuTTY: a free SSH client

Website link: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

  • Choose 32 or 64 bits according to your system’s specifications. Then, install it like you install any other application on your system
  • Install PuTTY
  • PuTTY only accepts private key files with the extension ‘.ppk’, so you have to convert your ubuntudemo.pem to a .ppk extension
  • Now, open PuTTYgen and load ‘ubuntudemo.pem’. A dialog box appears where you have to press OK
  • Click on save private key and proceed with a Yes in the dialog box. After that store it in a location from where you can access it easily
  • Open PuTTY, type ubuntu@”your public ip” which you can find in the description tab for your instance
  • First, type Host Name in the box with the port number, 22
  • Second, go to Connection → SSH → Auth. Now, click on Browse and add the .ppk file which you have created
  • Click on Open and then press Yes on the PuTTY Security Alert box
  • Now, you have successfully launched your Ubuntu instance!

Step 6: Running a simple HTML page via this instance

  • First, update the Ubuntu instance using this command
  • Then, install apache2. Apache2 is a web server which is commonly used in Linux systems
  • Type the below commands to enter into that directory and check whether index.html exists
  • Go back to your instances page and click on ‘launch-wizard-4’ under security groups
  • Go to Inbound and click on Edit. Then, add an HTTP rule with Source as ‘Anywhere’
  • On your browser, use your public IP address, put it in the URL box and run
  • You have now successfully hosted your first website via a Cloud instance
  • Let’s now see how to edit and run your own HTML page instead of the Apache2 default page
  • For one last time, run the public IP address of your instance in the browser

Congratulations! You have created your first Ubuntu instance and have run your webpage on it!

Benefits and Challenges

Benefits

It is easy to get started with EC2 and since it is controlled by APIs, developers can commission any number of server instances at the same time in order to quickly decrease or increase capacity. EC2 allows you complete control of instances making the operation as simple as if the machine were in-house.

The flexibility of multiple instance types, operating systems, and software packages and the fact that EC2 is integrated with most AWS Services — S3, Relational Database Service (RDS), Virtual Private Cloud (VPC) — makes it a secure solution for computing, query processing, and cloud storage.

Check out this video on the AWS Course to enhance your knowledge:

Video Thumbnail

Challenges

Resource utilization — developers must manage the number of instances they have to avoid costly large, long-running instances.

Security — developers must make sure that public-facing instances are running securely.

Deploying at scale — running a multitude of instances can result in cluttered environments that are difficult to manage.

Management of AMI lifecycle — developers often begin by using default Amazon Machine Images. As computing needs change, custom configurations will likely be required.

Ongoing maintenance — Amazon EC2 instances are virtual machines that run in Amazon’s cloud. However, they ultimately run on physical hardware which can fail. AWS alerts developers when an instance must be moved due to hardware maintenance. This requires ongoing monitoring.

Conclusion

Hope this Amazon EC2 tutorial was helpful to you. You can learn more about how cloud services work which could help you decide if the cloud is the right choice for your organization.

Course Schedule

Name Date Details
AWS Certification 14 Dec 2024(Sat-Sun) Weekend Batch View Details
21 Dec 2024(Sat-Sun) Weekend Batch
28 Dec 2024(Sat-Sun) Weekend Batch

About the Author

Senior Cloud Computing Associate

Rupinder is a distinguished Cloud Computing & DevOps associate with architect-level AWS, Azure, and GCP certifications. He has extensive experience in Cloud Architecture, Deployment and optimization, Cloud Security, and more. He advocates for knowledge sharing and in his free time trains and mentors working professionals who are interested in the Cloud & DevOps domain.