AWS Fundamentals: Services Every Developer Should Know
AWS has 200+ services, and the console can feel overwhelming. The good news? You only need to understand about 10 services for 90% of web application needs.
Core Services Overview
EC2 (Elastic Compute Cloud)
Virtual servers in the cloud. Think of it as renting a computer.
# Your app runs on EC2 like this:
ssh ec2-user@your-instance-ip
cd /var/www/app
pm2 start server.js
When to use: Traditional server applications, full control needed
Pricing tip: Use t3.micro for development (free tier eligible)
S3 (Simple Storage Service)
Object storage for files. Infinitely scalable.
// Upload file to S3
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
await s3.upload({
Bucket: 'my-app-uploads',
Key: `users/${userId}/profile.jpg`,
Body: fileBuffer,
ContentType: 'image/jpeg'
}).promise();
When to use: Static files, images, backups, static website hosting
RDS (Relational Database Service)
Managed databases. AWS handles backups, updates, failover.
Supports: PostgreSQL, MySQL, MariaDB, Oracle, SQL Server
When to use: Any SQL database needs without managing servers
Lambda
Serverless functions. Pay only when code runs.
// Lambda function
exports.handler = async (event) => {
const { name } = JSON.parse(event.body);
return {
statusCode: 200,
body: JSON.stringify({ message: `Hello, ${name}!` })
};
};
When to use: APIs, scheduled tasks, event processing
API Gateway
REST/WebSocket APIs that connect to Lambda or EC2.
When to use: Always paired with Lambda for serverless APIs
Architecture Patterns
Traditional (EC2-based)
Users → Route53 → Load Balancer → EC2 Instances → RDS
→ S3 (uploads)
Serverless
Users → CloudFront → API Gateway → Lambda → DynamoDB
→ S3
Getting Started
- Create AWS account (free tier = 12 months of basic services)
- Set up IAM user (never use root account)
- Install AWS CLI:
brew install awscli - Configure credentials:
aws configure
Cost Management
AWS bills can surprise you. Prevent this:
- Set billing alerts in CloudWatch
- Use AWS Free Tier wisely
- Turn off resources when not using
- Use reserved instances for production
Free Tier Limits (12 months)
- EC2: 750 hours/month t2.micro
- S3: 5GB storage
- RDS: 750 hours/month db.t2.micro
- Lambda: 1 million requests/month
Common Beginner Mistakes
- Leaving resources running - Delete after testing
- Using root account - Create IAM users
- Hardcoding credentials - Use environment variables
- Wrong region - Always check which region you're in
Next Steps
Build a simple project:
- Host static site on S3 + CloudFront
- Build serverless API with Lambda + API Gateway
- Deploy full application on EC2 + RDS
AWS certifications (Solutions Architect Associate) are valuable for career growth, but hands-on experience matters more.