Hands-on AWS training material. Each session is a self-contained folder with its own README, exercises, and any infrastructure templates the session needs.
| Session | What students do | Key AWS services | |
|---|---|---|---|
| 2 | Cloud dev environment + Docker | Spin up a browser-based VS Code Server on EC2, then build and run a containerised nginx site | EC2, CloudFormation |
| 3 | RDS MySQL | Connect from the EC2 instance to an RDS MySQL database and work through core SQL on an e-commerce dataset | RDS |
| 4 | FastAPI on ECS Fargate | Containerise a Python API and deploy it behind a load balancer with a NoSQL backend and a managed secret | ECS Fargate, ECR, DynamoDB, ALB, IAM, Secrets Manager |
Session 1 was delivered without lab material and is not in this repo.
The sessions build on each other, so run them in order:
Session 2 → EC2 VS Code Server the dev environment students work from
Docker basics images, containers, a running web server
│
Session 3 → RDS MySQL connect to a managed database, query it
│
Session 4 → ECS Fargate + DynamoDB the container and the database, deployed
as a real service behind a load balancer
Session 2's VS Code Server is the machine students use for sessions 3 and 4 — deploy it first and keep it running for the rest of the bootcamp.
session-2/
├── cloudformation/ VS Code Server template (instructor deploys one per student)
├── exercises/ Docker basics, nginx web server
└── html/ the finished site used in exercise 2
session-3/
├── sql/ e-commerce schema + seed data
└── exercises/ connect from EC2 to RDS, then core MySQL
session-4/
└── school-api/ a full FastAPI application
├── LAB-GUIDE.md the 14-part deployment lab
├── app/ the API source
├── scripts/ table creation, seeding, smoke test
├── tests/ 23 pytest tests (no AWS account needed)
└── aws/ IAM policies, ECS task definition, deploy + cleanup scripts
- An AWS account with permissions for the services listed above.
- AWS CLI v2, configured —
aws sts get-caller-identityshould return your account. - Docker, for sessions 2 and 4 (session 2's VS Code Server template installs it).
Each session README lists what the instructor sets up in advance versus what students do themselves.
Every session creates billable resources — EC2 instances, an RDS instance, ECS tasks, a
load balancer. Tear down at the end of each session; the teardown commands are in
each session's README, and session 4 ships an aws/cleanup.sh that removes everything
it created.
The load balancer and RDS instance are the expensive items. Neither has a free tier that covers a full month, so leaving them running between sessions costs real money.
These are teaching labs, and the defaults are deliberately permissive so students can see things working without fighting configuration — plain HTTP, wide-open CORS, shared passwords and API keys, security groups broader than production would allow. Nothing here is a template for a production deployment. Each session flags what would need to change for real use.
Do not commit credentials. .env.example files show the shape of the configuration;
real values belong in Secrets Manager or your own untracked .env.