Over the last few years, one of the most popular topics on our YouTube channel, in person at conferences, and in other discussions has been writing, using, refactoring, and collaborating on complex configurations using Terraform modules. Modules are a key part of writing maintainable, shareable Terraform configurations.
Use and create your first Terraform modules by following our new step-by-step command-line guides in the Learn modules track.
HashiCorp recommends using modules for almost any Terraform configuration. Modules allow you to organize, encapsulate, and re-use your configuration. Organizations can use modules to ensure consistent use of security features and other best practices.
If you’re unfamiliar with Terraform modules, review the Modules Overview to learn what modules are, and when and why to use them.
The Terraform Registry hosts hundreds of modules contributed by the Terraform community. Modules from the Registry and other locations can be used to enhance your Terraform configurations.
In this guide, you will use modules from the Terraform Registry to provision an example environment on AWS.
As your Terraform configurations become more complex, modules can be used to organize and simplify them. You can also share modules within your organization or with the Terraform community.
In this guide, you will create a module to manage AWS S3 buckets used to host static websites.
The HashiCorp Terraform AWS provider has surpassed one billion downloads — here’s how we got there, and what to look for next.
Run tasks can now be accessed from the HashiCorp Terraform Registry, helping developers discover run tasks they can integrate with their existing Terraform workflow.
Cloud Development Kit for Terraform (CDKTF) 0.14 makes it easier to add and upgrade Terraform providers.