<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harny Lawrence</title>
    <description>The latest articles on DEV Community by Harny Lawrence (@harny_lawrence_9964a16d5c).</description>
    <link>https://dev.to/harny_lawrence_9964a16d5c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2096170%2F42f7dcbc-ad66-4614-bb38-9c2bac7ffa35.jpg</url>
      <title>DEV Community: Harny Lawrence</title>
      <link>https://dev.to/harny_lawrence_9964a16d5c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harny_lawrence_9964a16d5c"/>
    <language>en</language>
    <item>
      <title>Understanding AWS VPC – Building a Custom Virtual Network</title>
      <dc:creator>Harny Lawrence</dc:creator>
      <pubDate>Mon, 10 Feb 2025 19:18:33 +0000</pubDate>
      <link>https://dev.to/harny_lawrence_9964a16d5c/understanding-aws-vpc-building-a-custom-virtual-network-48ga</link>
      <guid>https://dev.to/harny_lawrence_9964a16d5c/understanding-aws-vpc-building-a-custom-virtual-network-48ga</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Recap: Why VPC Matters?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After launching my first EC2 instance and configuring Jenkins, I realized something critical—AWS by default places instances in a shared public network (default VPC). But in a real-world production setup, you don’t want your resources open to the internet without strict security controls.&lt;/p&gt;

&lt;p&gt;This is where AWS Virtual Private Cloud (VPC) comes in.&lt;/p&gt;

&lt;p&gt;A Virtual Private Cloud (VPC) is a logically isolated section of the AWS cloud where you can launch resources like EC2 instances, databases, and load balancers. It allows you to define your own virtual network, including IP address ranges, subnets, route tables, and gateways.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Key Components of a VPC&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Here’s a breakdown of the main components and how they work together:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Subnets:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Public Subnet&lt;/u&gt;: Resources in this subnet can communicate with the internet (e.g., web servers).&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Private Subnet&lt;/u&gt;: Resources in this subnet cannot directly access the internet (e.g., databases).&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Route Tables:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Define how traffic is routed within the VPC.&lt;/p&gt;

&lt;p&gt;Each subnet is associated with a route table.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Internet Gateway (IGW)&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;Allows communication between resources in the VPC and the internet.&lt;/p&gt;

&lt;p&gt;Attached to the VPC and used by public subnets.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;NAT Gateway&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;Allows resources in private subnets to access the internet (e.g., for updates) without exposing them to inbound traffic.&lt;/p&gt;

&lt;p&gt;Located in a public subnet.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Security Groups&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;Act as virtual firewalls for instances, controlling inbound and outbound traffic.&lt;/p&gt;

&lt;p&gt;Stateful: Allow return traffic automatically.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Network ACLs (NACLs)&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;Act as a firewall for subnets, controlling inbound and outbound traffic at the subnet level.&lt;/p&gt;

&lt;p&gt;Stateless: Require explicit rules for return traffic.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Application Load Balancer (ALB)&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;Distributes incoming traffic across multiple targets (e.g., EC2 instances) in public or private subnets.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Bastion Host&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;A secure server in a public subnet used to access instances in private subnets via SSH.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Route 53&lt;/u&gt;:&lt;/p&gt;

&lt;p&gt;AWS’s DNS service, used to route traffic to resources (e.g., EC2 instances, load balancers) and register domain names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;How Everything Links Up&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Vpc in a lame man theory&lt;/p&gt;

&lt;p&gt;Step 1: Entering the City (Route 53 &amp;amp; Load Balancer)&lt;br&gt;
The first stop? Route 53, Cloudville’s GPS system. It takes the user’s request and figures out where to send it—should it go to the North theater or the South theater?&lt;/p&gt;

&lt;p&gt;Now that the request has a direction, it moves towards Cloudville’s city gates—the Load Balancer. Think of this as a border control checkpoint. It doesn’t just allow random traffic inside; instead, it checks the health of movie theaters (EC2 instances) and assigns the best one for the request.&lt;/p&gt;

&lt;p&gt;But before the request is allowed to continue, it needs a public identity—a Public IP address assigned by the Load Balancer so it can be tracked properly.&lt;/p&gt;

&lt;p&gt;Step 2: Navigating Security (NACL, Security Groups, and Routing)&lt;br&gt;
Now, here’s the tricky part: Cloudville doesn’t let just anyone waltz into its private areas. The real action happens inside a private subnet, away from the outside world.&lt;/p&gt;

&lt;p&gt;But wait! There’s a NACL (Network Access Control List) standing guard. This acts like a strict security officer at the gate, checking every request and blocking anything suspicious before it gets deeper inside.&lt;/p&gt;

&lt;p&gt;If the request passes the NACL, it’s still not free to roam yet. It needs directions! That’s where the Route Table steps in—it’s the city's navigation system, guiding requests to their final destinations.&lt;/p&gt;

&lt;p&gt;Step 3: Reaching the Private Server (Bastion Host &amp;amp; NAT Gateway)&lt;br&gt;
Now, we’ve got a small problem. The server (EC2 instance) is inside a private subnet—meaning it doesn’t have direct access to the internet. The Route Table knows where to send the request, but since the server has only a private IP address, it cannot communicate directly with the outside world.&lt;/p&gt;

&lt;p&gt;Enter the Bastion Host—Cloudville’s secret identity maker. Instead of exposing the real private server, the Bastion Host acts as a middleman, generating a new public-facing IP address to mask the private server’s real identity.&lt;/p&gt;

&lt;p&gt;With this, the request is safely passed through, reaching the EC2 instance. Boom! The movie starts streaming!&lt;/p&gt;

&lt;p&gt;Step 4: Servers Talking Back to the Internet (NAT Gateway &amp;amp; IGW)&lt;br&gt;
Now, what if the private server needs to talk to the internet? Maybe it needs to download security updates or fetch an image for the website.&lt;/p&gt;

&lt;p&gt;Here’s the thing—private subnets can’t talk directly to the outside world (that’s the whole point of security!). Instead, they need a NAT Gateway—think of it as a secure post office. The private server sends a letter to the NAT Gateway, which then forwards it using a public IP address.&lt;/p&gt;

&lt;p&gt;On the other hand, for anything in the public subnet, the Internet Gateway (IGW) handles all communication freely—acting like the main highway to and from Cloudville.&lt;/p&gt;

&lt;p&gt;If you’ve worked with VPC, what’s one thing you wish you knew earlier? Do you see anything missing or incorrect in my setup? Let’s discuss in the comments!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>🚀Diving into AWS EC2 – My First Hands-On Experience</title>
      <dc:creator>Harny Lawrence</dc:creator>
      <pubDate>Mon, 10 Feb 2025 15:18:07 +0000</pubDate>
      <link>https://dev.to/harny_lawrence_9964a16d5c/diving-into-aws-ec2-my-first-hands-on-experience-3811</link>
      <guid>https://dev.to/harny_lawrence_9964a16d5c/diving-into-aws-ec2-my-first-hands-on-experience-3811</guid>
      <description>&lt;p&gt;Earlier, I laid the foundation for my DevOps journey by exploring AWS IAM and understanding the basics of cloud computing. This week, I took the next step: diving into AWS EC2 (Elastic Compute Cloud) and deploying my first application. Here’s a detailed recap of what I learned, the challenges I faced, and how I overcame them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;🔹 What is AWS EC2?&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
EC2 is one of AWS’s core services, allowing you to launch and manage virtual servers (instances) in the cloud. Here’s what makes EC2 powerful:&lt;/p&gt;

&lt;p&gt;Elastic: Instances can be scaled up or down based on demand.&lt;/p&gt;

&lt;p&gt;Compute: Provides CPU, RAM, and storage resources.&lt;/p&gt;

&lt;p&gt;Cloud: Hosted on AWS’s infrastructure, eliminating the need for physical servers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Types of EC2 Instances&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
AWS offers a variety of EC2 instance types optimized for different workloads. Here are the five major types:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;General Purpose&lt;/u&gt;: Balanced compute, memory, and networking (e.g., t2.micro).&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Compute Optimized&lt;/u&gt;: Ideal for compute-intensive tasks like batch processing.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Memory Optimized&lt;/u&gt;: Designed for memory-intensive applications like databases.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Storage Optimized&lt;/u&gt;: Optimized for high-speed storage and low-latency workloads.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Accelerated Computing&lt;/u&gt;: Uses hardware accelerators like GPUs for machine learning and graphics processing.&lt;/p&gt;

&lt;p&gt;For my first instance, I chose the t2.micro (free tier eligible) because it’s cost-effective and perfect for learning.&lt;/p&gt;

&lt;p&gt;Here’s a detailed step-by-step breakdown of how I launched my first EC2 instance and deployed Jenkins:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 1: IAM Best Practices&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Before launching an EC2 instance, I ensured I followed AWS security best practices:&lt;/p&gt;

&lt;p&gt;Created an IAM User: Instead of using the root user, I created a dedicated IAM user with limited permissions.&lt;/p&gt;

&lt;p&gt;Enabled Multi-Factor Authentication (MFA): Added an extra layer of security to my account.&lt;/p&gt;

&lt;p&gt;Assigned Policies: Granted the IAM user permissions to launch and manage EC2 instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 2: Launching the EC2 Instance&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;a. Navigated to the EC2 Dashboard:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Logged into the AWS Management Console and selected EC2 under 
Services.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;b. Clicked Launch Instance:&lt;/p&gt;

&lt;p&gt;Chose Ubuntu as the operating system (a popular choice for DevOps &lt;br&gt;
   workflows).&lt;/p&gt;

&lt;p&gt;Selected the t2.micro instance type (free tier eligible).&lt;/p&gt;

&lt;p&gt;c. Configured Key Pair:&lt;/p&gt;

&lt;p&gt;Created a new key pair (e.g., aws_login.pem) for SSH access.&lt;/p&gt;

&lt;p&gt;Downloaded the .pem file and stored it securely.&lt;/p&gt;

&lt;p&gt;d. Configured Security Groups:&lt;/p&gt;

&lt;p&gt;Created a new security group or used the default one.&lt;/p&gt;

&lt;p&gt;Added rules to allow SSH access (port 22) from my IP address.&lt;/p&gt;

&lt;p&gt;e. Launched the Instance:&lt;/p&gt;

&lt;p&gt;Clicked Launch Instance and waited for it to initialize.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 3: Connecting to the Instance via SSH&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;a. Opened Terminal:&lt;/p&gt;

&lt;p&gt;Navigated to the directory where the .pem file was stored.&lt;/p&gt;

&lt;p&gt;b. onnected to the Instance:&lt;/p&gt;

&lt;p&gt;Used the following command:&lt;br&gt;
   ssh -i aws_login.pem ubuntu@&lt;/p&gt;

&lt;p&gt;c. Fixed SSH Key Permissions:&lt;br&gt;
   Initially, I encountered an error: “Permissions for 'aws_login.pem' &lt;br&gt;
   are too open.”&lt;/p&gt;

&lt;p&gt;Fixed it by restricting permissions using:&lt;/p&gt;

&lt;p&gt;chmod 600 aws_login.pem&lt;/p&gt;

&lt;p&gt;&lt;u&gt; What is chmod 600?&lt;/u&gt;&lt;br&gt;
   This command sets the file permissions so that only the owner can read &lt;br&gt;
   and write the file. This is necessary for SSH to work securely.&lt;/p&gt;

&lt;p&gt;d. Reconnected Successfully:&lt;/p&gt;

&lt;p&gt;Ran the SSH command again and accessed the instance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 4: Installing Jenkins&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Jenkins?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jenkins is an open-source automation server used for Continuous &lt;br&gt;
   Integration and Continuous Delivery (CI/CD). It helps automate the &lt;br&gt;
   building, testing, and deployment of applications.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;u&amp;gt;Why Do We Need Java?&amp;lt;/u&amp;gt;
Jenkins is a Java-based application, so it requires Java to run. This 
is why we install Java before Jenkins.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Installation Steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Updated the Package List:&lt;br&gt;
sudo apt update&lt;br&gt;
Installed Java:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;sudo apt install openjdk-11-jdk&lt;br&gt;
Verified Java Installation:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;java -version&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Installed Jenkins:&lt;br&gt;
Added the Jenkins repository:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;curl -fsSL &lt;a href="https://pkg.jenkins.io/debian-stable/jenkins.io.key" rel="noopener noreferrer"&gt;https://pkg.jenkins.io/debian-stable/jenkins.io.key&lt;/a&gt; | sudo &lt;br&gt;
   tee /usr/share/keyrings/jenkins-keyring.asc &amp;gt; /dev/null&lt;br&gt;
    echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] &lt;br&gt;
   &lt;a href="https://pkg.jenkins.io/debian-stable" rel="noopener noreferrer"&gt;https://pkg.jenkins.io/debian-stable&lt;/a&gt; binary/ | sudo tee &lt;br&gt;
    /etc/apt/sources.list.d/jenkins.list &amp;gt; /dev/null&lt;br&gt;
   Updated the package list and installed Jenkins:&lt;/p&gt;

&lt;p&gt;sudo apt update&lt;br&gt;
   sudo apt install jenkins&lt;br&gt;
   Started Jenkins:&lt;/p&gt;

&lt;p&gt;sudo systemctl start jenkins&lt;br&gt;
   Enabled Jenkins to Start on Boot:&lt;/p&gt;

&lt;p&gt;sudo systemctl enable jenkins&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Step 5: Accessing Jenkins&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;a. Tried Accessing Jenkins:&lt;/p&gt;

&lt;p&gt;Opened a browser and entered :8000.&lt;/p&gt;

&lt;p&gt;The page didn’t load because the security group blocked port 8000.&lt;/p&gt;

&lt;p&gt;b. Configured Security Group:&lt;/p&gt;

&lt;p&gt;Went back to the EC2 dashboard and selected the instance’s security &lt;br&gt;
  group.&lt;/p&gt;

&lt;p&gt;Added a new inbound rule:&lt;/p&gt;

&lt;p&gt;Type: Custom TCP&lt;/p&gt;

&lt;p&gt;Port Range: 8000&lt;/p&gt;

&lt;p&gt;Source: 0.0.0.0/0 (for testing purposes; restrict this in production).&lt;/p&gt;

&lt;p&gt;c. Accessed Jenkins:&lt;/p&gt;

&lt;p&gt;Refreshed the browser, and the Jenkins setup page appeared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Challenges Faced &amp;amp; Fixes&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;SSH Key Permissions:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Issue&lt;/u&gt;: The key pair was too open, causing SSH to reject it.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Fix&lt;/u&gt;: Used chmod 600 to restrict permissions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Jenkins Not Running:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Issue&lt;/u&gt;: Jenkins didn’t start after installation.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Fix&lt;/u&gt;: Installed the correct version of Java and restarted the Jenkins service.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Port 8000 Blocked:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Issue&lt;/u&gt;: Couldn’t access Jenkins via the browser.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Fix&lt;/u&gt;: Added an inbound rule to the security group to allow traffic on port 8000.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloudcomputing</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Foundations: Understanding Cloud Computing and Virtualization</title>
      <dc:creator>Harny Lawrence</dc:creator>
      <pubDate>Mon, 10 Feb 2025 13:13:30 +0000</pubDate>
      <link>https://dev.to/harny_lawrence_9964a16d5c/aws-foundations-understanding-cloud-computing-and-virtualization-5gnm</link>
      <guid>https://dev.to/harny_lawrence_9964a16d5c/aws-foundations-understanding-cloud-computing-and-virtualization-5gnm</guid>
      <description>&lt;p&gt;Starting my DevOps journey with AWS, I realized that before jumping into hands-on tasks, I needed a strong grasp of fundamental cloud concepts. This post explores the foundational principles that drive cloud computing, AWS's role in it, and key services like IAM and EC2 that set the stage for real-world deployments.&lt;/p&gt;

&lt;p&gt;☁️&lt;u&gt; &lt;strong&gt;Cloud Computing &amp;amp; Virtualization&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Before diving into AWS, I needed to understand the basics of cloud computing. Here’s what I learned:&lt;/p&gt;

&lt;p&gt;Data Centers: These are physical facilities where servers are stored and managed. Traditionally, companies would host their applications and data on their own servers in these centers.&lt;/p&gt;

&lt;p&gt;Virtualization: This is the process of creating virtual versions of physical resources (like servers) to maximize efficiency. Without virtualization, a single server might only use 10-20% of its capacity, wasting resources. Virtualization solves this by allowing multiple virtual machines (VMs) to run on a single physical server.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Public vs. Private Cloud&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Private Cloud: This is when a company hosts its own cloud infrastructure, exclusively for its internal use. It’s secure but can be expensive and resource-intensive to maintain.&lt;/p&gt;

&lt;p&gt;Public Cloud: Services like AWS, Azure, and Google Cloud are public clouds. They’re available to anyone globally and operate on a pay-as-you-go model. Public clouds are popular because they’re cost-effective, scalable, and require minimal maintenance.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Why Public Cloud?&lt;/u&gt;&lt;br&gt;
Public cloud services like AWS have become the backbone of modern infrastructure. Here’s why:&lt;/p&gt;

&lt;p&gt;Cost Efficiency: You only pay for what you use, eliminating the need for large upfront investments in hardware.&lt;/p&gt;

&lt;p&gt;Maintenance: The cloud provider handles server maintenance, updates, and security, freeing up your team to focus on building and deploying applications.&lt;/p&gt;

&lt;p&gt;Scalability: Need more resources? With a few clicks, you can scale up or down based on demand.&lt;/p&gt;

&lt;p&gt;Security: Public cloud providers invest heavily in security measures, often far beyond what most companies could afford on their own.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Why AWS?&lt;/u&gt;&lt;br&gt;
With so many public cloud providers out there, why did I choose AWS? Here’s why:&lt;/p&gt;

&lt;p&gt;First-Mover Advantage: AWS was the first major player in the cloud space, giving it a mature and comprehensive ecosystem.&lt;/p&gt;

&lt;p&gt;Market Dominance: AWS holds the largest market share in cloud computing, making it a safe and widely recognized choice.&lt;/p&gt;

&lt;p&gt;Trends: While some companies are moving back to private clouds (a process called cloud repatriation), AWS remains the go-to solution for most organizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔐 Identity &amp;amp; Access Management (IAM)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first practical step in AWS was understanding IAM (Identity and Access Management), which controls authentication and authorization.&lt;/p&gt;

&lt;p&gt;Key IAM Components:&lt;/p&gt;

&lt;p&gt;Users: Individual accounts with permissions.&lt;/p&gt;

&lt;p&gt;Groups: Collections of users with shared policies.&lt;/p&gt;

&lt;p&gt;Roles: Temporary access permissions for services or external users.&lt;/p&gt;

&lt;p&gt;Policies: JSON documents defining permissions.&lt;/p&gt;

&lt;p&gt;My first hands-on task was setting up AWS Identity and Access Management (IAM). Here’s what I did:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Created Users&lt;/u&gt;: I set up individual user accounts for different team members.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Created Groups&lt;/u&gt;: I organized users into groups based on their roles (e.g., developers, admins).&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Assigned Policies&lt;/u&gt;: I attached policies to groups to define their permissions (e.g., read-only access, full access).&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Configured Password Reset&lt;/u&gt;: I enforced a password reset on the first login for added security.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;IAM is crucial because it solves two key problems:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Authentication: Ensuring users are who they say they are.&lt;/p&gt;

&lt;p&gt;Authorization: Defining what users are allowed to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 What's Next?&lt;/strong&gt;&lt;br&gt;
This week was all about laying the foundation. Next, I’ll dive deeper into AWS services like EC2, VPC, and Route 53. I’ll also start building a production-ready infrastructure with load balancers, auto-scaling, and more. Stay tuned for updates!&lt;/p&gt;

&lt;p&gt;For now, let me know—what was the biggest challenge you faced when first learning AWS? 🚀&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloudcomputing</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
