<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elijah Udom | Infrastructure &amp; Cloud Engineer (elijahu)</title><link>https://elijahu.me/portfolio/tags/aws/</link><description>Infrastructure &amp; Cloud Engineering portfolio by Elijah Udom (elijahu) — AWS, Kubernetes, eBPF Security, AI/ML Infrastructure, and Platform Engineering projects.</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 30 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://elijahu.me/portfolio/tags/aws/index.xml" rel="self" type="application/rss+xml"/><item><title>Triforge: I Deployed an AI Model Without Clicking a Single Button</title><link>https://elijahu.me/portfolio/projects/triforge/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/triforge/</guid><description>[!WARNING] The AWS SageMaker instance backing this demo has been intentionally shut down to control infrastructure costs.
As a result, some endpoints may return 500 errors or fail to respond.
The case study, architecture, infrastructure code, and deployment workflow remain fully valid.
&amp;ldquo;I was done with ClickOps. I wanted infrastructure I could rebuild, version, and trust.&amp;rdquo;
Live Demo: chat.elijahu.me | Code: git.new/triforge | Model: Helsinki-NLP/opus-mt-en-es
The Problem I have used the AWS console.</description></item><item><title>Building a Secure CI/CD Pipeline with Docker, AWS ECR, and GitHub Actions</title><link>https://elijahu.me/portfolio/projects/cicd-container-orch/</link><pubDate>Fri, 11 Apr 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/cicd-container-orch/</guid><description>&amp;ldquo;A deployment pipeline that requires a human in the loop for every push isn&amp;rsquo;t a pipeline — it&amp;rsquo;s a bottleneck with extra steps.&amp;rdquo;
This is a full walkthrough of taking a Flask application from local development to production on AWS using Docker, ECR, ECS, and GitHub Actions — with secrets handled properly from the start, not bolted on as an afterthought.
Pipeline flow: local development → GitHub Actions → ECR → ECS</description></item><item><title>Building an AWS Security Group Auditor That Actually Works in Production</title><link>https://elijahu.me/portfolio/projects/aws-security-auditor/</link><pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/aws-security-auditor/</guid><description>&amp;ldquo;Manually checking security groups across multiple AWS accounts is how breaches happen. You miss things. You always miss things.&amp;rdquo;
Manual security group reviews feel fine at one account. At ten, you&amp;rsquo;re genuinely flying blind — too many rules, too much context to hold in your head, no audit trail. I built this CLI tool to close that gap. This is the breakdown: what I built, the failure modes I hit, and what the production version actually looks like.</description></item><item><title>Self-Hosting Gitea on AWS: Architecture, Configuration, and the 502s I Debugged</title><link>https://elijahu.me/portfolio/projects/gitea-ec2-guide/</link><pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/gitea-ec2-guide/</guid><description>&amp;ldquo;GitHub is fine until you&amp;rsquo;re rate-limited at 11 PM pushing a large repo before a deadline. That&amp;rsquo;s when you decide to build your own.&amp;rdquo;
This is a full breakdown of running Gitea on AWS EC2 — not a happy-path tutorial, but the actual build including every error I hit and how I resolved it. Architecture, configuration, the 502 debugging session, backup automation, and what three months of running this in production looks like.</description></item><item><title>Building a Number Classification API on AWS Lambda: Serverless Architecture and CORS</title><link>https://elijahu.me/portfolio/projects/numberapi/</link><pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/numberapi/</guid><description>&amp;ldquo;Serverless removes the infrastructure management problem and replaces it with a different set of problems. CORS is one of them.&amp;rdquo;
This is a breakdown of a number classification API built on AWS Lambda with API Gateway — the architecture decisions, the full Lambda function with input validation and error handling, the CORS preflight issue that catches most people, and the edge cases worth thinking about before they hit production.</description></item><item><title>NGINX on AWS EC2: Configuration, Permissions, and Debugging 403s</title><link>https://elijahu.me/portfolio/projects/nginx/</link><pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate><guid>https://elijahu.me/portfolio/projects/nginx/</guid><description>&amp;ldquo;403 errors on a freshly configured Nginx server are almost never about the file. They&amp;rsquo;re about the path to the file.&amp;rdquo;
This is a configuration and troubleshooting reference for running Nginx on Ubuntu 22.04 on AWS EC2 — covering the full setup, the security group configuration that catches people out, and the complete 403 debugging chain. Written from a real configuration session where the permission issues took longer than they should have.</description></item></channel></rss>