Feeling overwhelmed by AWS? You’re not alone.
Deploying your app to the cloud sounds complicated, but it doesn’t have to be.
This guide walks you through a simple, beginner-friendly way to deploy your app on AWS—without getting lost in all the services.
By the end of this post, you’ll go from “I have no idea what EC2 means” to “Hey, my app is live!” 😎
Let’s go. ⬇️
1. Create an AWS Free Tier Account
If you haven’t already, sign up for the AWS Free Tier — it gives you enough credit to test things out without burning your wallet.
Make sure to:
- Set billing alerts (use AWS Budgets)
- Enable MFA for security
👉 AWS gives you 750 hours/month of EC2, which is enough for a small dev server.
2. Launch an EC2 Instance (Virtual Server)
Think of EC2 as your app’s home in the cloud.
Here’s how to launch your first instance:
Go to the EC2 Dashboard
Click Launch Instance
Choose an Amazon Linux 2 or Ubuntu AMI
Select the free-tier t2.micro or t3.micro
Allow HTTP and SSH access in the Security Group
Once launched, SSH into your server like this:
ssh -i /path/to/your-key.pem ec2-user@your-ec2-public-ip
3. Install Your App's Dependencies
Once you’re inside the server, install what your app needs. For example, if you're using Node.js:
sudo yum update -y
curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs git
Then clone your app:
git clone https://github.com/yourusername/your-repo.git
cd your-repo
npm install
✅ Tip: Keep your .env
or config files secure. You can use AWS Parameter Store to manage secrets.
4. Keep Your App Running with PM2
You don’t want your app to die when you close the terminal.
Install PM2 (a process manager for Node apps):
npm install -g pm2
pm2 start app.js
pm2 save
pm2 startup
This will make your app start automatically when the server reboots.
🔗 Bonus: Read this PM2 deployment guide for production tips.
5. Connect Your Domain (Optional but Awesome)
Want to point your custom domain to your app?
Use Route 53 or your domain registrar and create an A record that points to your EC2’s public IP.
Don’t forget to:
Open port 80 in your EC2 Security Group
Use Nginx as a reverse proxy if needed
Consider HTTPS via Let’s Encrypt
Here’s a quick example of a basic Nginx config:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
🎁 Bonus Tools to Explore (Optional but Powerful)
Elastic Beanstalk – Simplified deployment for apps
S3 + CloudFront – Great for hosting static sites or assets
RDS – Managed database service (PostgreSQL, MySQL, etc.)
Lambda – Deploy functions without managing servers
💬 What’s Next?
Have you deployed something on AWS recently?
Got stuck at a certain step?
Let me know in the comments—I’d love to help you troubleshoot or hear what you built!
👉 If this helped you, smash that ❤️, drop a save 📌, and share it with a fellow dev learning AWS.
Follow DCT Technology for more dev tips, cloud tutorials, and IT consulting know-how!