Chapter 7. Working with Multiple Providers

So far, almost every single example in this book has included just a single provider block:

provider "aws" {
  region = "us-east-2"
}

This provider block configures your code to deploy to a single AWS region in a single AWS account. This raises a few questions:

  • What if you need to deploy to multiple AWS regions?

  • What if you need to deploy to multiple AWS accounts?

  • What if you need to deploy to other clouds, such as Azure or GCP?

To answer these questions, this chapter takes a deeper look at Terraform providers:

  • Working with one provider

  • Working with multiple copies of the same provider

  • Working with multiple different providers

Working with One Provider

So far, you’ve been using providers somewhat “magically.” That works well enough for simple examples with one basic provider, but if you want to work with multiple regions, accounts, clouds, etc., you’ll need to go deeper. Let’s start by taking a closer look at a single provider to better understand how it works:

  • What is a provider?

  • How do you install providers?

  • How do you use providers?

What Is a Provider?

When I first introduced providers in Chapter 2, I described them as the platforms Terraform works with: e.g., AWS, Azure, Google Cloud, DigitalOcean, etc. So how does Terraform interact with these platforms?

Under the hood, Terraform consists of two parts:

Core

This is the terraform binary, and it provides all the basic functionality in Terraform that is used ...

Get Terraform: Up and Running, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.