DEV Community

Randika Madhushan Perera
Randika Madhushan Perera

Posted on

Deploying Apps to AWS with Terraform - Providers

7. Setting Up AWS Providers in Terraform for Multi-Region Deployments

Introduction

This lesson focuses on setting up AWS providers in Terraform, a crucial step especially when deploying a distributed, multi-region CI/CD pipeline. Providers in Terraform are essential as they enable interactions with vendor APIs, like AWS and Azure, and provide the logic for managing resources in Terraform.

Understanding Providers in Terraform

Providers are the core building blocks in Terraform. They contain the necessary source code for all Terraform resources and manage the creation, updating, and management of these resources. Multiple providers can be defined and used within a Terraform project to interact with different vendor APIs.

Defining Multiple Providers

To define multiple providers, particularly for a multi-region setup, the key is to use the alias parameter. This allows you to assign a specific provider to an alias, which can then be used to target specific resources in your Terraform code.

Setting Up Providers

1. Variable Setup: Before writing any Terraform code for providers, set up necessary variables like AWS profiles and regions in a variables.tf file.

variables.tf

variable "profile" {
  type    = string
  default = "default"
}

variable "region-master" {
  type    = string
  default = "eu-west-1"
}

variable "region-worker" {
  type    = string
  default = "eu-west-2"
}
Enter fullscreen mode Exit fullscreen mode

2. Creating Providers File: In a providers.tf file, define your AWS providers, specifying details such as profile, region, and alias.

providers.tf

provider "aws" {
  profile = var.profile
  region  = var.region-master
  alias   = "region-master"
}

provider "aws" {
  profile = var.profile
  region  = var.region-worker
  alias   = "region-worker"
}
Enter fullscreen mode Exit fullscreen mode

3. Initializing Terraform: With any changes to modules or providers, run terraform init to initialize the directory, download providers, and set up the backend.

Conclusion

Defining multiple AWS providers in Terraform allows for sophisticated and distributed infrastructure deployments, especially in multi-region scenarios. By correctly setting up and initializing these providers, Terraform can effectively manage resources across different AWS regions.

Top comments (0)