Quick Start
Deploy a complete cloud classroom infrastructure with a single command.
For Teaching/Training (with EC2 instances)
./scripts/setup_classroom.sh \
--name my-classroom \
--cloud aws \
--region eu-west-1 \
--environment dev \
--with-pool \
--pool-size 10 # Number of machines you need, can be created later from ec2 manager
For Development/Testing (Lambda only, no EC2 costs)
./scripts/setup_classroom.sh \
--name dev-test \
--cloud aws \
--region eu-west-1 \
--environment dev
What Happens During Deployment
The setup_classroom.sh script automates the entire deployment process:
-
Backend Setup (Automatic):
- Creates S3 bucket for Terraform state:
terraform-state-classroom-shared-{region} - Creates DynamoDB table for state locking:
terraform-locks-classroom-shared - Enables encryption and versioning
- Creates S3 bucket for Terraform state:
-
Lambda Packaging (Automatic):
- Packages Python Lambda functions with dependencies
- Creates ZIP files in
functions/packages/
-
Infrastructure Deployment (Automatic):
- Deploys common infrastructure (EC2 manager, API Gateway, CloudFront)
- Deploys workshop-specific infrastructure (user management, status functions)
- Creates EC2 instance pool (if
--with-poolspecified)
-
Frontend Deployment (Automatic):
- Builds React application
- Uploads to S3 bucket
- Invalidates CloudFront cache
Next Steps
- Read the Deployment Guide for detailed instructions
- Learn about Custom Domain Configuration
- Explore Usage Guides for instructors and students