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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more