This week, I took a major step forward in my DevOps journey. I deployed a fully live static website to the internet using AWS EC2, Docker, and Nginx. Seeing my work accessible at http://35.176.161.171 was a proud moment.
I built the entire setup from scratch:
• Launched an Ubuntu 22.04 EC2 instance
• Configured Security Groups for SSH (22) and HTTP (80)
• Automated server setup using cloud-init (User Data)
• Installed and configured Docker
• Cloned a static website from GitHub
• Wrote a custom Docker file using Nginx, Alpine
• Built the Docker image and ran the container on port 80
• Accessed the live site from the browser fully deployed and running
This project helped me deepen my understanding of real DevOps workflows:
• How cloud-init automates provisioning at boot
• The difference between a Docker image and a container
• How to write a Docker file and serve static files with Nginx
• How to troubleshoot real-world issues like port conflicts and container name clashes
• How Docker, Nginx, and cloud infrastructure integrate in a practical DevOps pipeline
Tech Stack
AWS EC2 | Ubuntu 22.04 | Docker | Nginx | cloud-init | GitHub
Each issue forced me to slow down, read the error, understand the root cause, and fix it. That’s the real DevOps mindset: build, break, debug, learn, repeat.
I want to sincerely thank my mentors, Pravin Mishra, Praveen Pandey, Abhishek Makwana, Mobarak Hosen, Onuche Paul and Nkechi Anna Ahanonye




Top comments (0)