Skip to content

Vishsig/Terraform-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 

Repository files navigation

Terraform Projects

Terraform learning sprint documenting practical AWS Infrastructure as Code (IaC). Progresses from basic syntax to production-ready structure—perfect showcasing S3, EC2, remote state, variables, file organization, CloudFront, and more.

📋 Day-by-Day Tasks

Day Focus Key Learnings Resources Created
01 Basic Syntax + S3 Providers, aws_s3_bucket, init/plan/apply S3 bucket
02 Remote Backend S3 backend setup, DynamoDB lock table, state migration Remote state bucket
03 Variables + EC2 variables.tf, outputs.tf, tfvars, aws_instance, lock file EC2 instance
04 File Structure main.tf, outputs.tf, variables.tf, project layout Complete project template
05 Meta-arguments count and for_each resource iteration Multiple S3 buckets
06 Lifecycle Meta create_before_destroy, prevent_destroy, SSM data source EC2 instance
07 Expressions Conditional, dynamic blocks, splat expressions EC2 instances, Security Group
08 Terraform Functions String, math, collection, and file functions in locals S3 bucket
09 Data Sources Fetching existing VPC, subnets, and querying AMIs EC2 instance
10 Static Website Project CloudFront, OAC, S3 bucket policies, fileset function S3 Website + CloudFront CDN
11 VPC Peering Demo Multi-region providers, VPC peering, Route Tables, Aliases VPCs, EC2s, Peering Connection
12 IAM & CSV Processing csvdecode, for_each, complex data filtering (regex, can) IAM Users, Profiles, Groups
13 Blue-Green Deployment Elastic Beanstalk environments, CNAME Swapping, Zero-downtime deployment Elastic Beanstalk App, Environments
14 Serverless Image Processing Lambda functions, layers, S3 event notifications, IAM policies S3 Buckets, Lambda
15 Terraform Provisioners local-exec, remote-exec, file provisioners on EC2 EC2 instance, provisioner scripts
16 Production EKS Cluster Custom modules, VPC tags, IAM roles, Managed Node Groups EKS Cluster, VPC, IAM, Node Groups
17 Terraform IAM Policies and Governance IAM roles, policies, attachments structure IAM
18 2-Tier Application Architecture Web server + RDS database, Security groups, Secrets Manager VPC, EC2, RDS, Secrets
19 End-to-End observability project CloudTrail, CloudWatch Logs, Metric Filters, SNS S3, CloudTrail, CloudWatch, SNS

🚀 Quick Start (Any Day)

cd environments/day_01  # Pick your day
terraform init
terraform plan          # Preview changes
terraform apply         # Create (type 'yes')
terraform output        # View results
terraform destroy       # Cleanup (IMPORTANT!)

Prerequisites: AWS CLI configured, Terraform installed, Free Tier account.

🏗️ Repository Structure

terraform-learning/
├── README.md               # This file
├── environments/
│   ├── day_01/             # Basic S3 syntax, S3 bucket setup
│   ├── day_02/             # Remote state setup in S3 bucket
│   ├── day_03/             # EC2 + variables
│   ├── day_04/             # Complete file structure
│   ├── day_05/             # count and for_each meta-arguments
│   ├── day_06/             # lifecycle resource blocks
│   ├── day_07/             # Dynamic blocks and conditional expressions
│   ├── day_08/             # Built-in Terraform functions
│   ├── day_09/             # Data sources and querying AWS
│   ├── day_10/             # CloudFront + S3 Static Website project
│   ├── day_11/             # Multi-region VPC Peering Demo
│   ├── day_12/             # IAM users & groups scaling with CSV decode
│   ├── day_13/             # AWS Elastic Beanstalk Blue-Green Deployment
│   ├── day_14/             # Serverless Image Processing (S3 + Lambda)
│   ├── day_15/             # Terraform Provisioners (local-exec, remote-exec, file)
│   ├── day_16/             # Production EKS Cluster with Custom Modules
│   ├── day_17/             # Terraform IAM Policies and Governance
│   ├── day_18/             # 2-Tier AWS Architecture (Web + RDS)
│   └── day_19/             # End-to-End observability project
└── .gitignore              # Protects .terraform/, tfstate

About

This repository documents my hands-on Terraform learning, building practical Infrastructure as Code (IaC) on AWS. Each day features a mini-tasks as well as Real End-to End projects while provisioning real resources like S3 buckets, CloudTrail and EC2 instances—complete with code, outputs, screenshots, and destroy instructions.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages