Proveedores en Terraform

Introducción

Terraform es conocido por su capacidad de gestionar infraestructura en diversas plataformas, gracias a los proveedores. En este post, aprenderás qué son los proveedores, cómo configurarlos y cómo usar múltiples proveedores en un mismo proyecto.


¿Qué es un proveedor en Terraform?

Un proveedor en Terraform es un plugin que permite interactuar con servicios externos como AWS, Google Cloud Platform (GCP), Azure, Kubernetes y otros.

Cada proveedor tiene recursos específicos que puedes gestionar mediante Terraform, facilitando la administración multiplataforma.

Configurando un proveedor

Para usar un proveedor, debes declararlo en tu archivo de configuración. Aquí tienes ejemplos para los principales proveedores:

AWS

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

Google Cloud Platform

provider "google" {
  project = "mi-proyecto-gcp"
  region  = "us-central1"
}

Azure

provider "azurerm" {
  features {}
}

Usando múltiples proveedores

Terraform permite gestionar recursos en diferentes nubes simultáneamente. Aquí un ejemplo:

provider "aws" {
  region = "us-east-1"
  alias  = "aws-este"
}

provider "google" {
  project = "mi-proyecto-gcp"
  region  = "us-central1"
}

resource "aws_instance" "servidor_aws" {
  provider      = aws.aws-este
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

resource "google_compute_instance" "servidor_gcp" {
  name         = "servidor-gcp"
  machine_type = "f1-micro"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-10"
    }
  }

  network_interface {
    network = "default"
  }
}

En este ejemplo, creamos recursos simultáneamente en AWS y GCP.

Versionado y actualización de proveedores

Es recomendable especificar versiones de proveedores para garantizar estabilidad:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

Esto asegura que todos los colaboradores usen la misma versión del proveedor, evitando inconsistencias.


Usar proveedores en Terraform multiplica tus posibilidades al permitir gestionar recursos en múltiples plataformas simultáneamente. Esto convierte a Terraform en una herramienta potente y flexible para proyectos en la nube.

En el próximo post exploraremos cómo integrar Terraform con sistemas de control de versiones y Terraform Cloud para optimizar la colaboración. ¡Hasta la próxima entrega!