My DevOps Stage 0 Task
My First DevOps Task: Deploying NGINX on Ubuntu with AWS 🚀
Starting my DevOps journey as an intern at HNG Tech was both challenging and exciting. My very first task? Setting up NGINX on an Ubuntu server and configuring it to serve a custom HTML page displaying a welcome message with my name on it. At first, the task seemed overwhelming because I wasn't entirely sure where to begin, but through trial and error, I made it work! Here’s how it all went down.
Setting Up the Environment 🛠
The first step was to set up an Ubuntu virtual server. I used my AWS console to spin up an EC2 instance, ensuring I selected Ubuntu as the operating system. Once my server was up and running, I connected it to my terminal using SSH.
Next, I installed NGINX by running: bash sudo apt update sudo apt install nginx -y
With NGINX successfully installed, I needed to customize the default HTML page. Using the command: bash sudo nano /var/www/html/index.html
I edited the file to display my personalized welcome message. After saving my changes and restarting NGINX with: bash sudo systemctl restart nginx
I was eager to see my page live! But then, I hit a roadblock. 😩
Troubleshooting the Access Issue 🔍
Despite successfully deploying NGINX and modifying the HTML page, I couldn’t access my page using the server’s public IP address. I spent a good amount of time trying to figure out what went wrong. I checked my NGINX configuration, restarted the server multiple times, and even reinstalled NGINX—still no luck. 😕
Finally, I realized that I hadn’t configured the security group’s inbound rules in AWS to allow HTTP traffic. By navigating to the AWS security settings, I updated the inbound rules to allow traffic on port 80. After making this change, I refreshed my browser and—voila! 🎉 My custom page was live!
Lessons Learned & Takeaways 📚
This task was a significant milestone for me in my DevOps journey. Here are some key takeaways:
Understanding Virtual Machines & Cloud Deployments 🌐
Setting up an Ubuntu server on AWS and managing it via SSH gave me hands-on experience with cloud infrastructure.NGINX Configuration Basics 📄
Learning how to install and configure NGINX helped me understand web server setups and file management in Linux.Troubleshooting & Problem-Solving 🛑➡✅
Encountering and solving the security group issue reinforced the importance of debugging skills in DevOps.Confidence in Self-Learning 🚀
Overcoming the challenges on my own boosted my confidence in handling real-world DevOps problems.
Looking Ahead 🌟
This experience has set a strong foundation for me in cloud computing and server deployment. As I continue my DevOps journey, I’m excited to explore more advanced topics like automation, CI/CD pipelines, and containerization with Docker and Kubernetes.
What a rewarding start! Here’s to many more challenges and successes ahead. 🎯🔥
References
DevOps Engineers - https://hng.tech/hire/devops-engineers
Cloud Engineers - https://hng.tech/hire/cloud-engineers