Learning-in-public repo for small AWS + Terraform labs, run locally with Floci.
- Floci emulates AWS locally.
- Behavior can differ from real AWS.
- This repo is for learning and experimentation, not production.
projects/
<lab-name>/
README.md
terraform/
tools/
tf.sh
Each lab has:
- a
README.mdwith context, test steps, and Floci caveats - a
terraform/directory with the actual Terraform config
flociterraformdirenvawsclipython3node
floci start
direnv allow
aws sts get-caller-identityExpected local values:
- Account:
000000000000 - Arn:
arn:aws:iam::000000000000:root - Endpoint:
http://localhost.floci.io:4566
Example:
cd projects/01-s3-basics
../../tools/tf.sh init
../../tools/tf.sh plan
../../tools/tf.sh apply
../../tools/tf.sh destroytools/tf.sh expects to be run from a lab directory or its terraform/ subdirectory.
01-s3-basics— private S3 bucket, access logging, HTTPS-only bucket policies02-iam-basics— IAM users, groups, policies, roles, trust policies03-lambda-s3— S3 event notification invoking Lambda04-ec2-basics— EC2 instance role, instance profile, user data, S3 access05-vpc-basics— VPC, public subnet, route table, internet gateway, security group, EC206-alb-ec2-basics— ALB, target group, listener, security groups, EC2 backend07-alb-autoscaling— ALB, launch template, auto scaling group, EC2 backend
These labs are intended for local Floci usage.
Do not point them at real AWS without reviewing:
- resources created
- IAM permissions
- networking exposure
- possible cost impact
GitHub Actions checks:
terraform fmt -check -recursiveterraform init -backend=falseterraform validate
Each Terraform lab is validated separately without real AWS credentials.