Estimación de costos desde Terraform con Infracost

Usando Infracost podemos estimar los costos de la infraestructura previo a su despliegue desde Terraform. Los pasos para ejecutarlo son los siguientes: Instalamos Infracost brew install infracost infracost --version # Should show 0.10.40 Si ya lo tenemos instalado, podemos actualizar a la versión más reciente brew update Obtener clave API Para obtener una API gratuita que usa CLI para recuperar precios de precios en la nube, es necesario hacer un registro, que nos dirige a una página web para registrar nuestro correo. infracost auth login Una vez que estés registrado, verás este mensaje Creamos el directorio y el archivo #Creación del directorio mkdir my-terraform-project cd my-terraform-project #Creación del archivo main touch main.tf nano main.tf #abrimos el archivo para editarlo Editamos el archivo con el siguiente código provider "aws" { region = "us-east-1" skip_credentials_validation = true skip_requesting_account_id = true access_key = "mock_access_key" secret_key = "mock_secret_key" } resource "aws_instance" "my_web_app" { ami = "ami-005e54dee72cc1d00" instance_type = "m3.xlarge" #

Mar 5, 2025 - 22:13
 0
Estimación de costos desde Terraform con Infracost

Usando Infracost podemos estimar los costos de la infraestructura previo a su despliegue desde Terraform.
Los pasos para ejecutarlo son los siguientes:

Instalamos Infracost

brew install infracost

infracost --version # Should show 0.10.40

Infracost installation

Si ya lo tenemos instalado, podemos actualizar a la versión más reciente

brew update

Obtener clave API

Para obtener una API gratuita que usa CLI para recuperar precios de precios en la nube, es necesario hacer un registro, que nos dirige a una página web para registrar nuestro correo.

infracost auth login

Una vez que estés registrado, verás este mensaje

Image description

Image description

Creamos el directorio y el archivo

#Creación del directorio 
mkdir my-terraform-project
cd my-terraform-project

#Creación del archivo main 
touch main.tf 
nano main.tf #abrimos el archivo para editarlo

Editamos el archivo con el siguiente código

provider "aws" {
  region                      = "us-east-1"
  skip_credentials_validation = true
  skip_requesting_account_id  = true
  access_key                  = "mock_access_key"
  secret_key                  = "mock_secret_key"
}

resource "aws_instance" "my_web_app" {
  ami           = "ami-005e54dee72cc1d00"

  instance_type = "m3.xlarge" # <<<<<<<<<< Try changing this to m5.xlarge to compare the costs

  tags = {
    Environment = "production"
    Service     = "web-app"
  }

  root_block_device {
    volume_size = 1000 # <<<<<<<<<< Try adding volume_type="gp3" to compare costs
  }
}

resource "aws_lambda_function" "my_hello_world" {
  runtime       = "nodejs12.x"
  handler       = "exports.test"
  image_uri     = "test"
  function_name = "test"
  role          = "arn:aws:ec2:us-east-1:123123123123:instance/i-1231231231"

  memory_size = 512
  tags = {
    Environment = "Prod"
  }
}

Aplicamos la configuración

Image description

El resultado de esta estimación tenemos $294 de consumo por la infraestructura que definimos en el archivo main.tf. Si editamos algunas configuraciones, podemos comparar los costos de la infraestructura por desplegar. Sin duda de gran utilidad, para estimar costos.

Referencias

Infracost (2025). Get Started, https://www.infracost.io