Tokiota Blog

Infracost Terraform

Adrià Belmonte

Gestionar los costes de nuestra infraestructura en Azure afectada por cambios o nuevos despliegues por IaC puede ser un dolor de cabeza.

—— La gestión de los costes de nuestra infraestructura con cambios o nuevos despliegues, puede ser un dolor de cabeza. Es por eso que hoy queremos hablaros de Infracost. Una herramienta Open Source que nos será de gran ayuda para nuestra gestión con despliegues de Terraform.

—–En la entrada de hoy, os hablaré de una herramienta open source la cual si utilizamos Infracost para hacer nuestros despliegues, puede ayudarnos en dicha tarea.

Infracost, tal y como la web indica, calcula los costes de la nube basándose en Terraform. Las estimaciones de costes pueden mostrarse en el terminal o ponerse en Pull Requests utilizando nuestras integraciones CI/CD. En el artículo de hoy, nos centraremos en la primera parte.

Instalación

La instalación de la herramienta es sencilla e incluso disponemos de una imagen docker. En este ejemplo vamos a realizar las pruebas por terminal y en un entorno Linux.

Con el siguiente comando obtendremos e instalaremos la última versión disponible:

curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh

Es necesario registrar la herramienta para obtener una free Api Key.

infracost register
  • Por último, configuraremos infracost para que nos muestre los costes en nuestra moneda (€) ya que por defecto utiliza el $.
infracost configure set currency EUR

Para comprobar la moneda ejecutamos:

infracost configure get currency 

Test

Una vez tengamos la herramienta instalada y configurada, podemos empezar con las pruebas:

Descargaremos los archivos de ejemplo

git clone https://github.com/infracost/example-terraform.git
cd example-terraform/sample3

En el caso de Azure, es necesario realizar un az login antes de ejecutar el comando infracost.
Y si no tenemos el AzureCli instalado podemos obtenerlo con apt-get install azure-cli

Revisaremos el código de nuestro terraform para saber los costes de nuestra infraestructura:

infracost breakdown --path .

Comprobaremos la diferencia de costes mensuales con el nuevo código:

infracost diff --path . --sync-usage-file --usage-file infracost-usage.yml

Conclusiones

Como habéis podido comprobar, de una forma fácil y rápida, podemos llegar a tener una estimación aproximada del coste de nuestra Infraestructura.

En próximos artículo, podremos ver cómo incluir este proceso en nuestro CI/CD y delegar la aprobación de costes.

Adrià Belmonte
Escrito por:

Adrià Belmonte

Infrastructure & Cloud Consultant

Compartelo por: