EC2 instances pre-configured with training tools, one per student.
- AWS CLI v2
- kubectl
- OpenTofu
- gotemplate
- Docker
- Claude Code CLI
- Nullplatform CLI
- OpenTofu >= 1.6
- AWS credentials configured
- Students' SSH public keys
tofu initEdit terraform.tfvars and add each student with their SSH public key:
students = {
agustin = {
ssh_public_key = "ssh-ed25519 AAAA... agustin@email.com"
}
maria = {
ssh_public_key = "ssh-ed25519 AAAA... maria@email.com"
}
juan = {
ssh_public_key = "ssh-rsa AAAA... juan@email.com"
}
}Each student needs to provide their public key. They can get it with:
cat ~/.ssh/id_ed25519.pub
# or
cat ~/.ssh/id_rsa.pubtofu plan # review what will be created
tofu apply # create the instancesThe output shows the SSH command for each student:
student_connections = {
agustin = { public_ip = "3.x.x.x", ssh_command = "ssh ubuntu@3.x.x.x" }
maria = { public_ip = "3.x.x.y", ssh_command = "ssh ubuntu@3.x.x.y" }
}
Each student connects with:
ssh ubuntu@<their-ip>Tools are ready after ~3 minutes (cloud-init runs on first boot). Check progress with:
tail -f /var/log/cloud-init-output.logtofu destroy