In the previous chapter, we learned how to use Terraform's language concepts to provision an infrastructure efficiently with Terraform. One of the advantages of Infrastructure as Code (IaC) is that it allows you to provision infrastructure on a large scale much faster than manual provisioning.
When writing IaC, it is also important to apply the development and clean code principles that developers have already acquired over the years.
One of these principles is Don't Repeat Yourself (DRY), which means not duplicating the code (https://thevaluable.dev/dry-principle-cost-benefit-example/). In this chapter, we will learn how to use expressions from the Terraform language, such as count, maps, collections, and dynamic. We will learn that these notions will allow us to write simple Terraform configuration to provide an infrastructure...