Debug School

rakesh kumar
rakesh kumar

Posted on • Updated on

Explain EC2 architecture diagram

EC2 Architecture Concept

FAQ Question on EC2

EC2 Architecture Concept

Amazon Elastic Compute Cloud (Amazon EC2) is a web service provided by Amazon Web Services (AWS) that allows users to rent virtual servers, commonly referred to as instances, in the cloud. These instances can be used to run applications, host websites, or perform various computing tasks. Users have the flexibility to choose the type of instance, operating system, and other configurations based on their specific needs. EC2 provides a scalable and resizable compute capacity, allowing users to quickly scale up or down based on demand, and it forms a fundamental part of AWS's Infrastructure as a Service (IaaS) offerings

Define in 2nd way

EC2 is a core service within AWS's Infrastructure as a Service (IaaS) offerings. It abstracts the underlying hardware, letting users focus on deploying and managing their applications without dealing with physical servers.

Image description

Image description

Define in 3rd way
Is EC2 a Virtual Machine?
EC2 is an virtual machine where you can deploy the web applications

Is EC2 a PAAS or IaaS?
EC2 belongs to Infrastructure as a service where the underlaying infrastructure is taken care by AWS.

EC2 stands for Elastic Compute Cloud. EC2 is an on-demand computing service on the AWS cloud platform. Under computing, it includes all the services a computing device can offer to you along with the flexibility of a virtual environment. It also allows the user to configure their instances as per their requirements i.e. allocate the RAM, ROM, and storage according to the need of the current task.

Amazon EC2 is a short form of Elastic Compute Cloud (ECC) it is a cloud computing service offered by the Cloud Service Provider AWS. You can deploy your applications in EC2 servers without worrying about the underlying infrastructure. You configure the EC2-Instance in a very secure manner by using the VPC, Subnets, and Security groups. You can scale the configuration of the EC2 instance you have configured based on the demand of the application by attaching the autoscaling group to the EC2 instance. You can scale up and scale down the instance based on the incoming traffic of the application.

Create EC2 Instance in AWS (Amazon)

The following are the steps for creating an EC2 instance in AWS (Amazon):

Step 1: First, log into your AWS account and click on “services” present on the left of the AWS management console, i.e. the primary screen. From the drop-down menu of options, tap on “EC2”. To create an AWS free tier account refer to Amazon Web Services (AWS) – Free Tier Account Set up.AWS Console

Image description

Under Resources >> Click on “Instances running” — It will show if any EC2 instances are running or not.

Step 2: Click on the launch instance click on the launch instance, after clicking on it you will be redirected to a launch page where we can create an instance. Configure all the requirements to Create a new instance like the name of the instance as shown in the figure below.

Launch Instance

Image description

Step 3: Select AMI – Required operating system from the available. There are different types of OS available select the OS as per your requirement.

Image description

Step 4: By default, it selects a free tier of storage. (IF YOU ARE ELIGIBLE FOR THE FREE TIER). From the available storage specifications, select a free tier-eligible storage service. The instance type includes the no.of CPUs required and the Memory required for your application. By default, the instance type is “t2.micro” which is a free tier-eligible service. Do not select any other which leads to the billing amount. To know more about instance types refer to Amazon EC2 – Instance Types.

Image description

Step 4: Now, create a key-value pair, by clicking on “Create new key pair”. A window will pop up for creating key pair as shown below. The key value pair plays a major role while connecting to the EC2-Instance it will act as an SSH-Key to connect to the instance. Create Key-PairEnter name>>Select “.pem” and create. Automatically key pair which was created will be downloaded. Select the created key pair.

Creating key pair

Image description

Step 5: Keep the network settings as default settings and make changes if required.StorageAs mentioned in the picture, Free tier eligible can get up to 30 GB of EBS Storage. Keep it as default.

Image description

Step 6: Launching Instance At last, Check if all the selected are eligible for a free tier or not and click on “Launch instance”.That’s it, an instance will be created.

Image description

Steps To Connect Terminal Using SSH-Key

Step 1: Select the server to which you want to connect and click on the connect button at the top of that instance as shown in the image below.

Image description


Step 2: Copy the SSH key which is right following the example it will acct as a key-pair to connect to EC2-Instance.

Image description

Step 3: Open the terminal and go to the folder where your .pem file is located and paste the key that you have copied in AWS and paste it in the terminal.

Image description

To know whether you connected to EC2-Instance perfectly or not you can check the IP-Adrees of the instance if the IP is displaying then you have connected successfully.

How do I create AWS Resources Using Ansible?

Ansible provides set of built-in modules which are used to configure the AWS resources. BU using this ansible modules you can configure AWS resources like EC2 instance,S3 buckets,load balancer and autoscaling and son on.

Follow the steps mentioned below to create EC2 instance using Ansible
Step 1: Install the required modules in ansible to configure the AWS resources. You can install by using the following command.

ansible-galaxy install
Enter fullscreen mode Exit fullscreen mode

Step 2: Create an playbook by using the yaml file and mention the configurations required to create AWS ec2 instance following is the sample YAML file to create AWS EC2 instance.

  • hosts: localhost tasks:
    • name: Create an EC2 instance ec2: instance_type: t2.micro ami: ami-0b7927eb9e3372e28 state: present tags: Name: MyEC2Instance

AWS EC2 Instance Types

Different Amazon EC2 instance types are designed for certain activities. Consider the unique requirements of your workloads and applications when choosing an instance type. This might include needs for computing, memory, or storage. To Know more about Ec2 instance types refer to the Amazon EC2 instance types.

Creating AWS EC2 Snapshot

EBS Snapshots are point-in-time images or copies of your EBS Volume. These are stored on S3, which can be accessed through Elastic Cloud Computing APIs or AWS Console. While EBS volumes are availability zone (AZ’s) specific but, Snapshots are Region-specific. Your Snapshot size must be either same or larger than the size of the original volume from which the snapshot is taken. As per Amazon, each AWS account can have a maximum of up to 5000 images or copies Volumes and up to 10,000 EBS Snapshots created. A snapshot, when created, shows a ‘pending ‘ status, which then converts into ‘complete’ once the snapshot creation is successful. To know more about AWS EC2 snapshot refer to the How to create AWS snapshot.

Creating AWS EC2 AMI

An Amazon Machine Image(AMI) which contains the information to launch the Amazon EC2 instance. This AMI includes all the things which are required for the application like operating system,software and settings to create your own customized EMI. Creating your own customized AMI will makes it easier to deploy the application in the EC2 instance. To know more about how to create AWS AMI refer to the Amazon Web Services – Creating an Amazon Machine Image(AMI).

EC2 Instance All-State in AWS

The common EC2 instance states are Pending, Running, Stopping, Stopped, Terminated, Shutting Down, and Rebooted. It is important to keep track of the state of your EC2 instances so that you can manage them properly. You can view the state of your instances in the EC2 Console, AWS CLI, or AWS SDKs.In AWS, EC2 (Elastic Compute Cloud) instances can have different states, which indicate what operations can be performed on them. Here are some of the common EC2 instance states:

Pending: When you launch an EC2 instance, it enters the pending state. This means that AWS is in the process of creating the instance and initializing all of the necessary components, such as the virtual machine and the associated networking resources. During this time, you won’t be able to access the instance, as it is not yet ready to be used.
Running: Once an EC2 instance has finished initializing, it enters the running state. This means that the instance is up and running and is ready to be used. In this state, you can log in to the instance and start using it to run your applications and services.
Stopping: If you manually stop an EC2 instance, or if it is part of an auto-scaling group and is being terminated, it enters the stopping state. During this state, AWS prepares the instance for shutdown by stopping any processes or applications running on the instance and disconnecting it from the network. However, the instance’s configuration and data are preserved, so you can start the instance again later if you need to.
Stopped: Once an EC2 instance has been stopped, it enters the stopped state. In this state, the instance is not running and is not available for use. However, the instance’s configuration and data are preserved, so you can start the instance again later if you need to. You might stop an instance if you don’t need it for a period of time but don’t want to terminate it entirely.
Terminated: If you manually terminate an EC2 instance, or if it is part of an auto-scaling group and is being terminated, it enters the terminated state. In this state, the instance is permanently deleted, and all of its configuration and data are lost. You might terminate an instance if you no longer need it, or if you want to replace it with a new instance.
Shutting-down: If AWS is retiring an instance, it goes into the “Shutting-down” state for a brief period before the instance is terminated. During this time, the instance is no longer available for use, and the data and configuration are preserved. This state is similar to the stopping state but with an added step of preparing the instance for retirement.
Rebooting: If you choose to reboot an EC2 instance, it enters the rebooting state. During this state, the instance’s operating system is shut down and then restarted, but the instance’s configuration and data are preserved. You might reboot an instance if you need to apply updates or make changes to the instance’s configuration.
You can view the state of your EC2 instances in the EC2 Console, AWS CLI, or AWS SDKs. It is important to keep track of the state of your instances so that you can manage them properly, such as starting, stopping, or terminating instances as needed. When you use Amazon Web Services (AWS) to run virtual servers or instances, these instances can be in different states depending on what’s happening with them. For example, an instance might be “running” when it’s up and running properly, or “stopped” when it’s not currently being used. AWS CloudWatch to monitor your EC2 instances and their associated resources in real time. CloudWatch provides a wealth of data on your instances, including CPU usage, disk activity, and network traffic, which can help you identify performance issues and other problems before they have a chance to impact your users.

Advantages of AWS EC2-Instances

  1. EC2 instances can be easily scaled up or down as per the requirement, providing a highly scalable and flexible infrastructure.
  2. EC2 instances are charged based on usage, making it cost-effective as you only pay for what you use.
  3. It can be easily deployed and managed using Amazon Web Services (AWS) management console, APIs, or CLI.
  4. It can be deployed in multiple availability zones to ensure high availability and data durability.
  5. It can be customized with different operating systems, applications, and network configurations
    Disadvantages of AWS EC2-Instances

  6. EC2 instances have limited customization options, which may not be sufficient for some applications.

  7. it can be expensive, especially when scaling up, and it can be challenging to control costs.

  8. This is vulnerable to security risks, such as unauthorized access, data breaches, and cyberattacks.

  9. EC2 instances can be complex to set up and manage, especially for non-technical users.

  10. It may experience latency due to the location of the instances and the data center, which can affect application performance.

Use cases of AWS EC2- Instances

  1. EC2 instances can be used to host websites, applications, and APIs in the cloud.
  2. It can be used to process large amounts of data using tools like Apache Hadoop and Apache Spark.
  3. It can be used to perform demanding computing tasks, such as scientific simulations and financial modeling.
  4. EC2 instances can be used to develop, test, and deploy software, allowing teams to quickly spin up resources as needed.

Best Practices For Amazon EC2 Instances

The best practices for launching or choosing the Amazon EC2-Instance are mentioned below:

Choosing the Right OS: While launching the EC2-instance you need to select the OS that suits your requirements which is where you want to deploy your application in which OS like Windows, Linux, and MacO.
Cost saving: When you are going to launch an instance you need to consider the cost and try to reduce the cost for the organization choose the type of instance wisely depending on the requirement.
Attach Autoscaling: When are you creating the EC2-Instance make sure that you attach it to the Autoscaling group by this if there is sudden traffic EC2-Instance will scale automatically depending on the load.
Secure Instance: Secure the EC2-instance by configuring it in the VPC and managing the inbound and outbound rules and also managing the incoming traffic to the EC2-Instance with the help of traffic routing.
Snapshots: Take automatic snapshots of the EBS volume automatically for certain intervals of time so you can back up the data without losing it.
Attach EBS: Attach the EBS volume to EC2-Instance without depending on the root volume of the server if anything happened to the root then your data will be safe in the EBS volume.
Attach Elastic LoadBalancer: Attach the Elastic load balancer to the EC2-Instances when there is sudden traffic the traffic will be distributed across multiple instances which will decrease the load.
Conclusion On Creating EC2 Instance in AWS (Amazon)
Another important aspect of managing EC2 instances is understanding the various instance types available in AWS. Different instance types have different performance characteristics and are optimized for different types of workloads. For example, some instances are optimized for CPU-intensive workloads, while others are better suited for memory-intensive applications. By choosing the right instance type for your workload, you can ensure that your applications are running efficiently and cost-effectively. Overall, understanding the different states of EC2 instances in AWS is just one aspect of effectively managing your infrastructure in the cloud. By taking advantage of tools like AWS CloudWatch, choosing the right instance types for your workloads, and following best practices for security and maintenance, you can ensure that your applications and services are always available to your users and that you’re getting the most out of your investment in the cloud.

FAQ Question on EC2

Understanding EC2 Basics:

Describe what Amazon EC2 is and its key features.
Answer: Amazon EC2 is a web service provided by AWS that allows users to rent virtual servers, known as instances, in the cloud. It provides resizable compute capacity and enables users to run applications, host websites, and handle various computing tasks.
Explain how EC2 instances work.
Answer: EC2 instances are virtual servers that run on physical servers in AWS data centers. Users can launch instances with different specifications, such as CPU, memory, and storage, based on their requirements.
Identify use cases for EC2 in cloud computing.
Answer: Use cases include hosting applications, web servers, databases, and performing various computing tasks.
Instance Types and Customization:

Differentiate between various EC2 instance types.
Answer: Instance types include general-purpose, memory-optimized, storage-optimized, and specialized types for GPU or FPGA workloads.
Explain how to customize EC2 instances based on application requirements.
Answer: Users can customize instances by selecting the desired type, storage options, networking configurations, and security settings.
Understand the concept of virtualization in EC2.
Answer: Virtualization in EC2 abstracts the underlying hardware, allowing multiple instances to run on a single physical server.
Security and Access Control:

Describe security groups and their role in EC2.
Answer: Security groups act as virtual firewalls, controlling inbound and outbound traffic to instances.
Explain the use of key pairs for secure access.
Answer: Key pairs are used for secure SSH or RDP access to instances, providing authentication.
Understand network access control lists (ACLs) in EC2.
Answer: ACLs control traffic at the subnet level, allowing or denying specific types of traffic.
Pricing Models:

Explain the pay-as-you-go pricing model of EC2.
Answer: Users pay only for the compute capacity they consume, and pricing is based on instance type, region, and usage duration.
Describe the factors influencing EC2 pricing.
Answer: Factors include instance type, region, pricing model, and any additional features or services used.
Understand pricing options like Reserved Instances and Spot Instances.
Answer: Reserved Instances require an upfront payment for a discount, while Spot Instances allow users to bid for unused capacity.
Auto Scaling:

Explain the concept of Auto Scaling in EC2.
Answer: Auto Scaling automatically adjusts the number of instances in a group based on changing application demand.
Identify scenarios where Auto Scaling is beneficial.
Answer: Auto Scaling is beneficial for maintaining performance, availability, and cost efficiency during varying workloads.
Describe the components of Auto Scaling.
Answer: Components include launch configurations, Auto Scaling groups, scaling policies, and triggers.
Storage Options:

Differentiate between Amazon EBS and Amazon S3.
Answer: EBS provides block-level storage attached to EC2 instances, while S3 is an object storage service.
Explain how EC2 instances use storage services.
Answer: Instances can use EBS for block storage or S3 for object storage, depending on the use case.
Identify use cases for different storage options.
Answer: EBS is suitable for databases and boot volumes, while S3 is ideal for scalable and durable object storage.
Monitoring and Scaling:

Describe how CloudWatch is used for monitoring EC2 instances.
Answer: CloudWatch collects and monitors metrics, provides alarms, and supports auto scaling based on metrics.
Explain the importance of CloudWatch metrics in scaling decisions.
Answer: CloudWatch metrics provide insights into resource utilization, helping make informed decisions about scaling.
Identify common scaling policies and triggers.
Answer: Scaling policies include scaling in/out based on metrics like CPU utilization, and triggers are conditions that initiate scaling actions.
Instance Lifecycle:

Understand the lifecycle of an EC2 instance (launch, run, stop, terminate).
Answer: Instances go through the stages of launch, run, stop, and terminate.
Explain the difference between stopping and terminating an instance.
Answer: Stopping an instance temporarily halts it, while terminating an instance permanently deletes it.
Identify scenarios where stopping an instance is useful.
Answer: Stopping an instance is useful for cost savings when it is not needed for a period.

Multiple-Choice Questions (MCQs)

Which of the following is a core service in AWS's Infrastructure as a Service (IaaS) offerings?
A) Amazon RDS
B) Amazon S3
C) Amazon EC2
D) AWS Lambda
Answer: C) Amazon EC2
What is the purpose of a security group in EC2?
A) Load balancing
B) Firewall settings for instances
C) Auto Scaling configuration
D) Data storage
Answer: B) Firewall settings for instances
Which pricing model allows users to bid for unused EC2 capacity and potentially save costs?
A) Reserved Instances
B) On-Demand Instances
C) Spot Instances
D) Dedicated Hosts
Answer: C) Spot Instances
What is the primary role of Auto Scaling in EC2?
A) Increase the size of instances
B) Automatically adjust the number of instances based on demand
C) Provide additional security to instances
D) Monitor storage usage
Answer: B) Automatically adjust the number of instances based on demand
Which service is commonly used for monitoring EC2 instances?
A) AWS Lambda
B) Amazon RDS
C) Amazon CloudWatch
D) Amazon S3
Answer: C) Amazon CloudWatch
What is the purpose of an EC2 key pair?
A) Secure access to instances
B) Auto Scaling configuration
C) Storage management
D) Load balancing
Answer: A) Secure access to instances
Which storage service is suitable for block-level storage for EC2 instances?
A) Amazon S3
B) Amazon Glacier
C) Amazon EBS
D) Amazon RDS
Answer: C) Amazon EBS
In EC2, what is the primary function of virtualization?
A) Manage network traffic
B) Optimize storage performance
C) Abstract underlying hardware
D) Monitor instance security
Answer: C) Abstract underlying hardware
These questions and answers cover a broad spectrum of topics related to Amazon EC2, providing both theoretical understanding and practical knowledge of its features and usage.

Top comments (0)