Skip to content

Repository files navigation

Cloud Engineering Labs

Hands-on labs for building practical skills across Cloud Engineering, Infrastructure Engineering, and Platform Engineering.

This repository documents a progressive journey from focused scripts to reproducible, observable, and cost-aware cloud environments and systems. Python remains an important part of that journey: it is used for automation, auditing, validation, and operational tooling, but as one tool within a broader cloud engineering stack that also includes infrastructure as code, containers, CI/CD, networking, security, and observability.

Stages 1 and 2 contain the Python and boto3 foundations. Stage 3 has started with the first Terraform networking lab; Stages 4 through 8 remain planned directions.

Repository Structure

cloud-engineering-labs/
├── stage_1/
│   ├── aws_naming/
│   ├── ec2-audit/
│   ├── ec2-cost-report/
│   ├── ec2-tag-audit/
│   ├── env_inspector/
│   ├── error_handler/
│   └── file-io/
├── stage_2/
│   ├── boto3_setup/
│   ├── ec2_manager/
│   ├── iam_automation/
│   ├── s3_automation/
│   ├── secret_manager/
│   ├── security_groups/
│   ├── tagging_cleanup/
│   └── utils/
├── stage_3/
│   └── terraform-aws-networking-lab/
├── requirements.txt
└── README.md

Stage 1 — Core Python for Cloud Engineering

Stage 1 establishes Python foundations through cloud and infrastructure scenarios. The labs use simulated infrastructure data and local utilities to practice automation patterns before interacting with live cloud resources.

Project Focus
aws_naming Standardized AWS resource names, ARN construction, and input validation
ec2-audit EC2 inventory simulation, state counts, and missing-tag detection
ec2-cost-report EC2 cost calculation and formatted status reporting
ec2-tag-audit Infrastructure metadata inspection and tag compliance auditing
env_inspector Environment variables, reusable utilities, structured logging, and JSON output
error_handler Input validation and handling of simulated AWS API failures
file-io JSON configuration, EC2 data filtering, and report generation

Stage 2 — AWS Automation with boto3

Stage 2 moves from simulated data to AWS API interactions with boto3. These labs cover resource lifecycle operations, security checks, governance, shared tooling, and cleanup practices. Some scripts can create, modify, or delete AWS resources and should be reviewed before use in a live account.

Project Focus
boto3_setup AWS credential and connectivity verification through STS
ec2_manager EC2 lifecycle management, state filtering, and instance auditing
iam_automation IAM user and policy creation, attachment, detachment, and cleanup
s3_automation S3 bucket and object operations, bucket policies, and lifecycle rules
secret_manager AWS Secrets Manager create, retrieve, update, and delete workflows
security_groups Inbound-rule auditing, open CIDR detection, and sensitive-port checks
tagging_cleanup EC2 tag compliance and cleanup of long-stopped development instances
utils Shared EC2 helpers and centralized logging configuration

Stage 2 is now considered complete. See the Stage 2 completion summary for its scope, safety profile, focused unit-test command, and transition to declarative infrastructure.

Stage 3 — Infrastructure as Code

Stage 3 begins the move from imperative API automation to declarative, reviewable, and reproducible infrastructure.

Project Focus
terraform-aws-networking-lab VPC, public subnet, Internet Gateway, routing, minimal Security Group, EC2, standardized tags, outputs, and destroy workflow

Current Technology and Engineering Focus

  • Python 3 and virtual environments
  • AWS and boto3
  • Automation and operational tooling
  • Resource lifecycle and cost awareness
  • Infrastructure auditing, tagging, and governance
  • IAM, secrets, networking security, and least-privilege concepts
  • Logging, exception handling, type hints, and input validation
  • Git and GitHub workflows

Roadmap

The following stages are planned labs. Their tools and infrastructure are not yet included in this repository.

Stage 4 — Containers and Deployment

  • Docker and Docker Compose
  • Containerized FastAPI service
  • Reverse proxy, HTTPS, and health checks
  • Reproducible deployment to a VPS

Stage 5 — CI/CD

  • GitHub Actions
  • Linting, tests, and Docker image builds
  • Deployment pipelines

Stage 6 — Observability

  • Structured logs
  • Prometheus
  • Grafana
  • Loki
  • OpenTelemetry

Stage 7 — Serverless and Event-Driven AWS

  • Lambda
  • API Gateway
  • EventBridge
  • SQS and SNS

Stage 8 — Cloud Architecture Labs

  • Public and private subnets
  • Load Balancer and Auto Scaling
  • Managed databases
  • High availability
  • Security, resilience, and cost trade-offs

Next Labs

  1. Extend Terraform practices with remote state and modular composition
  2. Dockerized FastAPI service with Prometheus and Grafana
  3. GitHub Actions CI pipeline

Purpose

The goal of this repository is to build and demonstrate practical cloud engineering judgment: automating repeatable work, designing infrastructure that can be reproduced and operated, adding visibility into system behavior, and understanding the security, resilience, and cost trade-offs behind technical decisions.

About

Hands-on cloud engineering labs focused on AWS, Terraform, Python automation, containers, CI/CD, networking, and observability.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages