AWS for Beginners: Build Your First Small Cloud Project
Date Published

To launch a small web app on AWS as a beginner, you need to learn four core services: IAM (for security and access control), EC2 (for running your application server), S3 (for storing files and static assets), and CloudWatch (for basic monitoring). Start by securing your account, then launch a small EC2 instance, connect it to S3, and deploy your app — all within the AWS Free Tier. You do not need to learn Lambda, RDS, VPC, or dozens of other services to get started.
Why AWS Feels Overwhelming (and Why It Doesn't Have to Be)
AWS offers over 200 services. For a beginner, that number is paralyzing. Most tutorials either list every service without prioritization or jump straight into complex architecture diagrams.
Here's the truth: you don't need to learn 200 services. You need to learn five. And you can build a real, working web app using just three of them.
This guide takes a different approach. Instead of giving you a roadmap with no end, we'll walk through the minimum viable AWS stack — the smallest set of services that lets you build something real — and then deploy a working web app step by step.
[image: A simple visual showing "200+ AWS Services" shrinking down to "5 Services You Actually Need" with icons for IAM, EC2, S3, CloudWatch, and RDS]
The 5 AWS Services You Actually Need (Minimum Viable Stack)
Forget the full service catalog. These are the services that matter for your first project:
ServiceWhat It DoesWhy You Need ItFree Tier?
AWS IAM
Manages users, roles, and permissions
Security foundation — never use root for daily work
Always free
Amazon EC2
Virtual servers in the cloud
Runs your web application
750 hrs/month (t2.micro/t3.micro) for 12 months
Amazon S3
Object storage for files
Stores images, static assets, backups
5 GB storage, 20,000 GET requests
Amazon CloudWatch
Monitoring and alarms
Tracks resource usage and billing alerts
Always free (basic metrics)
Amazon RDS
Managed relational databases
Only if your app needs a database
750 hrs/month for 12 months
The absolute minimum for a static or simple dynamic site: IAM + EC2 + S3 + CloudWatch. That's it. You can add RDS later when you actually need a database.
What About VPC?
Amazon VPC (Virtual Private Cloud) is important for production architectures, but for your first project, AWS creates a default VPC for you automatically. You don't need to configure subnets, route tables, or internet gateways manually. That's an advanced topic for later.
Your First 60 Minutes: Account Setup That Prevents 90% of Beginner Mistakes
Before you launch anything, spend one hour on setup. This prevents security disasters and surprise bills.
Step 1: Secure Your Root Account (10 minutes)
When you create an AWS account, you get a root user with unrestricted access to everything. AWS explicitly recommends you never use the root user for daily tasks.
Sign in as root
Go to IAM → Security credentials
Enable Multi-Factor Authentication (MFA) on the root account
Create a strong, unique password
[screenshot: AWS IAM Security Credentials page showing the MFA setup option for the root user]
Step 2: Create an IAM Admin User (15 minutes)
Instead of using root, create a dedicated IAM user with administrative permissions for your day-to-day work.
Go to IAM → Users → Create user
Name it something like admin-yourname
Attach the AdministratorAccess policy (fine for a personal learning account)
Enable MFA on this user too
Download the credentials and never commit them to Git
Follow the AWS IAM Best Practices documentation to go deeper into securing your account.
Step 3: Set Up Billing Alarms (10 minutes)
This is the single most important step for beginners. AWS Free Tier is not unlimited — it has boundaries, and crossing them costs money.
Go to Billing and Cost Management → Budgets
Create a zero-spend budget that alerts you the moment any charge appears
Create a second budget at $5 as a safety net
Check the AWS Free Tier details to understand exactly what's included.
Step 4: Choose Your Region (5 minutes)
Pick a region close to you or your target audience. For beginners in Asia, ap-south-1 (Mumbai) or ap-southeast-1 (Singapore) are common choices. Stick with one region for now — switching regions can confuse resource tracking.
Step 5: Understand the New Free Tier Model (10 minutes)
Important 2026 update: AWS replaced the old 12-month Free Tier with a credit-based model for new accounts. You now get up to $200 in credits that expire 12 months after signup, plus a choice between a Free Plan and a Paid Plan at registration.
This changes how you should plan your learning:
Credits work like a prepaid gift card — they deplete as you use services
Always-free services (Lambda, DynamoDB, CloudWatch) have monthly limits that reset indefinitely
Short-term trials start when you first use a specific service
[image: Comparison table showing "Old Free Tier" vs "New Credit-Based Free Tier" with columns for structure, amount, duration, and plan choice]
Deploy a Simple Web App on AWS (Step-by-Step)
Now let's build something real. We'll deploy a simple web application on an EC2 instance — a classic beginner project that teaches you the core workflow.
Prerequisites
An AWS account (with IAM admin user set up)
Basic familiarity with the Linux command line
Your application code (or a simple HTML file)
An SSH client (built into macOS/Linux; use PuTTY on Windows)
Step 1: Launch an EC2 Instance
Log in to the AWS Management Console and navigate to EC2
Click Launch Instance
Name: my-first-web-server
AMI: Choose Amazon Linux 2023 or Ubuntu 22.04 LTS — both are beginner-friendly
Instance type: Select t2.micro or t3.micro (Free Tier eligible)
Key pair: Create a new key pair and download the .pem file. Save this file — you cannot download it again.
Network settings: Configure the security group to allow:
SSH (port 22) from My IP
HTTP (port 80) from Anywhere
HTTPS (port 443) from Anywhere
Storage: Keep the default (8 GB gp3)
[screenshot: AWS EC2 Launch Instance page showing instance name, AMI selection, and instance type fields filled in]
Click Launch Instance and wait for the status to show Running.
Step 2: Connect via SSH
Copy the Public IPv4 address from the instance details page. Then connect:
chmod 400 my-key.pem
ssh -i "my-key.pem" ec2-user@<your-public-ip>
Use ubuntu instead of ec2-user if you chose Ubuntu.
[screenshot: Terminal window showing successful SSH connection to EC2 instance with Amazon Linux welcome message]
Step 3: Install a Web Server
Update the system and install a web server. We'll use Nginx for this example:
# For Amazon Linux:
sudo yum update -y
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# For Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
Step 4: Deploy Your Application
Create a simple HTML file to test:
sudo nano /usr/share/nginx/html/index.html
Paste this:
<!DOCTYPE html>
<html>
<head><title>My First AWS App</title></head>
<body>
<h1>Hello from AWS!</h1>
<p>This web app is running on EC2.</p>
</body>
</html>
Save and exit. Then open your browser and navigate to http://<your-public-ip>. You should see your page live on the internet.
[screenshot: Browser showing the deployed "Hello from AWS!" page with the EC2 public IP in the address bar]
Step 5: Store Files in S3
Your app might need to store images or static assets. Let's create an S3 bucket:
Go to S3 in the console
Click Create bucket
Name it something unique (e.g., my-first-app-assets-yourname)
Keep Block all public access enabled (we'll use proper access controls)
Upload a test image or file
Refer to the Amazon S3 Getting Started Guide for more details.
Step 6: Clean Up (Critical!)
This is the step most beginners skip — and it's the one that causes surprise bills.
Stop or terminate your EC2 instance
Empty and delete your S3 bucket
Check the Billing Dashboard to confirm no charges
AWS charges for running resources. A stopped EC2 instance still incurs EBS storage charges. Terminating removes everything.
The Cost Anxiety Killer: What You'll Actually Pay
Beginners fear surprise bills more than anything else. Here's the honest breakdown for this project:
ResourceFree Tier CoverageWhat You'll Pay If You Exceed
EC2 t2.micro
750 hrs/month for 12 months
~$0.0116/hour after
S3 storage
5 GB standard storage
$0.023 per GB beyond
CloudWatch
Basic metrics free
Alarms cost $0.10 each
Data transfer
100 GB/month out free
$0.09 per GB beyond
For a learning project that you run for a few hours and then terminate, your cost should be $0. The danger comes from forgetting to clean up.
Use the AWS Pricing Calculator before launching anything to estimate costs.
[image: Simple infographic showing "The 3 Cost Safety Rules" — Set budgets, Clean up after experiments, Monitor billing dashboard weekly]
What to Ignore (For Now)
This is the section no other beginner guide gives you. Here are the services and concepts you should actively avoid learning until you've built at least one project:
AWS Lambda — powerful, but serverless concepts add complexity. Learn EC2 first.
Amazon VPC — default VPC works fine. Custom networking is an advanced topic.
Kubernetes (EKS) — container orchestration is for teams, not first projects.
Terraform / CloudFormation — infrastructure as code is valuable, but learn the console first.
DynamoDB — NoSQL adds decision fatigue. Use RDS if you need a database.
AWS Amplify — great for frontend developers, but it abstracts away the learning. Build manually first.
You'll learn these eventually. But trying to learn all of them at once is the fastest path to giving up.
Deployment Path Comparison: Which Should You Choose?
The top beginner guides either push EC2 or Amplify but never compare them. Here's the honest breakdown:
PathBest ForSetup SpeedCost PredictabilityLearning Value
EC2
Full control, learning fundamentals
Moderate
Pay-per-use
⭐⭐⭐⭐⭐
Lightsail
Simple websites, WordPress
Very fast
Fixed monthly ($3.50+)
⭐⭐⭐
S3 + CloudFront
Static sites, portfolios
Fast
Very low
⭐⭐⭐⭐
Amplify
React/Next.js apps with CI/CD
Fast
Moderate
⭐⭐
For a beginner who wants to learn AWS properly: Start with EC2. It teaches you servers, networking, security groups, and SSH — concepts that transfer to every other AWS service.
If you just want a website online as fast as possible, Lightsail is the simplest starting point.
Next Steps: When to Add More Services
Once you've deployed your first web app and cleaned up, here's your natural progression:
Add a database — when your app needs to store user data, learn Amazon RDS
Add serverless — when you want to run code without managing servers, learn Lambda
Add a CDN — when you want faster global content delivery, learn CloudFront
Add automation — when you're tired of clicking in the console, learn the AWS CLI and CloudFormation
For continued learning, explore AWS Skill Builder for official free courses, and study the AWS Well-Architected Framework for design principles. If you prefer hands-on labs, KodeKloud's AWS for Beginners offers practical exercises.
Frequently Asked Questions
How long does it take to learn AWS for beginners?
You can deploy your first web app in 2–4 hours following this guide. Building working proficiency with core services takes 4–8 weeks of consistent hands-on practice.
Do I need to know Linux to learn AWS?
Basic Linux command-line skills (navigating directories, editing files, running commands) are helpful for EC2. You can learn these alongside AWS — you don't need to be an expert first.
Is AWS Free Tier really free?
The new credit-based model gives you up to $200 in credits for 12 months, plus always-free services like Lambda and CloudWatch. However, you can still incur charges if you exceed limits or forget to clean up resources.
What's the easiest AWS service for a beginner?
Amazon S3 is the easiest to start with — you can host a static website in minutes. EC2 is the most valuable to learn because it teaches core cloud concepts.
Should I learn AWS or Azure or Google Cloud first?
AWS has the largest market share (32% of global public cloud) and the most job opportunities. Start with AWS; the concepts transfer to other clouds.
Do I need a credit card to sign up for AWS?
Yes, AWS requires a credit card for account creation, even for the Free Tier. This is why setting up billing alarms immediately is so important.
How do I avoid surprise AWS bills?
Three habits: (1) set zero-spend budgets before launching anything, (2) terminate resources immediately after experiments, (3) check your billing dashboard weekly.
Can I run a real website on AWS for free?
A static site on S3 + CloudFront can run for under $1/month for low traffic. A dynamic site on EC2 t2.micro is free for 750 hours/month during your first 12 months. Beyond that, expect $5–15/month for a small app.
Your First Project Checklist
Before you close this tab, here's your action plan:
☐ Create AWS account and secure root with MFA
☐ Create IAM admin user with MFA
☐ Set up $0 and $5 billing alarms
☐ Launch a t2.micro EC2 instance
☐ Connect via SSH and install Nginx
☐ Deploy a simple HTML page
☐ Create an S3 bucket and upload a test file
☐ Verify your app is accessible via public IP
☐ Terminate all resources and verify $0 charges
Bookmark the AWS Free Tier Console to monitor your usage.
[image: A "Beginner's AWS Journey" roadmap graphic showing the progression from account setup → core services → first project → next steps]