AWS
5 min read

My First Real Deployment on AWS EC2: What I Learned

How deploying a website on a real AWS EC2 server helped me connect Linux, networking, security groups, Nginx, and DNS with practical cloud infrastructure.

Learning AWS from courses and actually deploying something on an EC2 server are two different experiences.

As I started learning Cloud and DevOps, I wanted to move beyond simply understanding what EC2, security groups, Linux, and networking were. I wanted to see how these pieces work together when a real website needs to be accessible over the internet.

Starting with EC2

Amazon EC2 gave me a virtual server where I could choose the operating system, instance configuration, networking, and storage.

Instead of thinking about EC2 only as "a cloud VM", I started seeing it as a server that I was responsible for configuring and maintaining.

The first important things I worked with were:

  • Launching an EC2 instance
  • Connecting to the Linux server through SSH
  • Understanding the instance's public IP
  • Working with Linux from the command line
  • Installing and configuring a web server
  • Managing files and permissions

Security Groups Made Networking Practical

One of the most useful parts of the experience was working with Security Groups.

Before deploying anything, I had learned that ports such as SSH (22), HTTP (80), and HTTPS (443) are important. On EC2, I could actually see how inbound rules determine which traffic is allowed to reach the server.

This connected AWS networking concepts with something tangible.

SSH (22) → remote server administration
HTTP (80) → normal web traffic
HTTPS (443) → secure web traffic

It made networking much easier to understand because I could see the effect of these rules on an actual server.

Nginx and the Web Server

After connecting to the server, I configured a web server to serve my website.

Working with Nginx helped me understand the relationship between:

Browser → DNS → Public IP → EC2 → Nginx → Website

This was one of the biggest learning points for me.

A website is not simply "uploaded to the cloud." Multiple components work together to make it accessible.

Connecting a Domain

I also worked with domain configuration and learned how DNS connects a human-readable domain name with a server.

This helped me understand why a domain can be thought of as an entry point while the server behind it actually handles the request.

It also made concepts like DNS records, public IP addresses, HTTP, HTTPS, and reverse proxies feel much more practical.

What I Learned

My first EC2 deployment taught me several things that tutorials alone could not.

I learned that:

  1. Cloud knowledge becomes much clearer when you build something.
  2. Linux is an important foundation for DevOps.
  3. Networking is directly connected to deployment.
  4. Security Groups are an essential part of controlling access.
  5. DNS is an important part of making applications reachable.
  6. Deployment involves multiple systems working together.
  7. Troubleshooting is part of the learning process.
"Don't just learn cloud services. Build something with them."

What's Next

I'm continuing to build my Cloud and DevOps foundation by working with Docker, GitHub Actions, Terraform, AWS services, Linux, and automation.

My goal is to gradually move from manually deploying applications toward repeatable and automated infrastructure and deployment workflows.

This deployment was only one step, but it helped turn several concepts I had studied into something I could actually see and troubleshoot.