AWS Builder Center

My First AWS Experience: Taking My Project to the Cloud

I recently started exploring AWS and decided to learn cloud concepts through a project I had already built and deployed. In this article, I share my beginner journey, the AWS services I explored, and what I learned along the way.

My First Steps into AWS: Deploying My Existing Project to the Cloud

Introduction

I recently started learning Amazon Web Services (AWS), and instead of trying to learn everything at once, I decided to start with something practical.
I already had a web application that I had built and deployed on another platform. This gave me an opportunity to take a step further and understand how cloud deployment works using AWS.
This article is about my first steps into AWS, what I am currently learning, and how I am using my existing project to understand cloud concepts.

Why I Started Learning AWS

Until recently, most of my experience was focused on building applications and running them locally or using platforms that make deployment easier.
But I wanted to understand what actually happens behind the scenes.
Questions such as:
  • Where does an application actually run?
  • How does a server work?
  • How does a frontend communicate with a backend after deployment?
  • How are files stored in the cloud?
  • How are permissions managed?
  • How can an application be monitored?
made me interested in learning AWS.
So instead of starting with a long list of AWS services, I decided to learn the basics by working with a project I had already built.

Starting With My Existing Project

The project I decided to use is CourseHub.
CourseHub is a web application that helps students find useful learning resources and placement-preparation materials.
It includes resources from platforms such as:
  • Coursera
  • Udemy
  • NPTEL
  • Infosys Springboard
It also contains categories such as:
  • Programming
  • Data Structures and Algorithms
  • Aptitude
  • Communication
  • Placement preparation
The application has three main parts:
1
2
3
4
5
Frontend
↓
Backend
↓
Database
My existing technology stack includes:
1
2
3
4
React
Node.js
Express.js
MongoDB Atlas
The project was already deployed, which made it a good starting point for experimenting with AWS.

My Goal With AWS

My goal at this stage is not to learn every AWS service.
I want to understand the basic cloud concepts first.
I started with questions like:
What is a server?
What does hosting actually mean?
How does an application communicate over the internet?
What does AWS provide?
How can I deploy the different parts of my application?
This approach feels much easier for me than trying to memorize dozens of AWS services.

Understanding AWS Through My Project

I started looking at my existing application and thinking about how each part could fit into the cloud.
The basic idea looks like this:
1
2
3
4
5
6
7
8
9
10
User
|
↓
Frontend
|
↓
Backend
|
↓
Database
When learning AWS, I started mapping these components to cloud services.
For example, I learned that:

Amazon EC2

EC2 provides virtual servers in the cloud.
This helped me understand the difference between running something on:
1
My Laptop
and running it on:
1
A Cloud Server

Amazon S3

S3 is an object storage service.
While learning about it, I started understanding how files and static website content can be stored in the cloud.

IAM

IAM introduced me to AWS permissions and access management.
I learned that cloud resources should not simply be accessible to everyone.
Permissions need to be controlled carefully.

CloudWatch

I also started learning about monitoring and logs through CloudWatch.
This showed me that deploying an application is not the final step.
We also need to know what is happening after the application is running.

What I Am Learning About Deployment

One of the first things I noticed is that deployment is different from running an application locally.
Locally, I might have:
1
2
3
Frontend → localhost
Backend → localhost
Database → MongoDB Atlas
Everything feels simple because everything is running in my development environment.
In the cloud, I need to start thinking about:
1
2
3
4
5
6
7
8
9
10
11
12
13
Internet
↓
Frontend
↓
Backend
↓
Database

+ Security
+ Networking
+ Permissions
+ Environment Variables
+ Monitoring
This is one of the main reasons I wanted to start learning AWS.

My First AWS Learning Challenges

Since I am just getting started with AWS, I have also come across concepts that were completely new to me.
Some of them include:
  • EC2 instances
  • Regions and Availability Zones
  • IAM users and permissions
  • Security groups
  • Ports
  • Environment variables
  • Public and private access
  • Cloud storage
  • Logs and monitoring
At first, these terms felt confusing.
But connecting them to my own project made them much easier to understand.
For example, instead of learning EC2 only as a definition, I can think:
"If my backend needs a machine to run on, how could I provide that machine in the cloud?"
That makes the concept much more meaningful.

Learning by Doing

One thing I have realized while starting AWS is that simply watching tutorials is not enough for me.
I understand concepts better when I connect them to something I have already built.
So my learning process currently looks like:
1
2
3
4
5
6
7
8
9
10
11
12
13
Existing Project
↓
Understand the requirement
↓
Learn the AWS service
↓
Try it practically
↓
Face an error
↓
Debug it
↓
Understand the concept
This makes AWS feel less overwhelming.

What I Have Learned So Far

Even though I have only recently started learning AWS, I have already understood a few important ideas.

1. Cloud is not just a place to upload a website

There are many things involved in running an application in the cloud, including:
  • Computing
  • Storage
  • Networking
  • Security
  • Monitoring
  • Access control

2. Every AWS service has a purpose

I don't need to memorize every service.
I first want to understand:
What problem does this service solve?

3. Practical learning makes concepts easier

Using my own project gives me a reason to understand each concept instead of simply memorizing definitions.

What's Next?

This is only the beginning of my AWS journey.
My next goal is to continue working with my existing project and understand how its different components can be deployed using AWS.
I also want to explore topics such as:
  • EC2
  • S3
  • IAM
  • CloudWatch
  • Networking basics
  • Security groups
  • Docker
  • AWS Lambda
  • API Gateway
  • CloudFront
  • CI/CD
I will learn these gradually rather than trying to learn everything at once.

Conclusion

Starting AWS felt a little overwhelming because there are so many services and concepts to explore.
But using an existing project has made the learning process much easier.
Instead of asking:
"How can I learn all of AWS?"
I am asking:
"What does my project need, and which AWS concept can help me understand it?"
That small change in approach makes learning much more practical.
This is just the beginning of my AWS journey, and I am looking forward to learning more by building, experimenting, making mistakes, and understanding how things work.
This is my first step into AWS.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article