Hands-on workshop labs built by BeCloudReady for engineering teams. Each lab is self-contained — pre-scoped IAM permissions, step-by-step walkthroughs, and sample data included. Drop into a workshop or run independently.
| Workshop | What you build | Stack |
|---|---|---|
workshops/aws-data-lake/ |
End-to-end data lake — raw ingestion → ETL → governance → CDC → analytics | S3, Glue, Athena, Lake Formation, Redshift, DMS, OpenSearch |
workshops/aws-iam-policy/ |
Read, predict, and write IAM policies using a real sandbox policy as the textbook | IAM, CloudShell |
workshops/fullstack-aws/ |
Full-stack app on AWS — React + FastAPI + MongoDB + Terraform + CI/CD, 7 chapters + 4 deployable projects | React, FastAPI, Lambda, S3, DynamoDB, API Gateway, Terraform, GitHub Actions |
workshops/equipment-inspection/ |
Versioned inspection photos for IoT / oil & gas equipment — presigned S3 upload, DynamoDB metadata, version history UI | React, FastAPI, S3, DynamoDB, Terraform |
workshops/databricks-db-agent-lakebase/ |
Text-to-SQL agent backed by Lakebase (Postgres), Databricks Unity Catalog, and a self-hosted vLLM endpoint | Databricks, Delta Lake, vLLM |
| Chapter | Topic |
|---|---|
| 01 | Vibe Coding — FastAPI app with AI prompting |
| 02 | Backend & Databases — CRUD API + MongoDB |
| 03 | Testing — TDD cycle with AI assistance |
| 04 | Security — API key auth + JWT |
| 05 | Infrastructure — Terraform on AWS |
| 06 | Cloud & CI/CD — Lambda, API Gateway, S3, GitHub Actions |
| 07 | React — frontend, components, full-stack integration |
4 deployable projects: Task Tracker · Notice Board · URL Bookmark Saver · Architecture Diagram
Labs 1–3 build on each other. Labs 4–6 are standalone.
| Lab | Topic |
|---|---|
| Lab 1 | S3 · Glue Crawler · Glue ETL (PySpark) · Athena |
| Lab 2 | Event-driven ingestion — S3 → SQS → Lambda |
| Lab 3 | Data governance — Lake Formation row/column/tag-based access control |
| Lab 4 | Redshift Serverless · federated query from Aurora RDS |
| Lab 5 | Change Data Capture — Postgres → DMS → S3 or Postgres target |
| Lab 6 | OpenSearch — ingestion, search, and dashboards |
BeCloudReady is a Databricks Registered Partner that builds and delivers cloud workshops for engineering teams. We run community workshops at TorontoAI.
| Cloud Workshops | Per-student AWS / Azure / GCP / Databricks sandboxes — region-locked, namespace-scoped, teardown-clean |
| AI & GPU Labs | H100 / A100 cohorts on neo-cloud (Lambda Labs, Shadeform, RunPod) — 30–70% cheaper than hyperscaler on-demand |
| Sales Demo Environments | Reproducible demo stacks for SE teams and partner programs |
Need a workshop for your team? → becloudready.com/labs · Book a call
Every resource created in a workshop must carry these tags. The nightly cleanup workflow reads them to decide what to delete.
| Tag | Example | Purpose |
|---|---|---|
Environment |
workshop |
Required — triggers nightly cleanup |
Workshop |
aws-data-lake |
Which lab |
CohortDate |
2026-07-07 |
When the cohort ran |
Student |
alice-johnson |
Per-student namespace |
AutoDelete |
true (default) |
Set to false to protect a resource |
All Terraform modules in this repo apply these tags via local.common_tags. Resources created manually (via console or CLI) must be tagged manually.
To protect a resource from nightly deletion — add AutoDelete = false. Everything else tagged Environment = workshop is deleted at 3 AM EST.
See terraform/tags.tf for the shared locals block and tools/nightly-cleanup.py for the cleanup logic.
Found a bug or a gap in a published lab? Issues and PRs are welcome. Have a lab that fits one of the tracks above? Reach out before opening a PR.
Apache License 2.0 — see LICENSE.