Elastic Compute Cloud (EC2)
Tags: aws, cloud, ec2, beginners
Published: 2022-08-18 20:32:40

EC2 is an important services in AWS cloud which offering compute, Storage, Network & Security, Load Balancing and Auto scaling features. These are the essentials to deploy the basic workloads to the cloud.


Lets talk about the features of the EC2 briefly,

> **Compute:**
Virtual machine is known as Instance in AWS, AWS supports all the major Operating Systems (OS) Starting with Windows, Linux, Mac, etc. AWS provides different types instance launch types based on our requirements, we can optout whichever suitable for us.

**Instance Launch Types:**

- On Demand Instances
- Reserve Instances
- Spot Instances
- Dedicated Instances
- Dedicated Hosts

**On Demand:**
Deploy the instances for short workloads and predictable pricing, so that we can deploy and terminate whenever we want.

**Reserve Instances:**
This type of instances are minimum reserved by one year, so that the pricing of the instance could be majorly decrease and save the billings.

**Spot Instances:**
This instances is uses spare EC2 instances capacity that is available for very cheaper and provide based on hourly price called Spot price. Spot Instance runs whenever capacity is available. We can run based on short workloads and high intense compute requirements.

**Dedicated Instances:**
Your instances are running with a separate hardware which no other customer will share the resource.

**Dedicated Hosts:**
This type is such as book the entire physical host and fully dedicated to customer use. they can configure all things based on their needs.

> **Storage:**
Storage is known as EBS — Elastic Block Storage in EC2, EBS is a block-level storage volumes that you can attach to a running instance. There are different types of volumes are available in storage and choose whatever combination to suit your requirements.

**Types of Volume:**

- Solid State Drive
- Hard Disk



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwrhqv5ua3o02fjgdn85.png)

**General Purpose:**
General Purpose SSD volumes are backed by solid-state drives (SSDs). They balance price and performance for a wide variety of transactional workloads.

**Provisioned IOPS:**
Provisioned IOPS SSD volumes are backed by solid-state drives (SSDs). They are the highest performance which EBS storage volumes designed for critical, IOPS-intensive, and throughput-intensive workloads that require low latency.

**Throughput Optimized:**
A low-cost HDD designed for frequently accessed, throughput-intensive workloads.

**Cold HDD:**
A low-cost HDD designed for less frequency accessed workloads.

We will see the storage on upcoming blogs in detail.

> **Load Balancer:**
Load balancer is known as Elastic Load Balancer in AWS, It’s a service which helps us to distribute the incoming application traffic to across multiple targets. This increases the availability of the Application and servers.

**Types of Load Balancers:**

- Application Load Balancer
- Network Load Balancer
- Gateway Load Balancer

**Application Load Balancer:**
This type of load balancer use for HTTP and HTTPS traffic. The load balancer routes based on the content of the request. It’s acts on Presentation layer in OSI reference model.

**Network Load Balancer:**
This type of load balancer use for TCP, UDP, and TLS traffic where extreme performance is required. It’s acts on Network layer in OSI reference model.

**Gateway Load Balancer:**
This type of load balancer use to deploy, scale, and manage virtual appliances, such as firewalls. It’s acts on Network layer in OSI reference model.

> **Auto Scaling Group:**
Auto scaling helps the EC2 instances which scales automatically based on the defined situation. Scaling policy is defines the configurations of scaling the instances. Desired instance and Maximum instance configuration is a key factor. Before that we should configure launch template or launch configuration.

**Types of Scaling:**

- Target Tracking Scaling
- Simple/Step Scaling
- Scheduled Scaling

**Target Tracking Scaling:**
This type of scaling that we specify Cloud Watch metric and a target value that represents the ideal average utilization or throughput level for your instances.
Eg:- I Want the average CPU to stay around 60%

**Simple/Step Scaling:**
This type of scaling that we choose scaling metrics and threshold values for the Cloud Watch alarms that invoke the scaling process.
Eg:- We want to scales the Memory > 70%

**Scheduled Scaling:**
This type of scaling is helps to set up our own scaling schedule according to predictable load changes.