<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Aws-Cloud]]></title><description><![CDATA[Learn the AWS Cloud fundamentals every DevOps engineer should know, including core services, Regions, Availability Zones, pricing, and deployment basics.]]></description><link>https://adnanhaideri.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>Aws-Cloud</title><link>https://adnanhaideri.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 04:52:58 GMT</lastBuildDate><atom:link href="https://adnanhaideri.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[AWS EC2: Compute, Launch Templates, User Data & Auto Scaling]]></title><description><![CDATA[Amazon EC2 (Elastic Compute Cloud) is one of the core AWS services used to run virtual servers in the cloud.
The word Elastic represents the ability to increase or decrease computing resources accordi]]></description><link>https://adnanhaideri.hashnode.dev/aws-ec2-compute-launch-templates-user-data-auto-scaling</link><guid isPermaLink="true">https://adnanhaideri.hashnode.dev/aws-ec2-compute-launch-templates-user-data-auto-scaling</guid><category><![CDATA[ec2]]></category><category><![CDATA[Devops]]></category><category><![CDATA[AWS]]></category><category><![CDATA[DevOps Journey]]></category><category><![CDATA[Cloud Computing]]></category><dc:creator><![CDATA[Adnan Abbas]]></dc:creator><pubDate>Tue, 22 Sep 2026 19:21:39 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/1ec17335-9881-469a-93ae-f3bedcbacdc0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Amazon EC2 (Elastic Compute Cloud) is one of the core AWS services used to run virtual servers in the cloud.</p>
<p>The word <strong>Elastic</strong> represents the ability to increase or decrease computing resources according to demand.</p>
<h2>What is an EC2 Instance?</h2>
<blockquote>
<p>An <strong>EC2 instance is a virtual server running in AWS</strong>.</p>
</blockquote>
<p>Instead of purchasing and maintaining a physical server, we can rent an EC2 instance and pay for the resources we use. AWS provides different instance types with different combinations of <strong>CPU, memory, storage, and networking capacity</strong>.</p>
<p>This allows us to choose a server according to our application's requirements.</p>
<h2>Creating an EC2 Instance</h2>
<p>An EC2 instance can be created from the AWS Management Console.</p>
<p>Go to <strong>EC2 → Launch Instance</strong> and configure:</p>
<ul>
<li><p>Instance name</p>
</li>
<li><p>AMI (operating system image)</p>
</li>
<li><p>Instance type</p>
</li>
<li><p>Key pair</p>
</li>
<li><p>Network and security settings</p>
</li>
<li><p>Storage</p>
</li>
</ul>
<p>For example, when launching a Linux server, <strong>SSH (port 22)</strong> must be allowed in the security group if we want to connect to it remotely.</p>
<p>After configuring these options, launch the instance and AWS will provision the virtual server.</p>
<h2>Connecting to an EC2 Instance</h2>
<p>There are several ways to connect to an EC2 instance, depending on the operating system and configuration.</p>
<p>For Linux instances, common methods include:</p>
<ul>
<li><p>SSH</p>
</li>
<li><p>EC2 Instance Connect</p>
</li>
<li><p>AWS Systems Manager Session Manager</p>
</li>
</ul>
<p>SSH is commonly used when we have the appropriate key pair and network access.</p>
<h2>On-Demand vs Spot Instances</h2>
<p>AWS provides different purchasing options for EC2 instances.</p>
<h3>On-Demand Instances</h3>
<p>On-Demand instances are suitable when we need computing capacity without making a long-term commitment.</p>
<p>We pay for the compute capacity based on usage.</p>
<h3>Spot Instances</h3>
<p>Spot Instances use <strong>spare AWS capacity</strong> and are offered at a discounted price.</p>
<p>However, AWS can interrupt a Spot Instance when the capacity is needed elsewhere. Therefore, Spot Instances are generally suitable for workloads that can tolerate interruptions.</p>
<h2>Launch Templates</h2>
<p>When creating EC2 instances repeatedly, configuring the same options manually can become time-consuming.</p>
<p>A <strong>Launch Template</strong> solves this problem by storing configuration such as:</p>
<ul>
<li><p>AMI</p>
</li>
<li><p>Instance type</p>
</li>
<li><p>Key pair</p>
</li>
<li><p>Security groups</p>
</li>
<li><p>Storage</p>
</li>
<li><p>Network settings</p>
</li>
<li><p>User data</p>
</li>
</ul>
<p>We can then use the template to launch new EC2 instances with the same configuration.</p>
<p>A Launch Template can also be used by services such as <strong>Auto Scaling Groups</strong>.</p>
<pre><code class="language-plaintext">Launch Template
      │
      │ tells AWS how to create an instance
      ▼
┌─────────────────────┐
│ AMI                 │
│ Instance Type       │
│ Security Group      │
│ Key Pair            │
│ Storage             │
│ User Data           │
└──────────┬──────────┘
           │
           ▼
      New EC2 Instance
</code></pre>
<h2>User Data</h2>
<p><strong>EC2 User Data</strong> allows us to run commands or scripts automatically when an instance starts.</p>
<p>It is commonly used for initial server configuration, such as installing packages or starting services.</p>
<p>For example, a simple Linux User Data script could update the system and install Nginx:</p>
<pre><code class="language-bash">#!/bin/bash

apt update -y
apt install nginx -y
systemctl enable nginx
systemctl start nginx
</code></pre>
<p>This means we do not have to manually connect to every new instance and perform the same setup.</p>
<h2>Auto Scaling</h2>
<p>Applications do not always receive the same amount of traffic.</p>
<p>For example, an application might receive normal traffic during the day but experience a large increase in traffic during peak hours.</p>
<p>Running only one server can become a problem because the server may not have enough capacity.</p>
<p><strong>Auto Scaling</strong> allows AWS to automatically add or remove EC2 instances based on defined conditions.</p>
<p>An <strong>Auto Scaling Group (ASG)</strong> manages a group of EC2 instances and maintains the desired capacity.</p>
<p>For example:</p>
<ul>
<li><p>Minimum: 2 instances</p>
</li>
<li><p>Desired: 2 instances</p>
</li>
<li><p>Maximum: 5 instances</p>
</li>
</ul>
<p>If demand increases, the ASG can launch additional instances. When demand decreases, it can terminate unnecessary instances.</p>
<pre><code class="language-plaintext">                ┌──────────────────────────┐
                │   Auto Scaling Group     │
                │                          │
                │  ┌──────┐    ┌──────┐   │
                │  │ EC2  │    │ EC2  │   │
                │  │  #1  │    │  #2  │   │
                │  └──────┘    └──────┘   │
                │                          │
                └──────────────────────────┘
</code></pre>
<h2>Load Balancer</h2>
<p>When multiple EC2 instances are running, users should not need to know which individual server to connect to.</p>
<p>A <strong>Load Balancer</strong> distributes incoming traffic across available instances.</p>
<p>A common architecture looks like:</p>
<p><strong>User → Load Balancer → EC2 Instances</strong></p>
<p>AWS provides multiple types of Elastic Load Balancers. Two commonly used types are:</p>
<h3>Application Load Balancer (ALB)</h3>
<p>ALB operates at the application layer and is commonly used for <strong>HTTP/HTTPS applications</strong>.</p>
<p>It supports features such as host-based and path-based routing.</p>
<h3>Network Load Balancer (NLB)</h3>
<p>NLB operates at the network/transport layer and is designed for <strong>very high-performance TCP/UDP/TLS traffic</strong>.</p>
<h2>Creating an Auto Scaling Group</h2>
<p>An Auto Scaling Group can be created from the EC2 console.</p>
<p>The basic process is:</p>
<ol>
<li><p>Open <strong>EC2 → Auto Scaling Groups</strong></p>
</li>
<li><p>Create an Auto Scaling Group</p>
</li>
<li><p>Select a Launch Template</p>
</li>
<li><p>Choose the Launch Template version</p>
</li>
<li><p>Configure the VPC and Availability Zones</p>
</li>
<li><p>Configure the desired, minimum, and maximum capacity</p>
</li>
<li><p>Attach a Load Balancer</p>
</li>
<li><p>Create or select a Target Group</p>
</li>
<li><p>Configure health checks</p>
</li>
<li><p>Configure the scaling policy</p>
</li>
<li><p>Add tags if required</p>
</li>
<li><p>Review and create the Auto Scaling Group</p>
</li>
</ol>
<p>For example, a <strong>Target Tracking Scaling Policy</strong> can maintain an average CPU utilization of a defined percentage.</p>
<p>If CPU utilization remains above the target, the Auto Scaling Group can launch more instances. When demand decreases, it can scale the group back down, within the configured minimum and maximum limits.</p>
<h2>Final Architecture</h2>
<p>A typical highly available EC2-based application can look like this:</p>
<p><strong>Users → Application Load Balancer → Auto Scaling Group → EC2 Instances</strong></p>
<p>The <strong>Launch Template</strong> defines how new instances should be created, while <strong>User Data</strong> can automatically configure those instances.</p>
<p>The <strong>Auto Scaling Group</strong> manages the number of instances, and the <strong>Load Balancer</strong> distributes traffic between them.</p>
<p>This combination provides a foundation for running scalable applications on AWS.</p>
<pre><code class="language-plaintext">                     ┌──────────────────┐
                     │      Users       │
                     └────────┬─────────┘
                              │
                              │ HTTP / HTTPS
                              ▼
                ┌─────────────────────────┐
                │ Application Load        │
                │ Balancer (ALB)          │
                └────────────┬────────────┘
                             │
                   distributes traffic
                             │
          ┌──────────────────┴──────────────────┐
          │                                     │
          ▼                                     ▼
   ┌───────────────┐                    ┌───────────────┐
   │   EC2 #1      │                    │   EC2 #2      │
   │   Instance    │                    │   Instance    │
   └───────┬───────┘                    └───────┬───────┘
           │                                    │
           └──────────────┬─────────────────────┘
                          │
                          ▼
                   Application
                     / Service
</code></pre>
]]></content:encoded></item><item><title><![CDATA[AWS for DevOps: Where to Start]]></title><description><![CDATA[AWS provides hundreds of services for different types of applications and businesses. As a DevOps engineer, you don't need to learn all of them.
The goal is to understand the AWS services that are com]]></description><link>https://adnanhaideri.hashnode.dev/aws-for-devops</link><guid isPermaLink="true">https://adnanhaideri.hashnode.dev/aws-for-devops</guid><category><![CDATA[Devops]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Devops articles]]></category><category><![CDATA[#devopsengineer]]></category><dc:creator><![CDATA[Adnan Abbas]]></dc:creator><pubDate>Sun, 20 Sep 2026 21:56:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/19e729ac-c84d-4c56-9338-0e3c357978da.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AWS provides hundreds of services for different types of applications and businesses. As a DevOps engineer, you don't need to learn all of them.</p>
<p>The goal is to understand the AWS services that are commonly used to <strong>deploy, manage, scale, and monitor applications</strong>.</p>
<h2>How Should You Start Learning Cloud?</h2>
<p>Before learning AWS services, it's important to understand what Cloud is and why companies use it.</p>
<p>A good starting point is:</p>
<ul>
<li><p>What is Cloud?</p>
</li>
<li><p>Why do we need Cloud?</p>
</li>
<li><p>How does Cloud work?</p>
</li>
<li><p>What are IaaS, PaaS, and SaaS?</p>
</li>
<li><p>What are Regions and Availability Zones?</p>
</li>
<li><p>Which AWS services are useful for DevOps?</p>
</li>
</ul>
<p>Understanding these basics makes the AWS services much easier to learn.</p>
<h2>DevOps and Cloud</h2>
<p>Development teams build applications, but those applications need infrastructure to run.</p>
<p>Traditionally, companies managed their own physical servers. This is known as <strong>on-premises infrastructure</strong>.</p>
<p>With Cloud Computing, companies can use infrastructure provided by Cloud providers instead of buying and managing all the physical hardware themselves.</p>
<p>For a DevOps engineer, this is important because part of the job is deploying applications and managing the infrastructure they run on.</p>
<h2>What Is Cloud Computing?</h2>
<p>Cloud Computing means using resources such as servers, storage, and databases through the internet instead of owning and managing all the physical hardware yourself.</p>
<p>For example, instead of purchasing a physical server, you can create an EC2 instance on AWS and use it to run your application.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/59afd607-7320-4b2f-885e-a2c32bb42f45.png" alt="" style="display:block;margin:0 auto" />

<h3>Public and Private Cloud</h3>
<p>There are different ways organizations can use Cloud infrastructure.</p>
<p><strong>Public Cloud</strong> is provided by companies such as AWS, Azure, and Google Cloud. Multiple customers use resources provided by the Cloud provider.</p>
<p><strong>Private Cloud</strong> is dedicated to one organization and gives that organization more control over its infrastructure.</p>
<p>Many organizations can also use a combination of on-premises infrastructure and Cloud. This is commonly called a <strong>hybrid approach</strong>.</p>
<h3>IaaS, PaaS and SaaS</h3>
<p>You will often hear these three terms when learning Cloud.</p>
<p><strong>IaaS — Infrastructure as a Service</strong><br />You get infrastructure such as virtual servers and storage and manage more of the environment yourself.</p>
<p><strong>PaaS — Platform as a Service</strong><br />The Cloud provider manages more of the infrastructure, allowing developers to focus more on their applications.</p>
<p><strong>SaaS — Software as a Service</strong><br />You simply use a complete software application without managing the infrastructure behind it.</p>
<h2>How Does AWS Work?</h2>
<p>AWS operates large data centers around the world. These data centers contain the physical servers and infrastructure used to provide AWS services.</p>
<p>Instead of purchasing physical hardware, we can create the resources we need through AWS.</p>
<p>For example:</p>
<pre><code class="language-plaintext">AWS
 └── EC2 Instance
       └── Application
</code></pre>
<p>We pay for the resources according to the applicable AWS pricing model.</p>
<h3>AWS Regions and Availability Zones</h3>
<p>AWS has infrastructure in different geographical locations called <strong>Regions</strong>.</p>
<p>Each Region contains multiple <strong>Availability Zones</strong>.</p>
<p>A simple way to remember this is:</p>
<pre><code class="language-plaintext">Region
 ├── Availability Zone
 ├── Availability Zone
 └── Availability Zone
</code></pre>
<p>When creating an AWS resource, you normally need to select a Region.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/6d2f19e5-3b29-4483-a21e-ff4f60db0d59.png" alt="" style="display:block;margin:0 auto" />

<h2>Why Does Region Matter?</h2>
<p>The Region you select determines where your resource is created. Service availability and pricing can also vary between Regions.</p>
<p>For example, if you create an EC2 instance in one Region and then switch to another Region, you may not see that instance because you're looking at a different Region.</p>
<p>Always check the selected Region when working in the AWS Console.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/ee0ee990-1359-470f-b649-df5224e2fbd3.png" alt="" style="display:block;margin:0 auto" />

<h2>Why AWS?</h2>
<p>AWS is one of the major Cloud platforms and is widely used to run applications and infrastructure.</p>
<p>For a DevOps engineer, AWS provides services for areas such as:</p>
<ul>
<li><p>Compute</p>
</li>
<li><p>Networking</p>
</li>
<li><p>Storage</p>
</li>
<li><p>Security</p>
</li>
<li><p>Load balancing</p>
</li>
<li><p>Scaling</p>
</li>
<li><p>Monitoring</p>
</li>
<li><p>Containers</p>
</li>
<li><p>Automation</p>
</li>
</ul>
<p>The important thing is not to memorize every AWS service. Instead, focus on the services that are relevant to your work.</p>
<h2>AWS Pricing</h2>
<p>One of the main benefits of Cloud is that you can create resources when you need them instead of purchasing physical hardware upfront.</p>
<p>AWS follows different pricing models depending on the service. One commonly used model is <strong>pay-as-you-go</strong>, where you pay based on your usage.</p>
<p>However, Cloud resources can still generate charges, so it's important to understand the pricing before creating resources.</p>
<h2>AWS Free Tier</h2>
<p>AWS offers free usage for certain services and limits, but the available offers and conditions can change.</p>
<p>Before starting a practice project, always check the current Free Tier information.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/e95044e7-1cb6-4a32-acd2-7fe559eaa705.png" alt="" style="display:block;margin:0 auto" />

<h2>AWS Pricing Calculator</h2>
<p>AWS provides a <strong>Pricing Calculator</strong> that can be used to estimate the cost of AWS resources.</p>
<p>For example, you can select a Region, choose an EC2 configuration, specify the expected usage, and get an estimated cost.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa5d202d6c5503f269a928b/92a356eb-9352-46bf-824e-4c9f2087e6c6.png" alt="" style="display:block;margin:0 auto" />

<h2>What Should a DevOps Engineer Learn in AWS?</h2>
<p>You don't need to learn AWS from A to Z.</p>
<p>A practical starting path is:</p>
<p><strong>Compute</strong></p>
<p>Start with EC2 and understand how applications run on servers.</p>
<p><strong>Networking</strong></p>
<p>Learn the basics of VPC, subnets, security groups, and load balancers.</p>
<p><strong>Storage</strong></p>
<p>Understand services such as S3 and EBS.</p>
<p><strong>Security</strong></p>
<p>Learn IAM users, roles, and permissions.</p>
<p><strong>Scaling and Monitoring</strong></p>
<p>Understand Auto Scaling and CloudWatch.</p>
<p><strong>Containers</strong></p>
<p>After learning Docker and Kubernetes, move towards services such as ECR and EKS.</p>
<h2>Final Thoughts</h2>
<p>AWS is a large platform, but learning everything at once isn't necessary.</p>
<p>As a DevOps engineer, focus on understanding how applications are <strong>deployed, managed, scaled, secured, and monitored</strong>.</p>
<p>Start with the Cloud fundamentals, then learn the AWS services that support these areas.</p>
<p>The goal is not to memorize AWS services. The goal is to understand how they are used together to run real applications.</p>
]]></content:encoded></item></channel></rss>