I recently completed a hands-on Cloud/DevOps infrastructure project where I deployed a working WordPress application on an AWS virtual machine and documented the entire process as a portfolio project.

The goal was not just to “install WordPress,” but to understand the infrastructure behind a real web application and troubleshoot problems the way a Cloud or DevOps Engineer would.

Here’s what I worked on:

Launched and configured an AWS EC2 Ubuntu Linux server

Connected securely to the server using SSH key-based authentication

Configured AWS Security Groups for SSH, HTTP, and HTTPS traffic

Installed and configured Apache

Installed PHP and required WordPress extensions

Installed and configured MySQL

Created the WordPress database and application user

Installed and deployed WordPress

Published the application through the EC2 public endpoint

Used Linux commands to inspect memory, disk space, network interfaces, listening ports, and running services

Used systemctl to manage and troubleshoot Linux services

Documented the deployment on GitHub

One of the most valuable parts of the project was troubleshooting a real infrastructure issue.

During MySQL startup, the service repeatedly failed with:

Result: oom-kill

After investigating with systemctl and free -h, I discovered that the EC2 instance had approximately 1 GB of RAM and no swap configured.

Rather than simply reinstalling MySQL, I diagnosed the root cause and created a 2 GB Linux swap file using:

fallocate → chmod → mkswap → swapon

I then configured the swap to persist across reboots through /etc/fstab, cleared the failed systemd state, and restarted MySQL successfully.

That troubleshooting experience helped reinforce an important lesson:

Deploying infrastructure is only one part of DevOps. Understanding why a service failed, identifying the root cause, applying the right fix, and documenting the incident is equally important.

I also structured the project as a proper GitHub portfolio repository containing:

Architecture documentation

Deployment guide

Security documentation

Troubleshooting documentation

Bash automation scripts

Server health-check script

Terraform starter configuration

GitHub Actions Terraform validation workflow

Screenshot/documentation structure

The project gave me practical experience across:

AWS EC2 | Linux | Ubuntu | SSH | Networking | Security Groups | Apache | PHP | MySQL | WordPress | Bash | Git | GitHub | Terraform | GitHub Actions | Infrastructure Troubleshooting

Live deployment:

http://3.253.0.178/

Next, I’ll be improving the infrastructure with HTTPS, a custom domain, monitoring with CloudWatch, automated backups, server hardening, and full Infrastructure as Code using Terraform.

Projects like this are helping me move beyond learning individual tools and understand how Cloud, DevOps, Linux, networking, security, and application infrastructure work together as one system.

#DevOps #CloudEngineering #AWS #Linux #Infrastructure #Terraform #GitHubActions #WordPress #CloudComputing