Introduction to AWS for Developers

matt
Matthew Gros · Nov 12, 2025

TLDR

Start with EC2, S3, and RDS. Add CloudFront for CDN. Use IAM properly. Don't over-engineer.

Introduction to AWS for Developers

AWS Has Too Many Services

Start with these. Add more when you need them.

EC2 (Virtual Servers)

# Basic instance
- t3.micro for small apps
- t3.small for production
- Use Amazon Linux 2 or Ubuntu

Key concepts:

  • Security Groups = firewall rules
  • Key Pairs = SSH access
  • Elastic IP = static IP address

S3 (File Storage)

// Laravel integration
Storage::disk('s3')->put('file.jpg', $contents);
$url = Storage::disk('s3')->url('file.jpg');

Use for:

  • User uploads
  • Backups
  • Static assets

RDS (Managed Database)

Handles backups, updates, failover:

- db.t3.micro for dev
- db.t3.small for small production
- Enable Multi-AZ for high availability

CloudFront (CDN)

Put in front of S3 for faster global delivery:

  1. Create distribution
  2. Point to S3 bucket
  3. Use CloudFront URL for assets

Costs to Watch

EC2 - hourly (stop when not using)
RDS - hourly (can't stop easily)
S3 - storage + requests (usually cheap)
Data transfer - outbound costs money

Use billing alerts!

Basic Architecture

                   CloudFront (CDN)
                        ↓
Users → Route 53 → Load Balancer → EC2 instances
                        ↓
                       RDS
                        ↓
                    S3 (files)

Getting Started

  1. Create IAM user (don't use root)
  2. Set up billing alerts
  3. Launch EC2 instance
  4. Create RDS database
  5. Create S3 bucket

Free tier covers basics for 12 months.

About the Author

matt

I build and ship automation-driven products using Laravel and modern frontend stacks (Vue/React), with a focus on scalability, measurable outcomes, and tight user experience. I’m based in Toronto, have 13+ years in PHP, and I also hold a pilot’s license. I enjoy working on new tech projects and generally exploring new technology.