AMAZON EC2
Published: 2023-09-29 20:17:47

**Amazon EC2 means Elastic Compute Cloud:** Is one of Amazon's Web based service which can be used by businesses to run applications in the public cloud.
It is a foundational service provided by Amazon Web Services (AWS) that allows users to spin up virtual servers which is called  instances, in the cloud. EC2 instances provide scalable compute capacity that can be tailored to various workloads, from simple web hosting to complex data processing. Here are the key aspects of Amazon EC2:



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





**BENEFITS OF AMAZON EC2:**

**SCALABILITY:** Increases capacity automatically up or down within minutes depending on what the client wants and is done through auto scaling. Several instances can be scheduled to run at a particular time or according to the CPU utilization all done at the lowest possible cost. With Elastic Load Balancers (ELB), traffic can be  distributed across numerous instances for enhanced availability and scalability.

**FLEXIBILITY:** With EC2, you are allowed to choose from numerous OS, software packages, instance types and storage.

**RELIABLE:** Amazon EC2 is highly reliable offering an availability of 99.99% for each Amazon availability region.

**SECURITY:** A very strong networking and security is provided by Amazon VPC with Amazon  EC2 for the compute resources. You can control what should be exposed or not to the public cloud.
As a User you can control access to instances through AWS Identity and Access Management (IAM), security groups, and network access control lists (ACLs).


**WELL CONTROLLED:** You can totally control your instances, both the root access and even interacting with them the way you do normally with other machines. You are free to stop and restart your instance.

**SAVES MONEY:** Amazon EC2 is cost effective since you only pay for the compute capacity you consume. It allows you to select plans according to your compute needs thereby saving cost even as you fully utilize resources.
AWS provides a variety of pricing models, including On-Demand, Reserved Instances, and Spot Instances, to optimize costs.

**INSTANCE:**
Amazon EC2 enables users to create and manage virtual servers in the cloud, known as instances.
EC2 instances can be customized in terms of CPU, memory, storage, and networking to suit a wide range of applications and workloads.
EC2 instances are billed based on various factors, including instance type, region, usage hours, and any additional resources such as EBS volumes or data transfer

 **INSTANCE TYPES:**

Amazon EC2 offers an array of instance types optimized for different use cases, such as compute-optimized, memory-optimized, storage-optimized, and GPU instances.
Customers can choose the instance type that matches their specific requirements the most.

**GENERAL PURPOSE:** This instance type is good for variety of workloads. It provides you with a balanced computation, memory and networking resources which can be used for numerous applications.

**Types;**

**A1 instance** is more suited for web servers and containerized microservices

**M5 instance** is suited for small-to-midsize databases, data processing tasks, and as a backend server for enterprise applications like SAP or SharePoint.

**T3/ T3a instance** is used for long-lasting application instances such as websites, web applications, and code repositories.

**Use Cases;** Used to provide a highly scalable platform for  Web servers.
In Mobile development, developers can use it to build and deploy their applications.
Used in Game development delivered to users all over the world in the cloud.

**COMPUTE OPTIMIZED:** This is useful for compute intensive applications but balanced memory usage. High instances are delivered at a cost-effective prize.
**Types;**

**C5/ C5n instance** is  for applications like online gaming, scientific modeling, media transcoding – which require raw computing power.
 
**C6/ C6g instance** is  for highly intensive and advanced applications such as high-performance computing, video encoding, ad serving, and distributed analytics.

**Use Cases;**
Machine learning applications- Because it can handle heavy workloads
Gaming- Can deliver high quality gaming experience.

**MEMORY OPTIMIZED INSTANCE:**
This instance type is designed for workloads that require very quick performance to process large amounts of data sets to be processed in memory.

**Types;**

**R6g/ R6gd instance** is suitable for high-memory workloads, including relational databases example MySQL and in-memory caching such as Redis.

**X1/ X1e instance** is used for memory-rich applications, including SAP HANA, and Apache Spark, and high-performance computing

**High memory instance** is used to run high in-memory databases such
as  the SAP HANA database.

**R5/ R5a/ R5n instance** is  good for applications that has a high memory consumption like high-performance databases, real-time Big data analytics, and large in-memory cache applications

**STORAGE OPTIMIZED INSTANCE TYPES**
These instances are meant for applications requiring high storage such as big data, data warehousing, and log processing with systematic read and write access to huge datasets. Built for the delivery of applications with low latency.

**Types;**

**D2 instance** is designed for applications like Hadoop clusters, log clusters, and data warehousing 

**H1 instance** is are most suitable for data-intensive applications such as MapReduce, and for applications that require high efficiency, fast and systematic access to large data volumes.

**l3/ l3en instance** is used for high-frequency OLTP systems, RDBMS, and caching for in-memory databases like Redis.

 **AMAZON MACHINE IMAGES (AMIs)**: These compute instances use hardware accelerators for greater performance in compute-intensive applications. 

AMIs are pre-configured templates which includes an operating system and many times, application software.
Users can choose from a broad selection of publicly available AMIs or create custom AMIs according to their specific needs.

 **INSTANCE LAUNCH and TERMINATION:**

Users can comfortably launch instances through the AWS Management Console, CLI, or SDKs.
When these Instances are no longer needed, then it can be terminated which helps to control costs.



**STORAGE OPTIONS:** 

EC2 instances can be attached to different types of storage, which includes Amazon EBS volumes for block storage and Amazon S3 for object storage.
Instance store volumes provide temporary, high-performance storage directly attached to the instance.

**NETWORKING:**

Users can configure Virtual Private Cloud (VPC) networks to isolate and control network traffic for instances.
Elastic IP addresses allow instances to have static, public-facing IP addresses.


**USE CASES:**

EC2 is suitable for a wide range of workloads, such as web hosting, application hosting, data processing, machine learning, and scientific computing.

 **Monitoring and Management:**

Amazon CloudWatch provides monitoring and logging capabilities for EC2 instances, helping users track performance and discover issues.

**CONCLUSION:**

Amazon EC2 forms the core of AWS's compute offerings, providing scalable and flexible compute resources to meet diverse application needs.
By understanding the capabilities and options provided by Amazon EC2, users can effectively provision and manage virtual servers in the cloud, optimizing their computing resources to match specific workloads while maintaining control over security and costs.