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.
» Understanding Modules
If you’re unfamiliar with Terraform modules, review the Modules Overview to learn what modules are, and when and why to use them.
» Using Modules
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.
» Creating Modules
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.