
Master Terraform from basics to advanced concepts, including conditions, loops, data sources, templates, functions, and variables. Deploy Terraform scripts via Jenkins pipelines and integrate Ansible playbooks for end-to-end automation.
Terraform automates infrastructure provisioning with infrastructure as code, enabling automated, reusable dev, test, and prod environments across AWS, Azure, Google Cloud, DigitalOcean, and open source.
Create an AWS IAM user with programmatic and administrator access, configure its access key id and secret key on your laptop, set Mumbai region, and use JSON output for Terraform.
Choose Atom as the editor for TerraForm code, install Atom on MacBook, and create a TerraForm workspace with the necessary packages, including TerraForm Fmt, with format on save.
Initialize a Terraform project by creating a providers.tf file with an AWS provider block, set the region to Mumbai, and run Terraform init to download AWS provider plugins.
Master Terraform outputs and interpolations to fetch the VPC CIDR block after apply, using the interpolation syntax: resource type dot attribute, and print the result to the console.
Explore configuring Terraform to use an S3 remote state backend to enable multi-user collaboration, including bucket setup in Mumbai, init, state migration, and practices like versioning and encryption.
We demonstrate how S3 backend locking works behind the scenes by showing terraform init and apply with DynamoDB entries that track who holds the lock on the state file.
Learn to conditionally create a VPC in Terraform using count and a ternary operator, based on dev or prod workspace, so zero or one resource is deployed.
Terraform 1.5.0 introduces the import block to manage existing AWS resources in CI/CD pipelines, enabling VPC import, state mapping, and automated apply via Jenkins.
Configure a nat security group to control outbound traffic for private subnets, open to the internet with all ports and all protocols, then attach the group to the nat instance.
Launch EC2 instances in a public subnet and deploy a web server via a user data script, including Apache setup and index.html, and understand Terraform's reaction to user data updates.
Deploy an elastic load balancer in front of two EC2 web servers using Terraform, configure VPC subnets and security groups, and expose port 80.
Create and manage an EC2 key pair with Terraform, generating a public key with ssh-keygen and embedding the key name in the web EC2 instance for secure SSH access.
Configure a public Route 53 hosted zone to point to an elastic load balancer using Terraform, creating alias A records to route domain traffic to the ELB.
Configure a Terraform-based RDS instance with MySQL, handling backend setup, using variables instead of hardcoding sensitive data, pass passwords at runtime, and suffix configurations with the current Terraform workspace.
Configure an RDS security group with TCP ingress on port 3302, allowing traffic from web application security groups or CIDR blocks, keep egress open, noting MySQL default port is 3306.
Enable automated daily backups with a 1:00 to 1:30 backup window, assign security group IDs to security groups (not CIDR blocks), and disable auto minor version upgrades, which occur weekly.
Enable RDS storage auto scaling beyond the initial 20 gb as utilization increases. Execute provisioning, monitor the dashboard, and verify that the database, subnet groups, and security groups are created.
Learn to use an application load balancer to route traffic to target groups of EC2 instances via listeners by port or path, and to create and attach target groups.
Configure an ALB to deliver access logs to an S3 bucket by setting a bucket policy, using Terraform templates to dynamically interpolate the bucket name at runtime.
Learn to build reusable Terraform modules, organize code with module folders, define inputs and outputs, and reuse modules across dev and prod environments for VPCs, subnets, and EC2 instances.
Learn and understand fundamental terraform language construct
Managing multiple environments using terraform workspaces
Learn how to deploy lambda functions using terraform.
Automating infrastructure provisioning using terraform and AWS fundamental to advanced, Configuring networking (Route tables, Internet gateways, public subnets, private subnets)
Write Jenkins pipeline code to automate deployments of terraform.
Use Ansible terraform modules to apply terraform changes
Terraform, resources, loops, functions, variables, outputs, and modules
Terraform, deploy lambda functions, Manage remote state files using S3, Understand terraform fundamental concepts, Create ELB, ALB, and auto-scaling, Set up Route53
Build reusable modules with terraform
Managing manually created resources using terraform import
Learning for_each meta-argument
Manage state files in S3 and enable state lock to prevent concurrent modifications.
Conditionally creating resources
Usage examples for local variables
Using dynamic blocks and making code more dynamic
Provision load balancers are like application load balancers.
working with tfvars and passing inputs dynamically at runtime
Implementing data sources to access data that is present outside of terraform
how to manage and secure sensitive variable
Creating IAM policies & roles and attaching them to EC2
Using terraform splat expressiong
Using terraform for loops
Creating EC2 instance and working with Userdata scripts
Create VPC, Subnets and configure route tables
Creating security groups and managing inbound and outbound rules
Creating and deploying NAT instances and NAT gateways
What is a null resource in terraform
How to prevent RDS deletion using resource lifecycle