More than Certified in Terraform 2025
Learn Terraform Using GitHub, Docker, AWS ECS, and more!
Lo que serás capaz de hacer
Updated for Terraform 1.10+ ! This course will teach you what you need to know to deploy Terraform resources properly and efficiently whether you're a beginner or someone looking for some new tricks! We will start with the very basics and methodically build from there, learning new information, tricks, and skills along the way! Most lessons are less than 8 minutes long to help ensure a pace that doesn't put you to sleep! In the brand new refreshed sections (July 2024+), you'll build out a Developer Platform that deploys GitHub repositories dynamically for developers. You'll then deploy a dynamic AWS Elastic Container Service application. You'll do this using the latest and greatest Terraform skills and functions. With a focus on using built-in tools to deploy and troubleshoot your deployments, you'll be the only one not having to Google every error you find or copy and paste from Stack Overflow! You'll learn important Terraform tools to troubleshoot and build your infrastructure as you roll out a GitHub Portfolio application on GitHub Pages, a containerized AI-based Terraform quiz application AWS ECS , and even a full CICD deployment using Hashicorp Cloud Platform ! We'll focus on writing efficient code with minimal repetition while utilizing many of Terraform's advanced features such as: Import Join Min Max Local Resource Variables Splat For Loops Dynamic Blocks Variable Validation Path References String Interpolation Local and Remote Provisioners and more! The entire course was recorded using quality equipment for ease of listening, intelligent zooming and cursor highlighting to ensure maximum readability and the ability to follow along easily, and annotations where necessary to quickly see web links to visit, important topics, and follow along with the resources more easily. All of the code in the refreshed sections is tested using Terraform version 1.9+ The refreshed sections will include the latest and greatest Terraform features and functionality. The Legacy sections all are still very useful, but may have a deprecation warning or two. So what are you waiting for? Sign up today and Terraform Apply Yourself!
- Terraform
- Infrastructure as Code
- Docker
- AWS
- Devops
- Hashicorp Configuration Language
Temario
UNIDAD 1 - Introduction and Prerequisites · 5 leccionesUNIDAD 1 - Introduction and Prerequisites
UNIDAD 1 - Introduction and Prerequisites
- Introduction to the Course
- GitHub and Codespaces Setup
- GitHub CLI Permissions
- Install Terraform
- Update Terraform
UNIDAD 2 - Terraform Fundamentals · 39 leccionesUNIDAD 2 - Terraform Fundamentals
UNIDAD 2 - Terraform Fundamentals
- Providers
- Terraform Init
- Provider Versioning and Dependency Locks
- Backends
- Our First Resource
- Terraform Plan, Apply, and Destroy
- Resource Addresses
- The State File
- Terraform State Commands
- Resources - Terraform Apply Yourself!
- The Random Provider
- Terraform Console and Interpolation
- Count
- Count: Terraform Apply Yourself!
- Splat and Outputs
- Terraform Types
- For Expressions
- Variables
- Variable Precedence
- Variable Validation
- The Contains Function
- Conditionals
- Terraform state rm and refresh-only
- for_each Meta-Argument
- for_each: Terraform Apply Yourself
- The Length Function
- local-exec Provisioner
- local-exec: Terraform Apply Yourself
- depends_on Meta-Argument
- for_each with Maps
- Our Deployment in Action
- ignore_changes Lifecycle Meta-Argument
- Data Sources
- Heredocs and Escape Sequences
- Template Files
- Refactoring and Moved Blocks
- Nested Blocks
- Dynamic Blocks
- The try Function
UNIDAD 3 - Modular Terraform · 7 leccionesUNIDAD 3 - Modular Terraform
UNIDAD 3 - Modular Terraform
- First Module
- Path References
- Locals
- Terraform Module Information Flow
- Module Outputs
- Deploy Key - Terraform Apply Yourself
- Flatten Function and If Statement
UNIDAD 4 - Info Page Module Project · 6 leccionesUNIDAD 4 - Info Page Module Project
UNIDAD 4 - Info Page Module Project
- Info Page Intro
- Info Page Module - Terraform Apply Yourself
- Terraform Providers Schema
- Terraform Time
- Passing info between Modules
- Loops in Templatefiles
UNIDAD 5 - Terraform Management · 15 leccionesUNIDAD 5 - Terraform Management
UNIDAD 5 - Terraform Management
- Terraform Graph
- Refactoring
- Skipping Provisioners
- HCP Terraform
- HCP Terraform CLI Config
- Remote State Management
- Working with JSON Files
- Working with CSV Files
- Overriding Configuration with _override.tf Files
- Intro to HCP and the CICD Setup
- Repos Module Code
- Repos Module HCP Configuration
- Info-Page Module Code and Remote State
- Info-Page Module HCP Configuration
- Final Section Project!
UNIDAD 6 - Deploying AWS Resources with Terraform · 31 leccionesUNIDAD 6 - Deploying AWS Resources with Terraform
UNIDAD 6 - Deploying AWS Resources with Terraform
- Infrastructure Diagram
- Create a Budget
- AWS Key Setup
- AWS Backend Configuration
- AWS Provider
- VPC Resource
- Internet Gateway
- Subnets
- cidrsubnet()
- AWS AZs
- Modulo Operator
- Route Tables - TAY
- ALB and SG
- ALB SG Rule
- ECS Cluster
- ECR
- Docker Login
- Docker Build
- Docker Push
- ECS Task Definition
- ECS Service
- ECS Service - TAY
- ALB Target Group
- ALB Listener Rule - TAY
- ALB Subnets Overlap Fix - Expansion Operator
- App module for_each TAY!
- Default Tags
- State Migration from HCP to S3
- CLI Workspaces
- Partial Backends
- Terraform Import
UNIDAD 7 - AI Trivia App Deployment Project · 5 leccionesUNIDAD 7 - AI Trivia App Deployment Project
UNIDAD 7 - AI Trivia App Deployment Project
- OpenAI Key Setup
- Load Balancer Improvements
- Frontend Configuration
- Backend Walkthrough
- Backend Configuration
UNIDAD 8 - Introduction and Prerequisites (LEGACY) · 11 leccionesUNIDAD 8 - Introduction and Prerequisites (LEGACY)
UNIDAD 8 - Introduction and Prerequisites (LEGACY)
- Terraform Version Notes (Important!)
- Downloading the Code
- AWS Setup and Cloud9 Info
- New AWS Account Setup
- Configuring Billing Alarms
- Adding Security to your AWS Account
- AWS Cloud9 Configuration
- AWS Cloud9 Disk Expanding
- Security Groups and IP Access
- Terraform Installation (Same Instructions for all Versions)
- Terraform Terminology (Skip if you have passed the exam or are already familiar)
UNIDAD 9 - Terraform Basics and Docker (LEGACY) · 36 leccionesUNIDAD 9 - Terraform Basics and Docker (LEGACY)
UNIDAD 9 - Terraform Basics and Docker (LEGACY)
- Docker Provider Upgrade Notice! (Important!)
- The Docker Provider
- Terraform Init Deeper Dive
- Terraform Dependency Lock (v0.14+ only)
- Your First Terraform Apply!
- Terraform Plan and Apply Deeper Dive
- Referencing other Resources
- Viewing Your Deployment in the Browser
- Terraform State Deeper Dive
- Terraform Console and Outputs
- The Join Function
- The Random Resource
- Multiple Resources and Count
- The Splat Expression
- "For" Loops
- Tainting and Updating Resources
- State Locking and Breaking State
- Terraform Import
- Terraform Refresh and State rm (Updated!)
- Adding Variables
- Variable Validation (v 0.13+ only)
- Variables and Output Files
- Sensitive Variables and .tfvars files
- Variable Definition Precedence
- Hiding Sensitive Variables from CLI (v 0.14+ only)
- The Bind Mount and Local-Exec
- Utilizing Local Values
- Min and Max Functions and the Expand Expression
- Path References and String Interpolation
- Maps and Lookups: the Image Variable
- Maps and Lookups: External Ports
- Terraform Workspaces
- Referencing your Workspaces
- Utilizing Map Keys instead of Lookups
- Terraform Basics Lab: Part 1
- Terraform Basics Lab 2
UNIDAD 10 - Modular Deployments (LEGACY) · 22 leccionesUNIDAD 10 - Modular Deployments (LEGACY)
UNIDAD 10 - Modular Deployments (LEGACY)
- Modules Intro
- First Module!
- Module Variables
- Terraform Graph
- Troubleshooting Dependencies
- The Container Module
- Module Outputs
- Module Information Flow
- Docker Volume
- Lifecycle Customization and Targeting
- One Module for Multiple Resources
- Using for_each
- Deploying Containers with for_each
- Using Count and for_each Together
- New Outputs and Map Transformations
- Grafana Apply Yourself!
- Grafana Solution
- Self Referencing and Provisioner Failure Modes
- Terraform Apply Yourself - Self Referencing
- Dynamic Blocks
- Nesting the Volume Module
- Weather Dashboard Project!
UNIDAD 11 - Deploy AWS Resources with Terraform (LEGACY) · 44 leccionesUNIDAD 11 - Deploy AWS Resources with Terraform (LEGACY)
UNIDAD 11 - Deploy AWS Resources with Terraform (LEGACY)
- What We're Going to Build
- Configuring Terraform Cloud
- The AWS Provider
- Deploy a VPC
- Remote State in Terraform Cloud
- VPC Subnets "Hardcoded"
- VPC Subnets - Terraform Apply Yourself!
- The cidrsubnet() Function
- The aws_availability_zones Data Source
- The random_shuffle Resource
- Why didn't we use for_each?
- Route Tables and the Internet Gateway
- The create_before_destroy Lifecycle Meta Argument
- VPC Security Groups "Hardcoded"
- VPC Security Groups Dynamic
- VPC Security Groups - Terraform Apply Yourself!
- VPC RDS Subnet Group and Conditionals
- Basic RDS Setup
- VPC Outputs for RDS - Terraform Apply Yourself!
- Managing Sensitive RDS Values
- The Terraform Providers Schema Command
- ALB Initial Setup
- ALB Security Group and Subnets - Terraform Apply Yourself!
- ALB Target Group and the uuid and substr functions
- ALB Listener
- Upgrading Terraform (0.14.1+ required for ignore_changes)
- ALB Lifecycle Policies: ignore_changes and create_before_destroy
- The aws_ami Data Source
- Scaffolding Our EC2 Instance and random_id
- EC2 - Terraform Apply Yourself!
- SSH Key for Our Instance and the file Function
- Controlling random_id Changes with Keepers
- Userdata UPDATE! VERY IMPORTANT!
- EC2 User Data and Template Files
- EC2 User Data Template Variables - Terraform Apply Yourself!
- Deploying NGINX to Our Kubernetes Cluster!
- Adding our EC2 Instances to the Target Group
- Adding some Outputs for our Resources
- Sensitive Outputs and How to Access Them
- Terraform Apply Yourself - Outputs!
- Utilizing the local-exec Provisioner to SCP our Kubeconfig File
- Utilizing the remote-exec Provisioner to Run Commands on EC2 Instances
- Terraform Apply Yourself! - Cleanup and Create a Destroy Provisioner
- Deploying K8s Resources from our Cloud9 Instance!
UNIDAD 12 - Deploying Kubernetes Resources with Terraform (LEGACY) · 5 leccionesUNIDAD 12 - Deploying Kubernetes Resources with Terraform (LEGACY)
UNIDAD 12 - Deploying Kubernetes Resources with Terraform (LEGACY)
- Kubernetes Section Read Me First!
- Configuring the Kubernetes Provider
- Our First Kubernetes Deployment!
- Terraform Apply Yourself- Utilizing for_each in our Deployment
- The terraform_remote_state datasource and the split Function
UNIDAD 13 - Continuous Deployment using Terraform Cloud (LEGACY) · 14 leccionesUNIDAD 13 - Continuous Deployment using Terraform Cloud (LEGACY)
UNIDAD 13 - Continuous Deployment using Terraform Cloud (LEGACY)
- What We're Going to Build
- Update - New Terraform Cloud UI!
- Setting up our Github
- Configuring Terraform Cloud
- Our First Cloud Deployment!
- Configuring Repository-Based Modules
- Utilizing the Configuration Designer to Create a Deployment
- Github Provider version 4.15 currently broken!
- Setting up Providers for our New Deployment
- Configuring our Github Resources in Terraform
- Configuring our Terraform Cloud Resources in Terraform
- Deploying our Module-Based Infrastructure!
- Pushing and Pulling Remote State
- Updating our Deployment and Destroying it
UNIDAD 14 - Bonus Resources, Cheat Sheets, and Guides! · 1 leccionesUNIDAD 14 - Bonus Resources, Cheat Sheets, and Guides!
UNIDAD 14 - Bonus Resources, Cheat Sheets, and Guides!
- Bonus Resources!
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
14 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
2 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Derek Morgan.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 14 unidades · 241 lecciones · 60 h
- 12 meses de acceso
- 2 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Derek Morgan; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


