<?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[Abdul Samad Mahmoodi]]></title><description><![CDATA[🚀 AWS | DevOps | Cloud Engineer
I’m Abdul Samad Mahmoodi, an AWS Certified Solutions Architect, expertise in Terraform, Kubernetes, Docker, CI/CD(GitLab &amp; ]]></description><link>https://mahmoodi-tech.cloud</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1740169624730/32cfab21-5744-4f8a-befd-ae82cc1a8d79.png</url><title>Abdul Samad Mahmoodi</title><link>https://mahmoodi-tech.cloud</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 02:21:15 GMT</lastBuildDate><atom:link href="https://mahmoodi-tech.cloud/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[“Windows Server 2022 Active Directory Complete Setup | DC, OU, Groups, Users, IIS & Domain Join”]]></title><description><![CDATA[🔹 Project Tasks Performed:
• Assigned Static IP Address to Server • Installed Active Directory Domain Services (AD DS)• Promoted Server to Domain Controller• Configured and Verified DNS (mylabpc.loca]]></description><link>https://mahmoodi-tech.cloud/windows-server-2022-active-directory-complete-setup-dc-ou-groups-users-iis-domain-join</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/windows-server-2022-active-directory-complete-setup-dc-ou-groups-users-iis-domain-join</guid><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Tue, 24 Feb 2026 21:38:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/e9b7b136-d802-4cf2-8972-719a6e9936a0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>🔹 Project Tasks Performed:</p>
<p>• Assigned Static IP Address to Server • Installed Active Directory Domain Services (AD DS)<br />• Promoted Server to Domain Controller<br />• Configured and Verified DNS (mylabpc.local)<br />• Created Organizational Units (IT, Finance, HR)<br />• Created Sub-OUs (System &amp; Network under IT)<br />• Created Security Groups (Windows &amp; Linux)<br />• Created and Managed Domain Users<br />• Installed and Configured IIS Web Server<br />• Deployed Custom HTML Website<br />• Joined Windows 10 Client to Domain<br />• Logged in using Domain User Account • Assigned Static IP Address to Server • Accessing to the Domain Controller web server IIS through Windows 10 Client using web browser and http protocol to mylabpc.local.</p>
<p>• Assigned Static IP Address to Server</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/f77bc30a-e536-487e-828f-a0170a9b1ce3.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Installed Active Directory Domain and DNS Services (AD DS)</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/7c460407-4e37-4f22-9ae5-ebf275860a7e.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Promoted Server to Domain Controller</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/83892750-7fc5-44af-a38c-0c8e2b808354.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Configured and Verified DNS (mylabpc.local)</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/5ac398e9-d8be-4d44-87a7-4ded5ae468d6.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Created Organizational Units (IT, Finance, HR) Created Sub-OUs (System &amp; Network under IT) Created Security Groups (Windows &amp; Linux) Created and Managed Domain Users</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/10eb6d68-a066-4e90-9b7a-ea60e40d52b8.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Installed and Configured IIS Web Server with its features.</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/373e5482-2003-4d9e-9f4a-acd981d07d35.jpg" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/a243b177-4906-491b-92a4-315026eaa6fa.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Deployed Custom HTML Website</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/f214f075-49a2-4344-8263-607cb67f630a.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Joined Windows 10 Client to Domain</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/5dec424a-aaaf-4f3b-b2b1-b10b4fc7d6cf.jpg" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/76c5dd2f-656b-4cf6-a9b9-0d3e72842709.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Logged in using Domain User Account</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/ae1b3054-5594-445f-b002-3e211d3a7450.jpg" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/222a6e64-e803-47b0-863d-4d6f744c179d.jpg" alt="" style="display:block;margin:0 auto" />

<p>• Accessing to the Domain Controller web server IIS through Windows 10 Client using web browser and http protocol to mylabpc.local.</p>
<img src="https://cdn.hashnode.com/uploads/covers/67b4ec73237c193c2d243ea5/8efad8c7-16cd-4c46-8502-f2f6ddefaf79.jpg" alt="" style="display:block;margin:0 auto" />]]></content:encoded></item><item><title><![CDATA[Hands on Lab: Real Networking and Subnetting, Configuring DHCP, DNS and Web Servers, Switches and Routers.]]></title><description><![CDATA[I have created a new project in Packet tracer which is subnetting the IP Address and creation of 2 networks, each network with 3 Pcs, 1 DHCP Server one Switch and one Router finally one internet router to connect the networks to the Web and DNS Serve...]]></description><link>https://mahmoodi-tech.cloud/hands-on-lab-real-networking-and-subnetting-configuring-dhcp-dns-and-web-servers-switches-and-routers</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/hands-on-lab-real-networking-and-subnetting-configuring-dhcp-dns-and-web-servers-switches-and-routers</guid><category><![CDATA[it admin]]></category><category><![CDATA[System administration]]></category><category><![CDATA[IT Support]]></category><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Tue, 27 Jan 2026 22:43:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1769550263207/d2f9c380-f933-47d0-ae24-05c74c3bf0b4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have created a new project in Packet tracer which is subnetting the IP Address and creation of 2 networks, each network with 3 Pcs, 1 DHCP Server one Switch and one Router finally one internet router to connect the networks to the Web and DNS Servers as below:</p>
<p>Youtube Link for the project: <a target="_blank" href="https://youtu.be/osmvw9zUaNw">https://youtu.be/osmvw9zUaNw</a></p>
<p><a target="_blank" href="https://youtu.be/osmvw9zUaNw"><strong>The given IP: 192.168.1.0/</strong></a><strong>24          255.255.255.0</strong></p>
<p><strong>Configure the network as follows:</strong></p>
<p>1- We have been allocated subnet 192.168.1.0/24 to subnet this into 5 subnets each subnet at least 6 useable hosts as below:</p>
<p>2- Subnet 1 for Network 1.</p>
<p>3- Subnet 2 for the link between Router 1 and the internet Router.</p>
<p>4- Subnet 3 for Network 2.</p>
<p>5- Subnet 4 for the link between R2 and internet router.</p>
<p>6-  Subnet 5 for the DNS and Web Servers.</p>
<p>7- Configuring the Routers and switches.</p>
<p>8- Configuring the Servers as Internet server for hosting websites.</p>
<p>9- Configuring the DHCP servers for allocating the IP for clients.</p>
<p>10-Verifying the accessibility of servers and other network devices.192.168.1.0/24 255.255.255.0 to 5 subnets and each subnets include at least 6 useable hosts. so I calculated the subnet for finding a new CIDR to not waste the IPs in /24</p>
<p>Then I calculate based the formula of 2^h-2= to our required hosts as below:</p>
<p>2³=8-2=6 which was 6 use able IP and i needed only 3 host bits for our host portion so I added the other 5 bits from 24-29 to the network portion and our new CIDR was /29</p>
<p>I found the new subnet mask and our block size of the subnets as below:</p>
<p>32-3= 29</p>
<p>in binary calculation the 29 CIDR is equal to Subnet Mask of 248 I subtracted it as below:</p>
<p>256-248= 8</p>
<p>our block size is 8 it means we have 8 ips in our subnet that two of them are Network and broadcast id then I have 6 useable ips in each subnet.</p>
<p>Subnet 1: 192.168.1.0/29 255.255.255.248</p>
<p>Subnet 2: 192.168.1.8/29 255.255.255.248</p>
<p>Subnet 3: 192.168.1.16/29 255.255.255.248</p>
<p>Subnet 4: 192.168.1.24/29 255.255.255.248</p>
<p>Subnet 5: 192.168.1.32/29 255.255.255.248</p>
<p>After that I configured this in my infrastructure which already mentioned in Packet Tracer.</p>
<p>Infrastructure of Network or topology:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553079414/c5de1917-5d97-4d58-864d-fc57e988897b.jpeg" alt class="image--center mx-auto" /></p>
<p>Configuration of router1, Switch 1 pcs and DHCP server1 in network 0 and routing to Internet router:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553201173/98bd7a8d-bf2f-4214-9182-9935a7d9a46d.jpeg" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553232916/3f765ae9-cf7f-4e17-b0eb-2d4486826ef7.jpeg" alt class="image--center mx-auto" /></p>
<p>Configuration of DHCP Server 1:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553257855/ef6f2517-cfbe-4c9a-87e3-730b25f93cab.jpeg" alt class="image--center mx-auto" /></p>
<p>Assigning IP to PC dynamically by DHCP:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553374768/09b62c24-05bd-4e87-b8ed-e2c34b131fe6.jpeg" alt class="image--center mx-auto" /></p>
<p>Finally by configuring of second network and linking routers to internet router and configuring DNS and Web Server I have successfully accessed to the servers using CLI by ping command from both networks and also using web browser to open web page with IP and Domain Name as below:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553592254/973922ff-db1e-47b3-89e7-5e3ba8fe382c.jpeg" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553618217/c759fc58-da96-4031-b12e-5934f3a74d7f.jpeg" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769553650067/462a882e-df68-4e11-be40-d695c551108c.jpeg" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[DevOps CI/CD-Pipeline]]></title><description><![CDATA[Kurze Projektbeschreibung:Ich möchte mein neues Projekt vorstellen, bei dem meine Website auf einem Docker-Server bereitgestellt wird. Die verwendeten Ressourcen für dieses Projekt sind:

VSCode, um mein Repository von GitHub zu klonen

GitHub-Webhoo...]]></description><link>https://mahmoodi-tech.cloud/devops-cicd-pipeline</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/devops-cicd-pipeline</guid><category><![CDATA[Devops articles]]></category><category><![CDATA[ci-cd]]></category><category><![CDATA[AWS]]></category><category><![CDATA[Jenkins]]></category><category><![CDATA[sonarqube]]></category><category><![CDATA[Docker]]></category><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Sat, 19 Apr 2025 21:20:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1745089608143/5e14031c-6a26-4d89-9ff1-b9e2cf811669.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Kurze Projektbeschreibung:</strong><br />Ich möchte mein neues Projekt vorstellen, bei dem meine Website auf einem Docker-Server bereitgestellt wird. Die verwendeten Ressourcen für dieses Projekt sind:</p>
<ul>
<li><p><strong>VSCode</strong>, um mein Repository von GitHub zu klonen</p>
</li>
<li><p><strong>GitHub-Webhooks</strong> für automatische Trigger</p>
</li>
<li><p><strong>AWS-Instanzen</strong> für die Server:</p>
<ul>
<li><p><strong>Jenkins</strong> zur Automatisierung der Pipeline</p>
</li>
<li><p><strong>SonarQube</strong> zur Überprüfung des Codes auf Sicherheitslücken</p>
</li>
<li><p><strong>Docker</strong> zur Bereitstellung der Website</p>
</li>
</ul>
</li>
</ul>
<p>Um einen sicheren Zugriff auf die Website über den Browser zu ermöglichen, habe ich ein <strong>SSL-Zertifikat</strong> im <strong>AWS Certificate Manager</strong> erstellt und einen <strong>CNAME-Eintrag</strong> in <strong>AWS Route 53</strong> eingerichtet. Außerdem habe ich eine <strong>CloudFront-Distribution</strong> mit einem <strong>A-Eintrag</strong> erstellt, um den Datenverkehr an meinen Docker-Server mit installierter <strong>Nginx-Anwendung</strong> weiterzuleiten.</p>
<p>Dieses Projekt ist eine <strong>CI/CD-Pipeline</strong>, die meine Website mithilfe einer automatisierten Pipeline in Docker ausführt und den Zugriff über <strong>HTTPS</strong> ermöglicht.</p>
<h2 id="heading-schritte-zur-umsetzung">📌 Schritte zur Umsetzung</h2>
<ol>
<li><p>Ich habe <strong>drei Ubuntu T2.medium Instanzen</strong> auf AWS erstellt für:</p>
<ul>
<li><p>Jenkins-Server</p>
</li>
<li><p>SonarQube-Server</p>
</li>
<li><p>Docker-Server ↓</p>
</li>
<li><p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745095971064/e793e073-768c-4ffe-a988-52c59399dd46.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p>Ich habe mich über das Terminal mit den Servern verbunden und deren <strong>Hostnamen entsprechend angepasst mit Commando hostnamectl set-hostname &lt;Server Name&gt;</strong>. ↓</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745096057971/eb0d60df-b0d7-4a09-ae6a-0119af921602.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>In <strong>GitHub</strong> habe ich ein Repository erstellt und mit <strong>VSCode</strong> mein Repository geklont.<br /> Dort habe ich <strong>HTML- und CSS-Dateien sowie eine Dockerfile</strong> geschrieben und alles in das Repository gepusht:<br /> 👉 <a target="_blank" href="https://github.com/Mahmoodi1984/website-jenkins-docker.git">GitHub Repository – website-jenkins-docker</a></p>
</li>
<li><p>Ich habe in <strong>GitHub Webhooks</strong> eingerichtet, um <strong>automatisch Änderungen im Repository</strong> über die Jenkins-Pipeline zu triggern.</p>
</li>
<li><p>Ich habe auf meinen <strong>Jenkins-Server über den Browser</strong> zugegriffen, die benötigten Plugins wie <strong>Docker</strong> und <strong>SonarScanner</strong> installiert und anschließend eine <strong>Pipeline erstellt</strong>, die automatisch auf Änderungen im GitHub-Repository reagiert.</p>
</li>
<li><p>In <strong>SonarQube</strong> habe ich ein Projekt mit dem Namen <code>website-jenkins-docker</code> erstellt.<br /> Nach dem Erstellen eines <strong>Tokens für Jenkins</strong> habe ich die <strong>IP-Adresse und den Token</strong> des SonarQube-Servers in Jenkins integriert. ↓↓</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745096642228/2ec022c6-a9a2-44c7-adc7-447ef647e2af.png" alt class="image--center mx-auto" /></p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745096768117/75eba860-92bf-475e-ab39-6aef8744d97c.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Nach einer erfolgreichen Analyse durch SonarQube habe ich den <strong>Docker-Server in die Jenkins-Pipeline</strong> integriert.</p>
</li>
</ol>
<p>    Über den <strong>SSH-Agent</strong> wurde das Projekt <code>website-jenkins-docker</code> auf dem Docker-Server ausgeführt, und <strong>Nginx</strong> wurde dort installiert.</p>
<ol start="8">
<li><p>Ich konnte meine Website im <strong>Browser über</strong> <a target="_blank" href="http://localhost"><strong>localhost</strong></a> <strong>und den HTTP-Port</strong> aufrufen. ↓</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745096814767/3dedcbfb-1d8b-43de-99f0-1398cc1b7a3d.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Für eine <strong>sichere HTTPS-Verbindung (Port 443)</strong> habe ich:</p>
<ul>
<li><p>Ein <strong>SSL-Zertifikat</strong> im <strong>AWS Certificate Manager (ACM)</strong> erstellt</p>
</li>
<li><p>Einen <strong>CNAME-Eintrag</strong> in <strong>AWS Route 53</strong> gesetzt ↓</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745096946801/32c3af05-fef5-4397-8e6e-28e7c28194b4.png" alt class="image--center mx-auto" /></p>
</li>
</ul>
</li>
<li><p>Zur Weiterleitung des Traffics habe ich eine <strong>CloudFront-Distribution</strong> erstellt,<br />die das bereits in ACM generierte SSL-Zertifikat verwendet.<br />Mit einem <strong>A-Eintrag in Route 53</strong> wird der Traffic von Port 80 (HTTP) auf Port 443 (HTTPS) zum Docker-Server geleitet, der die Website hostet. ↓</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745097006680/6a974a02-dc18-40a9-9362-970bb2d01651.png" alt class="image--center mx-auto" /></p>
<p>Am Ende konnte ich erfolgreich auf meine Website über eine <strong>sichere HTTPS-Verbindung (Port 443)</strong><br />unter meiner <strong>persönlichen Domain https://mahmoodi-tech.de</strong> zugreifen: ↓</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745097154179/7b1dac4c-3e36-4f00-aa07-cfbd9b1096c6.png" alt class="image--center mx-auto" /></p>
</li>
</ol>
<hr />
<h2 id="heading-ergebnis">✅ Ergebnis</h2>
<p>Eine vollständige <strong>CI/CD-Pipeline</strong>, die:</p>
<ul>
<li><p>Änderungen automatisch von GitHub abruft</p>
</li>
<li><p>Den Code auf Schwachstellen mit SonarQube überprüft</p>
</li>
<li><p>Die Website auf einem Docker-Server bereitstellt</p>
</li>
<li><p>Über <strong>HTTPS sicher zugänglich</strong> ist</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Serverless API with AWS Lambda and API Gateway]]></title><description><![CDATA[This project demonstrates how to build a simple, serverless API using AWS Lambda and API Gateway. The goal is to create an API endpoint that returns the client's IP address using the (X-Forwarded-For header) from incoming HTTP requests. The project u...]]></description><link>https://mahmoodi-tech.cloud/devops-and-ci-cd</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/devops-and-ci-cd</guid><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Sat, 08 Mar 2025 22:20:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1741468100840/4b149666-06dd-4a47-911f-6f4349a1e134.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This project demonstrates how to build a simple, serverless API using AWS Lambda and API Gateway. The goal is to create an API endpoint that returns the client's IP address using the (X-Forwarded-For header) from incoming HTTP requests. The project utilizes AWS services to handle the backend logic and exposes the Lambda function through a scalable HTTP API using API Gateway.</p>
<p>I used Terraform for creation of this serverless infrastructure and the steps I went for creation are as below:</p>
<ol>
<li><p>I used VSCode and created a directory (Lambda-api) and inside that I created my main.tf for terraform and another folder (Lambda) including lambda.py file.</p>
</li>
<li><p>Inside my lambda.py I used (def lambda_handler(event, context):) and at the end return statuscode 200 to return the IP.</p>
</li>
<li><p>In Terraform file main.tf I did below steps: a- Provider for terraform b- data "archive_file" for our lambda.zip c- resources for creation of structure like, IAM Role, Lambda Functions, apigateway, apigateway_stage, gateway integration, apigateway_route and lambda_permission.</p>
</li>
</ol>
<p>4- After my code completed I used terraform commands as below:</p>
<p>a- terraform init: for downloading the plugins</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471543945/cf2ac804-4668-47c7-8966-551c86d50e7d.png" alt class="image--center mx-auto" /></p>
<p>b- terraform fmt: for format of my code</p>
<p>c- terraform validate: for validation of my code syntax based on terraform requirements</p>
<p>d- terraform plan: to see the planned infrastructure and possible mistakes inside the code</p>
<p>e- terraform apply: to create our infrustructure</p>
<p>f- terraform destroy for destroying infrastructure to prevent from costs</p>
<p>5- when the serverless infrastructure created</p>
<p>a- I opened my AWS Consule and navigated to Lambda and then function there was a function with the name of lambda-function created as I defined in my VSCode for terraform.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471372702/4513235e-45d7-4e3e-b0d7-40bc38d78e47.png" alt class="image--center mx-auto" /></p>
<p>b- then I opend the function I saw the Python code which I defined in my VSCode for terraform</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471859516/2b8c7373-5064-4a56-b8b7-8b2b8166e3ef.png" alt class="image--center mx-auto" /></p>
<p>c- and I went to api gateway and there was also an api created with the name which I specified in my code</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471967874/ebdb1540-a859-4ecd-9ca5-caefbb1b4a8b.png" alt class="image--center mx-auto" /></p>
<p>d- finally I got the URL and opened in my browser and api returned the IP as below:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741472127846/46962bfd-2a59-4ee4-9cbc-036f9062611b.png" alt class="image--center mx-auto" /></p>
<p><strong>Key Components:</strong> AWS Lambda: The backend function that processes HTTP requests and extracts the client's IP address from the X-Forwarded-For header. API Gateway: Exposes the Lambda function as an HTTP endpoint. Requests are routed through API Gateway and trigger the Lambda function. IAM Role: Grants the necessary permissions for Lambda to be invoked by API Gateway. API Gateway Integration: AWS Proxy integration links the API Gateway route to the Lambda function, allowing dynamic request handling.</p>
<p><strong>Usecases:</strong></p>
<p>This project is a great example of a serverless architecture where you don’t need to manage servers. It's ideal for scenarios like returning user-specific data (like IP address), handling simple backend logic, and creating scalable APIs without worrying about infrastructure.</p>
]]></content:encoded></item><item><title><![CDATA[Serverless API with AWS Lambda and API Gateway]]></title><description><![CDATA[This project demonstrates how to build a simple, serverless API using AWS Lambda and API Gateway. The goal is to create an API endpoint that returns the client's IP address using the (X-Forwarded-For header) from incoming HTTP requests. The project u...]]></description><link>https://mahmoodi-tech.cloud/my-projects</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/my-projects</guid><category><![CDATA[lambda]]></category><category><![CDATA[APIs]]></category><category><![CDATA[Terraform]]></category><category><![CDATA[Infrastructure as code]]></category><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Fri, 07 Mar 2025 07:35:37 GMT</pubDate><content:encoded><![CDATA[<p>This project demonstrates how to build a simple, serverless API using AWS Lambda and API Gateway. The goal is to create an API endpoint that returns the client's IP address using the (X-Forwarded-For header) from incoming HTTP requests. The project utilizes AWS services to handle the backend logic and exposes the Lambda function through a scalable HTTP API using API Gateway.</p>
<p>I used Terraform for creation of this serverless infrastructure and the steps I went for creation are as below:</p>
<ol>
<li><p>I used VSCode and created a directory (Lambda-api) and inside that I created my <a target="_blank" href="http://main.tf">main.tf</a> for terraform and another folder (Lambda) including <a target="_blank" href="http://lambda.py">lambda.py</a> file.</p>
</li>
<li><p>Inside my <a target="_blank" href="http://lambda.py">lambda.py</a> I used (def lambda_handler(event, context):) and at the end return statuscode 200 to return the IP.</p>
</li>
<li><p>In Terraform file <a target="_blank" href="http://main.tf">main.tf</a> I did below steps: a- Provider for terraform b- data "archive_file" for our <a target="_blank" href="http://lambda.zip">lambda.zip</a> c- resources for creation of structure like, IAM Role, Lambda Functions, apigateway, apigateway_stage, gateway integration, apigateway_route and lambda_permission.</p>
</li>
</ol>
<p>4- After my code completed I used terraform commands as below:</p>
<p>a- terraform init: for downloading the plugins</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471543945/cf2ac804-4668-47c7-8966-551c86d50e7d.png" alt class="image--center mx-auto" /></p>
<p>b- terraform fmt: for format of my code</p>
<p>c- terraform validate: for validation of my code syntax based on terraform requirements</p>
<p>d- terraform plan: to see the planned infrastructure and possible mistakes inside the code</p>
<p>e- terraform apply: to create our infrustructure</p>
<p>f- terraform destroy for destroying infrastructure to prevent from costs</p>
<p>5- when the serverless infrastructure created</p>
<p>a- I opened my AWS Consule and navigated to Lambda and then function there was a function with the name of lambda-function created as I defined in my VSCode for terraform.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471372702/4513235e-45d7-4e3e-b0d7-40bc38d78e47.png" alt class="image--center mx-auto" /></p>
<p>b- then I opend the function I saw the Python code which I defined in my VSCode for terraform</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471859516/2b8c7373-5064-4a56-b8b7-8b2b8166e3ef.png" alt class="image--center mx-auto" /></p>
<p>c- and I went to api gateway and there was also an api created with the name which I specified in my code</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741471967874/ebdb1540-a859-4ecd-9ca5-caefbb1b4a8b.png" alt class="image--center mx-auto" /></p>
<p>d- finally I got the URL and opened in my browser and api returned the IP as below:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1741472127846/46962bfd-2a59-4ee4-9cbc-036f9062611b.png" alt class="image--center mx-auto" /></p>
<p><strong>Key Components:</strong> AWS Lambda: The backend function that processes HTTP requests and extracts the client's IP address from the X-Forwarded-For header. API Gateway: Exposes the Lambda function as an HTTP endpoint. Requests are routed through API Gateway and trigger the Lambda function. IAM Role: Grants the necessary permissions for Lambda to be invoked by API Gateway. API Gateway Integration: AWS Proxy integration links the API Gateway route to the Lambda function, allowing dynamic request handling.</p>
<p><strong>Usecases:</strong></p>
<p>This project is a great example of a serverless architecture where you don’t need to manage servers. It's ideal for scenarios like returning user-specific data (like IP address), handling simple backend logic, and creating scalable APIs without worrying about infrastructure.</p>
]]></content:encoded></item><item><title><![CDATA[Resume]]></title><description><![CDATA[Abdul Samad Mahmoodi Cloud Solutions Architect Cloud Architect with a substantial portfolio of industry certifications. Specialized in designing robust cloud infrastructure and implementing security best practices to deliver high-quality, reliable so...]]></description><link>https://mahmoodi-tech.cloud/resume</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/resume</guid><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Thu, 06 Mar 2025 19:31:45 GMT</pubDate><content:encoded><![CDATA[<p>Abdul Samad Mahmoodi Cloud Solutions Architect Cloud Architect with a substantial portfolio of industry certifications. Specialized in designing robust cloud infrastructure and implementing security best practices to deliver high-quality, reliable solutions. My background in economics and financial services expertise provides valuable insights to align cloud initiatives with financial objectives.</p>
<p>📞 Contact 📧 mahmoodiabdulsamad@gmail.com</p>
<p>📍 Leipzig, Germany</p>
<p>🎓 Certifications AWS Solutions Architect (October 2024)</p>
<p>HashiCorp Terraform Certified (September 2024)</p>
<p>GitLab CI/CD Certified (October 2024)</p>
<p>AWS Cloud Practitioner (July 2024)</p>
<p>💻 Technical Skills Cloud Architecture</p>
<p>Linux</p>
<p>Terraform</p>
<p>Docker</p>
<p>Python</p>
<p>DevOps CI/CD</p>
<p>Databases</p>
<p>Security</p>
<p>Git</p>
<p>🗣️ Languages:</p>
<p>German (B2)</p>
<p>English (C1)</p>
<p>Persian native</p>
<p>👩‍💼 Work Experience:</p>
<p>IT-Administrator: GFA Consulting Group GmbH January 2015 November 2021</p>
<p>Tasks and Responsibilities:</p>
<p>▪ <strong>System Administration</strong>: Installation, configuration, and maintenance of operating systems, software applications, and hardware components.<br />▪ <strong>Network Administration</strong>: Management of the entire network infrastructure, including network devices and security protocols.<br />▪ <strong>User Support</strong>: Troubleshooting user issues, providing technical support, and managing user accounts.<br />▪ <strong>IT Security</strong>: Implementation and maintenance of security measures such as firewalls, intrusion detection systems, and backup and recovery systems.<br />▪ <strong>Performance Monitoring</strong>: Monitoring system performance, identifying bottlenecks, and optimizing system efficiency.<br />▪ <strong>Documentation</strong>: Creating and maintaining technical documentation for systems, configurations, and processes.</p>
<p>Finanzmanager | GFA Consulting Group GmbH January 2015 - November 2021</p>
<p>Tasks and Responsibilities:</p>
<p>▪ <strong>Application of GFA guidelines</strong> to internal processes and rules related to various funding contracts, including local subsidies and financing agreements.<br />▪ <strong>Review of billing documents</strong> and follow-up on contracts with program stakeholders.<br />▪ <strong>Monitoring of project expenditures and financial controlling.</strong><br />▪ <strong>Preparation of financial information and analysis</strong> for the province for internal reporting purposes, including the monthly management report and the quarterly cash report.<br />▪ <strong>Ensuring timely submission of cash requests</strong> to GFA Hamburg.<br />▪ <strong>Ensuring compliance with GFA/GIZ rules</strong> regarding procurement, accounting, project expenditures, and activity implementation through regular reporting and coordination with the provincial team.<br />▪ <strong>Support in the preparation, accompaniment, and follow-up</strong> of internal or external audits and expenditure reviews of the provincial program.</p>
<p>Admin/Finance officer | GIZ March 2010 - December 2014</p>
<p>📚 Education AWS Cloud Engineer | DCI Digital Career Institute GmbH November 2023 - November 2024</p>
<p>Intensive 1-year training in AWS cloud architecture</p>
<p>Infrastructure as Code, Containerization, and DevOps practices</p>
<p>German language training to B2 level</p>
<p>Bachelor of Law and Political Science | Higher Institute of "Rah-E-Saadat" March 2016 - March 2020</p>
]]></content:encoded></item><item><title><![CDATA[🚀 AWS | DevOps | Cloud Engineer]]></title><description><![CDATA[🚀 AWS | DevOps | Cloud Engineer
1️⃣ About Me (Short Bio) 
"I'm Abdul Samad Mahmoodi, an AWS Certified Solutions Architect passionate about DevOps, Cloud Engineering, and CI/CD automation. I love building scalable cloud solutions using AWS, Terraform...]]></description><link>https://mahmoodi-tech.cloud/aws-devops-cloud-engineer</link><guid isPermaLink="true">https://mahmoodi-tech.cloud/aws-devops-cloud-engineer</guid><dc:creator><![CDATA[Abdul Samad Mahmoodi]]></dc:creator><pubDate>Fri, 21 Feb 2025 19:38:39 GMT</pubDate><content:encoded><![CDATA[<p>🚀 AWS | DevOps | Cloud Engineer</p>
<p>1️⃣ About Me (Short Bio) 
"I'm Abdul Samad Mahmoodi, an AWS Certified Solutions Architect passionate about DevOps, Cloud Engineering, and CI/CD automation. I love building scalable cloud solutions using AWS, Terraform, Kubernetes, and Docker."</p>
<p>2️⃣ Skills &amp; Technologies
🚀 Cloud &amp; DevOps: AWS, Terraform, Kubernetes, Docker, GitLab CI/CD
🖥️ Programming: Python, Bash, YAML
📡 Networking &amp; Security: VPC, Security Groups, IAM Policies
📊 Databases: MySQL, DynamoDB
🔧 Infrastructure as Code (IaC): Terraform, CloudFormation</p>
<p>3️⃣ Certifications &amp; Achievements
🏆 AWS Certified Solutions Architect – Associate
🏆 Terraform Associate
🏆 GitLab CI/CD Certified
🏆 Linux System Administration (RHCSA - Basic)</p>
<p>4️⃣ My Projects (Pinned Articles or GitHub Repos)
🔹 "Automating AWS Infrastructure with Terraform" (🔗 Link to Hashnode post)
🔹 "Building a CI/CD Pipeline for Flask Apps with GitLab" (🔗 GitHub repo)
🔹 "Deploying Serverless Applications on AWS (API Gateway + Lambda + DynamoDB)"</p>
<p>5️⃣ Blog Topics I Write About
📌 AWS Solutions Architecture
📌 CI/CD with GitLab &amp; GitHub Actions
📌 Terraform &amp; Infrastructure as Code
📌 Serverless &amp; Microservices
📌 Security Best Practices in Cloud</p>
<p>6️⃣ Contact &amp; Social Media
📧 Email: samadm.008@gmail.com
🔗 GitHub: 
💼 LinkedIn: linkedin.com/Abdul Samad Mahmoodi
🌍 Portfolio:</p>
]]></content:encoded></item></channel></rss>