AWS for DevOps — Practice Projects
What You Will Learn
This chapter contains five hands-on projects that combine multiple AWS services into real-world scenarios. Each project mirrors what you would build in a production environment.
Real-World Analogy: Reading about swimming doesn’t make you a swimmer — you have to get in the pool. These projects are your pool.
Chapter Overview
| # | Project | Services Used | Difficulty |
|---|---|---|---|
| 1 | Production VPC | VPC, Subnets, NAT, NACLs, Security Groups | ⭐⭐ |
| 2 | ECS Fargate with CI/CD | ECS, Fargate, ECR, CodePipeline, ALB | ⭐⭐⭐ |
| 3 | Serverless REST API | API Gateway, Lambda, DynamoDB, Cognito | ⭐⭐⭐ |
| 4 | CloudFormation 3-Tier App | CloudFormation, EC2, RDS, ALB, ASG | ⭐⭐⭐⭐ |
| 5 | Monitoring & Alerting System | CloudWatch, SNS, Lambda, EventBridge | ⭐⭐⭐ |
Architecture Diagram — All Projects Combined
┌─────────────────────────────────────────────────────────────────┐
│ AWS CLOUD │
│ │
│ ┌──────────────────── Project 1 ─────────────────────┐ │
│ │ Production VPC │ │
│ │ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │ │
│ │ │ Public Sub │ │ Private Sub│ │ Database Sub │ │ │
│ │ │ (NAT GW) │ │ (App Tier) │ │ (RDS) │ │ │
│ │ └────────────┘ └────────────┘ └──────────────┘ │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────── Project 2 ─────────────────────┐ │
│ │ ECS Fargate + CI/CD │ │
│ │ CodeCommit → CodeBuild → ECR → CodeDeploy → ECS │ │
│ │ ↓ │ │
│ │ ALB │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────── Project 3 ─────────────────────┐ │
│ │ Serverless REST API │ │
│ │ Cognito → API GW → Lambda → DynamoDB │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────── Project 4 ─────────────────────┐ │
│ │ CloudFormation 3-Tier │ │
│ │ CFN Stack → VPC + ALB + ASG + EC2 + RDS │ │
│ └────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────── Project 5 ─────────────────────┐ │
│ │ Monitoring & Alerting │ │
│ │ CloudWatch → Alarms → SNS → Lambda (auto-heal) │ │
│ │ EventBridge Rules → Automated Response │ │
│ └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
How to Use These Projects
Recommended Order
Work through the projects in order — each builds on concepts from the previous one:
| Step | Project | Why This Order |
|---|---|---|
| 1 | Production VPC | Everything else runs inside a VPC |
| 2 | ECS Fargate CI/CD | Containers need networking from Project 1 |
| 3 | Serverless API | Serverless still uses VPC for private resources |
| 4 | CloudFormation 3-Tier | Automate what you built manually in 1-3 |
| 5 | Monitoring & Alerting | Monitor everything from Projects 1-4 |
Tips for Success
| Tip | Details |
|---|---|
| Use Free Tier | Most services have a free tier — use it |
| Tag everything | Add Project: practice-N tags to all resources |
| Clean up after | Delete resources when done to avoid charges |
| Take notes | Document what you learn — it helps retention |
| Break things | Intentionally cause failures to practice debugging |
Cost Warning
⚠️ Important: Some projects create resources that incur charges (NAT Gateways, ALBs, RDS). Always clean up resources after completing each project. Set up a Billing Alarm (Chapter 14) before you start.
Prerequisites
Before starting the projects, make sure you have:
| Prerequisite | How to Verify |
|---|---|
| AWS Account | Log in to console.aws.amazon.com |
| AWS CLI installed | aws --version |
| AWS CLI configured | aws sts get-caller-identity |
| Billing alarm set | Check CloudWatch Alarms |
| Basic AWS knowledge | Completed Chapters 1-14 |
# Quick verification
$ aws --version
aws-cli/2.15.0 Python/3.11.6 Darwin/23.0.0
$ aws sts get-caller-identity
{
"UserId": "AIDACKCEVSQ6C2EXAMPLE",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/devops-student"
}
Project Complexity Guide
Difficulty Scale:
⭐ = Beginner (30-60 minutes)
⭐⭐ = Intermediate (1-2 hours)
⭐⭐⭐ = Advanced (2-4 hours)
⭐⭐⭐⭐ = Expert (4-8 hours)
Common Mistakes
| Mistake | Impact | Prevention |
|---|---|---|
| Not setting billing alarm | Unexpected charges | Set up before any project |
| Forgetting to clean up | Ongoing costs | Use aws cloudformation delete-stack |
| Skipping the VPC project | Networking confusion later | Always start with Project 1 |
| Not reading error messages | Wasted debugging time | Read the full error before searching |
| Using root account | Security risk | Create an IAM user first |
Quick Reference
| Resource | Free Tier | Paid |
|---|---|---|
| VPC | Free | Free |
| Subnets | Free | Free |
| NAT Gateway | ❌ | ~$0.045/hr |
| ALB | 750 hrs/month (12 months) | ~$0.0225/hr |
| EC2 t2.micro | 750 hrs/month (12 months) | ~$0.0116/hr |
| RDS db.t3.micro | 750 hrs/month (12 months) | ~$0.017/hr |
| Lambda | 1M requests/month free | $0.20/1M requests |
| DynamoDB | 25 GB free | $0.25/GB-month |
| ECS Fargate | ❌ | ~$0.04/vCPU/hr |
Next → Project 1: Production VPC