Welcome to the comprehensive Terraform with AWS video course! This repository contains all code samples and documentation corresponding to each video lesson.
This course consists of video lessons covering basic to advanced Terraform concepts with AWS cloud, including hands-on projects and real-world scenarios.
Note: If you found the content helpful, consider giving the repository a star β
π Prerequisites
- AWS free account or subscription
- AWS Fundamentals
- OSI model and protocols - SSH, HTTP, HTTPS, TCP,UDP, SMTP, etc
- Visual Studio Code or preferred IDE installed
- Git installed and working knowledge of Git and Github
- Linux or Mac or WSL(Windows Subsystem for Linux)
- Linux and Shell scripting
- Basic understanding of YAML and JSON
- Deployment Strategies
- Networking Fundamentals
- IP Addressing
Module 1: Core Concepts
- Understanding Infrastructure as Code (IaC)
- Why we need IaC
- What is Terraform and its benefits
- Challenges with the traditional approach
- Terraform Workflow
- Installing Terraform
- Code Sample
- Terraform Providers
- Provider version v/s Terraform core version
- Why version matters
- Version constraints
- Operators for versions
- Code Sample
- Authentication and Authorization to AWS resources
- Creating VPC
- S3 bucket management
- Understanding dependencies
- Code Sample
- How Terraform updates Infra
- Terraform state file
- State file best practices
- Remote backend setup
- State management
- Code Sample
- Input variables
- Output variables
- Locals
- Variable precedence
- Variable files (tfvars)
- Code Sample
- Terraform file organization
- Sequence of file loading
- Best practices for structure
- Code Sample
- String, number, bool
- Map, set, list, Tuple, Objects
- Code Sample
- Understanding count
- for_each loop
- for loop
- Practical examples
- Code Sample
- create before destroy
- prevent destroy
- ignore changes
- replace triggered by
- custom condition
- Code Sample
- Dynamic blocks
- Conditional expressions
- Splat Expressions
- practical examples
- Code Sample
- Built-in functions
- Practical examples
- tasks for practice
- Code Sample
- Built-in functions
- Practical examples
- tasks for practice
- Code Sample
- Using data sources
- Practical examples
- Code Sample
Module 2: AWS resources using Terraform
- S3 static website hosting
- CloudFront distribution
- Code Sample
- Virtual Private Cloud Creation
- VPC peering setup
- Code Sample
- Authentication methods
- IAM roles and policies
- Service accounts
- Code Sample
- Elastic Beanstalk creation
- Configuration
- Deployment
- Code Sample
- Lambda function setup
- Configuration
- Code Sample
- What are provisioners and their use case
- Local vs remote vs file provisioners
- Demo of all three provisioners
- Code Sample
- Kubernetes cluster setup
- EKS cluster with managed node groups
- Custom module usage
- Custom module creation for EKS, Secrets Manager, IAM etc
- Networking and security configuration
- Code Sample
- Policy creation
- Governance setup
- Code Sample
- Database creation
- Configuration
- Code Sample
- CloudWatch metrics alerts
- SNS topics
- CloudWatch logs
- Log alerts
- Code Sample
- Creating EC2 Instances
- Auto Scaling Groups
- Security Groups
- Application Load Balancer, NAT Gateway, Elastic IP, Auto Scaling rules etc
- Code Sample
Module 3: Advanced Concepts
- Different ways of importing AWS resource to Terraform
- Terraform Import
- Importing a live infrastructure to Terraform using Terraform Import
- AWS Config
- Importing a live infrastructure to Terraform using AWS Config
- Terraformer
- Code Sample
- Cloud setup
- Workspace management
- Code Sample
- CI/CD pipeline setup
- Automation
- Code Sample
- Complete architecture setup
- Web tier, Application tier, Database tier
- Load balancing and auto-scaling
- Best practices
- Code Sample
- GitOps workflow implementation
- ArgoCD setup with Terraform
- Git-based infrastructure management
- Automated deployments
- Code Sample
- Drift detection setup
- Monitoring infrastructure changes
- Code Sample
- Follow videos in sequence
- Complete hands-on exercises in task.md
- Implement projects
- Practice with provided code samples
MIT License - see the LICENSE file for details.


