Modules are a critical component of production-grade Terraform configurations. It gives infrastructure developers the ability to split infrastructure services into separate components. For example, you can have a module for deploying EC2 Instances and a module for deploying VPCs. You can then use each module as a building block for creating entire environments in AWS.
Terraform configuration files that are thousands of lines of code are considered an anti-pattern. Infrastructure code becomes unmanageable, and execution plans can take over 10 minutes to create. Instead, split the code up into modules. Modules separate pieces of the infrastructure into reusable, testable units.
Modules also provide a way for the community to share Terraform configurations with others. There are hundreds of modules on the Terraform Registry. It is highly recommended to look at the community-made modules before creating your own from scratch. The State of DevOps report shows that companies that reuse code are high performers.
In this lab, you will learn how to create reusable Terraform configurations using modules.
Upon completion of this lab, you will be able to:
This lab is intended for:
You should be familiar with:
The following course can be used to fulfill the prerequisites:
December 22, 2023 - Lab updated to utilize CodeTour IDE
April 24th, 2023 - Resolved IDE delay